From 60f512a9bc912dacdfeba1781dc7e91264a5d7bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sora=E4=B8=B6kong?= <45380021+KasuganoSorakog@users.noreply.github.com> Date: Mon, 2 Mar 2026 17:56:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=87=E7=BA=A7XR=E6=8F=92=E4=BB=B6=E7=89=88?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 +- .vscode/extensions.json | 5 + .vscode/launch.json | 10 + Assets - 快捷方式.lnk | Bin 1515 -> 0 bytes Assets/Bakery/ftGlobalStorage.asset | 4 +- .../Bakery_ShaderGraphHDRP.unitypackage.meta | 8 - .../Bakery_ShaderGraphURP.unitypackage.meta | 8 - .../Materials/HandsDefaultMaterial.mat | 79 - .../1.3.0/HandVisualizer/Materials/Red.mat | 78 - .../1.3.0/HandVisualizer/Materials/White.mat | 78 - .../2.5.2.meta => XR Hands/1.5.0.meta} | 2 +- .../{1.3.0 => 1.5.0}/HandVisualizer.meta | 2 +- .../HandVisualizer/.sample.json | 0 .../HandVisualizer/HandVisualizer.unity | 29 +- .../HandVisualizer/HandVisualizer.unity.meta | 0 .../HandVisualizer/Materials.meta | 0 .../1.5.0/HandVisualizer/Materials/Blue.mat} | 48 +- .../HandVisualizer/Materials/Blue.mat.meta | 0 .../1.5.0/HandVisualizer/Materials/Green.mat} | 51 +- .../HandVisualizer/Materials/Green.mat.meta | 0 .../Materials/HandsDefaultMaterial.mat | 164 + .../Materials/HandsDefaultMaterial.mat.meta | 0 .../1.5.0/HandVisualizer/Materials/Red.mat} | 68 +- .../HandVisualizer/Materials/Red.mat.meta | 0 .../Materials/TransparentRed.mat | 165 + .../Materials/TransparentRed.mat.meta} | 2 +- .../1.5.0/HandVisualizer/Materials/White.mat} | 51 +- .../HandVisualizer/Materials/White.mat.meta | 0 .../HandVisualizer/Models.meta | 0 .../HandVisualizer/Models/LeftHand.fbx | 0 .../HandVisualizer/Models/LeftHand.fbx.meta | 0 .../HandVisualizer/Models/RightHand.fbx | 0 .../HandVisualizer/Models/RightHand.fbx.meta | 0 .../HandVisualizer/Prefabs.meta | 0 .../HandVisualizer/Prefabs/Joint.prefab | 44 +- .../HandVisualizer/Prefabs/Joint.prefab.meta | 0 .../Prefabs/Left Hand Tracking.prefab | 0 .../Prefabs/Left Hand Tracking.prefab.meta | 0 .../Prefabs/Right Hand Tracking.prefab | 0 .../Prefabs/Right Hand Tracking.prefab.meta | 0 .../Prefabs/VelocityPrefab.prefab | 0 .../Prefabs/VelocityPrefab.prefab.meta | 0 .../{1.3.0 => 1.5.0}/HandVisualizer/README.md | 2 +- .../HandVisualizer/README.md.meta | 0 .../HandVisualizer/Scripts.meta | 0 .../HandVisualizer/Scripts/HandProcessor.cs | 6 +- .../Scripts/HandProcessor.cs.meta | 0 .../HandVisualizer/Scripts/HandVisualizer.cs | 6 + .../Scripts/HandVisualizer.cs.meta | 0 .../HandVisualizer/Scripts/JointVisualizer.cs | 38 + .../Scripts/JointVisualizer.cs.meta} | 2 +- ...y.XR.Hands.Samples.VisualizerSample.asmdef | 0 ...Hands.Samples.VisualizerSample.asmdef.meta | 0 .../2.5.2/Hands Interaction Demo/.sample.json | 4 - .../FingerColorAffordanceTheme.asset | 3 - .../HandEdgeColorAffordanceTheme.asset | 3 - .../InteractionColorAffordanceTheme.asset | 3 - .../AudioAffordanceTheme.asset | 3 - .../AffordanceThemes/CapsuleScaleTheme.asset | 3 - ...InteractionBlendShapeAffordanceTheme.asset | 3 - .../Chess/WhiteChessPieceColorTheme.asset | 3 - ...InteractionLargeScaleAffordanceTheme.asset | 3 - .../InteractionScaleAffordanceTheme.asset | 3 - .../Materials/PrimitivesBlue.mat | 46 - .../Materials/PrimitivesCoral.mat | 46 - .../Materials/Table Surface.mat | 47 - .../HandsDemoSceneAssets/Prefabs/Chess.meta | 8 - .../Prefabs/XR Interaction Hands Setup.prefab | 282 - .../HideObjectWhenRayInteractorBlocked.cs | 33 - .../Scripts/PinchPointFollow.cs | 112 - .../2.5.2/Starter Assets/.sample.json | 4 - .../2.5.2/Starter Assets/DemoScene.unity | 10838 ------------ .../InteractionColorAffordanceTheme.asset | 3 - .../StarterAssetsSampleProjectValidation.cs | 76 - .../Models/XRControllerLeft.fbx | 3 - .../Models/XRControllerRight.fbx | 3 - .../Interactors/Direct Interactor.prefab | 138 - .../Interactors/Poke Interactor.prefab | 269 - .../Directional Teleport Reticle.prefab | 183 - .../Prefabs/XR Interaction Setup.prefab | 559 - .../XRI Default Continuous Move.preset.meta | 8 - .../XRI Default Continuous Turn.preset | 115 - .../XRI Default Continuous Turn.preset.meta | 8 - .../XRI Default Gaze Controller.preset | 747 - .../XRI Default Left Controller.preset | 747 - .../XRI Default Left Controller.preset.meta | 8 - .../Presets/XRI Default Left Grab Move.preset | 103 - .../XRI Default Right Controller.preset | 747 - .../XRI Default Right Controller.preset.meta | 8 - .../XRI Default Right Grab Move.preset | 103 - ... Default XR Screen Space Controller.preset | 435 - .../2.5.2/XR Device Simulator.meta | 8 - .../2.5.2/XR Device Simulator/.sample.json | 4 - .../Hand Expression Captures.meta | 8 - .../Fist Expression Capture.asset | 3 - .../Grab Expression Capture.asset | 3 - .../Open Expression Capture.asset | 3 - .../Pinch Expression Capture.asset | 3 - .../Poke Expression Capture.asset | 3 - .../Poke Expression Capture.asset.meta | 8 - .../Resting Expression Capture.asset | 3 - .../Resting Expression Capture.asset.meta | 8 - .../Thumb Expression Capture.asset | 3 - .../Thumb Expression Capture.asset.meta | 8 - .../2.5.2/XR Device Simulator/Scripts.meta | 8 - .../Scripts/XRDeviceSimulatorControllerUI.cs | 253 - .../Scripts/XRDeviceSimulatorHandsUI.cs | 182 - .../Scripts/XRDeviceSimulatorUI.cs | 1165 -- .../2.5.2/XR Device Simulator/UI.meta | 8 - .../UI/ControllerDevice.meta | 8 - .../UI/ControllerDevice/ControllerLeft.png | 3 - .../ControllerDevice/ControllerLeft.png.meta | 159 - .../ControllerOverlayLinesLeft.png | 3 - .../ControllerOverlayLinesLeft.png.meta | 159 - .../ControllerOverlayLinesRight.png | 3 - .../ControllerOverlayLinesRight.png.meta | 159 - .../UI/ControllerDevice/ControllerRight.png | 3 - .../ControllerDevice/ControllerRight.png.meta | 159 - .../UI/ControllerDevice/xr_ctlr.png | 3 - .../UI/ControllerDevice/xr_ctlr.png.meta | 147 - .../2.5.2/XR Device Simulator/UI/General.meta | 8 - .../UI/General/CloseWindow.png | 3 - .../UI/General/CloseWindow.png.meta | 159 - .../UI/General/CycleXRDevices.png | 3 - .../UI/General/CycleXRDevices.png.meta | 159 - .../UI/General/DeviceSimUI_bg.png | 3 - .../UI/General/DeviceSimUI_bg.png.meta | 159 - .../UI/General/Gripper.png | 3 - .../UI/General/Gripper.png.meta | 147 - .../UI/General/KeyboardIcon.png | 3 - .../UI/General/KeyboardIcon.png.meta | 159 - .../XR Device Simulator/UI/General/Locked.png | 3 - .../UI/General/Locked.png.meta | 159 - .../XR Device Simulator/UI/General/Look.png | 3 - .../UI/General/Look.png.meta | 159 - .../UI/General/OpenWindow.png | 3 - .../UI/General/OpenWindow.png.meta | 159 - .../UI/General/Unlocked.png | 3 - .../UI/General/Unlocked.png.meta | 159 - .../UI/General/btn_bgbottom.png | 3 - .../UI/General/btn_bgbottom.png.meta | 147 - .../2.5.2/XR Device Simulator/UI/Hands.meta | 8 - .../UI/Hands/Hand_Default.png | 3 - .../UI/Hands/Hand_Default.png.meta | 172 - .../UI/Hands/Hand_Fist.png | 3 - .../UI/Hands/Hand_Fist.png.meta | 172 - .../UI/Hands/Hand_Grab.png | 3 - .../UI/Hands/Hand_Grab.png.meta | 172 - .../UI/Hands/Hand_Open.png | 3 - .../UI/Hands/Hand_Open.png.meta | 172 - .../UI/Hands/Hand_Pinch.png | 3 - .../UI/Hands/Hand_Pinch.png.meta | 172 - .../UI/Hands/Hand_Poke.png | 3 - .../UI/Hands/Hand_Poke.png.meta | 172 - .../UI/Hands/Hand_Thumb.png | 3 - .../UI/Hands/Hand_Thumb.png.meta | 172 - .../XR Device Simulator/UI/Hands/hand.png | 3 - .../XR Device Simulator/UI/HeadDevice.meta | 8 - .../XR Device Simulator/UI/HeadDevice/HMD.png | 3 - .../UI/HeadDevice/HMDOverlay.png | 3 - .../UI/HeadDevice/HMDOverlay.png.meta | 159 - .../UI/HeadDevice/HMD_d.png | 3 - .../UI/HeadDevice/MoveRotateTool.png | 3 - .../UI/HeadDevice/MoveRotateTool.png.meta | 147 - .../UI/HeadDevice/Movement.png | 3 - .../UI/HeadDevice/Movement.png.meta | 147 - .../XR Device Simulator/UI/HeadDevice/XR.png | 3 - .../UI/HeadDevice/XR.png.meta | 147 - .../UI/HeadDevice/xr_hmd.png | 3 - .../UI/HeadDevice/xr_hmd.png.meta | 147 - .../2.5.2/XR Device Simulator/UI/Mouse.meta | 8 - .../XR Device Simulator/UI/Mouse/Cursor.png | 3 - .../UI/Mouse/Cursor.png.meta | 147 - .../XR Device Simulator/UI/Mouse/Mouse.png | 3 - .../UI/Mouse/Mouse.png.meta | 147 - .../UI/Mouse/MouseMoveAround.png | 3 - .../UI/Mouse/MouseMoveAround.png.meta | 147 - .../XR Device Simulator/UI/Mouse/MouseR.png | 3 - .../XR Device Simulator/UI/Mouse/MouseR_d.png | 3 - .../UI/Mouse/MouseR_d.png.meta | 147 - .../UI/XR Device Simulator UI.prefab | 14338 ---------------- ...ion.Toolkit.Samples.DeviceSimulator.asmdef | 25 - ...XR Device Controller Controls.inputactions | 417 - ...vice Controller Controls.inputactions.meta | 14 - .../XR Device Hand Controls.inputactions | 134 - .../XR Device Hand Controls.inputactions.meta | 14 - .../XR Device Simulator Controls.inputactions | 580 - ...evice Simulator Controls.inputactions.meta | 14 - .../XR Device Simulator.prefab | 135 - .../XR Device Simulator.prefab.meta | 7 - .../PinchPoint.meta => 3.0.7.meta} | 2 +- .../Hands Interaction Demo.meta | 2 +- .../AffordanceThemes.meta | 0 .../AffordanceThemes/FingerColor.asset | 3 + .../AffordanceThemes/FingerColor.asset.meta} | 0 .../AffordanceThemes/HandEdgeColor.asset | 3 + .../HandEdgeColor.asset.meta} | 0 .../AffordanceThemes/InteractionColor.asset | 3 + .../InteractionColor.asset.meta} | 0 .../PinchPointBlendShape.asset | 0 .../PinchPointBlendShape.asset.meta | 0 .../AffordanceThemes}/PinchPointColor.asset | 0 .../PinchPointColor.asset.meta | 0 .../PinchPointEdgeStrength.asset | 0 .../PinchPointEdgeStrength.asset.meta | 0 .../PinchPointHighlightColor.asset | 0 .../PinchPointHighlightColor.asset.meta | 0 .../PinchPointLocalTransformOffset.asset | 0 .../PinchPointLocalTransformOffset.asset.meta | 0 .../PinchPointUniformScaleScale.asset | 0 .../PinchPointUniformScaleScale.asset.meta | 0 .../Hands Interaction Demo/DatumPresets.meta | 0 .../Menu Controller Follow Preset.asset | 0 .../Menu Controller Follow Preset.asset.meta | 0 .../Menu Hands Follow Preset.asset | 0 .../Menu Hands Follow Preset.asset.meta | 0 ...Under Watch Controller Follow Preset.asset | 0 ... Watch Controller Follow Preset.asset.meta | 0 .../Under Watch Hands Follow Preset.asset | 0 ...Under Watch Hands Follow Preset.asset.meta | 0 .../Hands Interaction Demo/Editor.meta | 0 .../HandsInteractionDemo.Editor.asmdef} | 6 +- .../HandsInteractionDemo.Editor.asmdef.meta} | 0 .../Editor/Scripts.meta | 0 .../Scripts/HandsSampleProjectValidation.cs} | 32 +- .../HandsSampleProjectValidation.cs.meta} | 0 .../HandsDemoScene.unity | 3153 ++-- .../HandsDemoScene.unity.meta | 0 .../HandsDemoSceneAssets.meta | 0 .../HandsDemoSceneAssets/Affordances.meta} | 0 .../Affordances/Audio.asset | 3 + .../Affordances/Audio.asset.meta} | 0 .../Affordances/BlendShapeValue.asset | 3 + .../Affordances/BlendShapeValue.asset.meta} | 0 .../Affordances/CapsuleScale.asset | 3 + .../Affordances/CapsuleScale.asset.meta} | 0 .../Affordances/ChessPieceColor.asset | 3 + .../Affordances/ChessPieceColor.asset.meta} | 0 .../Affordances/LargeScale.asset | 3 + .../Affordances/LargeScale.asset.meta} | 0 .../Affordances/Scale.asset | 3 + .../Affordances/Scale.asset.meta} | 0 .../HandsDemoSceneAssets/Audio.meta | 0 .../Audio/ButtonClick.wav | 0 .../Audio/ButtonClick.wav.meta | 0 .../Audio/ButtonHover.wav | 0 .../Audio/ButtonHover.wav.meta | 0 .../HandsDemoSceneAssets/Materials.meta | 0 .../Materials/AccentButton.mat | 180 + .../Materials/AccentButton.mat.meta | 0 .../Materials/ChessPiece.mat | 167 + .../Materials/ChessPiece.mat.meta | 0 .../HandsDemoSceneAssets/Materials/Chrome.mat | 42 +- .../Materials/Chrome.mat.meta | 0 .../Materials/Controls_Black.mat | 167 + .../Materials/Controls_Black.mat.meta | 0 .../Materials/FrameOutline.mat | 51 +- .../Materials/FrameOutline.mat.meta | 0 .../Materials/Interactable White.mat | 183 + .../Materials/Interactable White.mat.meta} | 2 +- .../Materials/RPMaterialHandler.asset | 3 + .../Materials/RPMaterialHandler.asset.meta} | 2 +- .../Materials/Table Surface.mat | 170 + .../Materials/Table Surface.mat.meta | 0 .../HandsDemoSceneAssets/Models.meta | 0 .../HandsDemoSceneAssets/Models/Chess.meta | 0 .../Models/Chess/Chess_Board.fbx | 0 .../Models/Chess/Chess_Board.fbx.meta | 0 .../Models/Chess/Chess_Pawn.fbx | 0 .../Models/Chess/Chess_Pawn.fbx.meta | 0 .../HandsDemoSceneAssets/Models/Frame.fbx | 0 .../Models/Frame.fbx.meta | 0 .../Models/Primitives.meta | 0 .../Models/Primitives/Cone.fbx | 0 .../Models/Primitives/Cone.fbx.meta | 0 .../Models/Primitives/Cube.fbx | 0 .../Models/Primitives/Cube.fbx.meta | 0 .../Models/Primitives/Cylinder.fbx | 0 .../Models/Primitives/Cylinder.fbx.meta | 0 .../Models/Primitives/Disc.fbx | 0 .../Models/Primitives/Disc.fbx.meta | 0 .../Models/VirtualTabletop.fbx | 0 .../Models/VirtualTabletop.fbx.meta | 0 .../HandsDemoSceneAssets/Prefabs.meta | 0 .../HandsDemoSceneAssets/Prefabs/Arrow.prefab | 619 +- .../Prefabs/Arrow.prefab.meta | 0 .../Prefabs/AudioAffordance.prefab | 171 + .../Prefabs/AudioAffordance.prefab.meta} | 2 +- .../HandsDemoSceneAssets/Prefabs/Cube.prefab | 92 +- .../Prefabs/Cube.prefab.meta | 0 .../Prefabs/Cylinder.prefab | 92 +- .../Prefabs/Cylinder.prefab.meta | 0 .../HandsDemoSceneAssets/Prefabs/Disc.prefab | 30 - .../Prefabs/Disc.prefab.meta | 0 .../Prefabs/DiscController.prefab} | 277 +- .../Prefabs/DiscController.prefab.meta} | 0 .../Prefabs}/PawnController.prefab | 271 +- .../Prefabs}/PawnController.prefab.meta | 0 .../Prefabs/PokeButton.prefab | 477 +- .../Prefabs/PokeButton.prefab.meta | 0 .../Prefabs/SimpleSocket.prefab | 16 +- .../Prefabs/SimpleSocket.prefab.meta | 0 .../Prefabs/SimpleSocketShape.prefab | 34 +- .../Prefabs/SimpleSocketShape.prefab.meta | 0 .../Prefabs/TableHandle.prefab | 403 +- .../Prefabs/TableHandle.prefab.meta | 0 .../HandsDemoSceneAssets/Prefabs/UI.meta | 0 .../Prefabs/UI/ButtonHandMenu.prefab} | 6 +- .../Prefabs/UI/ButtonHandMenu.prefab.meta} | 0 .../Prefabs/UI/ScrollHandMenu.prefab} | 0 .../Prefabs/UI/ScrollHandMenu.prefab.meta} | 0 .../Prefabs/UI/ScrollView.prefab} | 2 +- .../Prefabs/UI/ScrollView.prefab.meta} | 0 .../Prefabs/UI/ScrollViewItem.prefab} | 2 +- .../Prefabs/UI/ScrollViewItem.prefab.meta} | 0 .../Prefabs/UI/TouchPadButton.prefab} | 2 +- .../Prefabs/UI/TouchPadButton.prefab.meta} | 0 .../HandsDemoSceneAssets/Scripts.meta | 0 .../Scripts/ObjectResetPlane.cs | 16 +- .../Scripts/ObjectResetPlane.cs.meta | 0 .../Scripts/PokeBlendShapeAnimator.cs | 13 +- .../Scripts/PokeBlendShapeAnimator.cs.meta | 0 .../Scripts/ToggleGameObject.cs | 2 +- .../Scripts/ToggleGameObject.cs.meta | 0 .../Scripts/ToggleGraphicToggler.cs | 2 +- .../Scripts/ToggleGraphicToggler.cs.meta | 0 .../Scripts/TransformSync.cs | 8 +- .../Scripts/TransformSync.cs.meta | 0 .../HandsInteractionDemo.asmdef} | 5 + .../HandsInteractionDemo.asmdef.meta} | 0 .../Hands Interaction Demo/Materials.meta | 0 .../Materials/DepthOnly.mat | 0 .../Materials/DepthOnly.mat.meta | 0 .../Materials/Unity_Hand_Dark.mat | 0 .../Materials/Unity_Hand_Dark.mat.meta | 0 .../Materials/Unity_Hand_Light.mat | 0 .../Materials/Unity_Hand_Light.mat.meta | 0 .../Materials/Unity_Hand_Medium.mat | 0 .../Materials/Unity_Hand_Medium.mat.meta | 0 .../Hands Interaction Demo/Prefabs.meta | 0 .../Prefabs/HandInteractorAffordances.prefab} | 2 +- .../HandInteractorAffordances.prefab.meta} | 0 .../Prefabs/HandMenuRig.prefab} | 4 +- .../Prefabs/HandMenuRig.prefab.meta} | 0 .../HandPokeInteractorAffordances.prefab} | 2 +- ...HandPokeInteractorAffordances.prefab.meta} | 0 .../Prefabs/InteractionAffordance.prefab | 316 +- .../Prefabs/InteractionAffordance.prefab.meta | 0 .../Prefabs/LeftHandInteractionVisual.prefab} | 71 +- .../LeftHandInteractionVisual.prefab.meta} | 0 .../Prefabs/PinchPointStabilized.prefab} | 475 +- .../Prefabs/PinchPointStabilized.prefab.meta} | 0 .../RightHandInteractionVisual.prefab} | 71 +- .../RightHandInteractionVisual.prefab.meta} | 0 .../Prefabs/XR Origin Hands (XR Rig).prefab | 2562 +-- .../XR Origin Hands (XR Rig).prefab.meta | 0 .../Hands Interaction Demo/Scripts.meta | 0 .../HandsOneEuroFilterPostProcessor.cs | 8 +- .../HandsOneEuroFilterPostProcessor.cs.meta | 0 .../HideObjectWhenInteractorBlocked.cs | 49 + .../HideObjectWhenInteractorBlocked.cs.meta} | 0 .../LocalPositionOffsetAffordanceReceiver.cs | 2 + ...alPositionOffsetAffordanceReceiver.cs.meta | 0 .../Scripts/MetaSystemGestureDetector.cs | 8 +- .../Scripts/MetaSystemGestureDetector.cs.meta | 0 .../Scripts/OneEuroFilterVector3.cs | 0 .../Scripts/OneEuroFilterVector3.cs.meta | 0 .../Scripts/PinchPointFollow.cs | 185 + .../Scripts/PinchPointFollow.cs.meta | 0 .../Scripts/PokeGestureDetector.cs | 2 +- .../Scripts/PokeGestureDetector.cs.meta | 0 .../Scripts/ReleaseThresholdButtonReader.cs | 133 + .../ReleaseThresholdButtonReader.cs.meta} | 2 +- .../Scripts/ValueDerivedButtonReader.cs | 121 + .../Scripts/ValueDerivedButtonReader.cs.meta} | 2 +- .../Scripts/Vector3ScaleAffordanceReceiver.cs | 2 + .../Vector3ScaleAffordanceReceiver.cs.meta | 0 .../Hands Interaction Demo/Shaders.meta | 0 .../Shaders/DepthOnly.shader | 2 +- .../Shaders/DepthOnly.shader.meta | 0 .../Shaders/RimLight.shadergraph | 0 .../Shaders/RimLight.shadergraph.meta | 0 .../Shaders/Subgraphs.meta | 0 .../AllFingerHighlights.shadersubgraph | 0 .../AllFingerHighlights.shadersubgraph.meta | 0 .../Subgraphs/EdgeHighlight.shadersubgraph | 0 .../EdgeHighlight.shadersubgraph.meta | 0 .../Subgraphs/FadeFromCenter.shadersubgraph | 0 .../FadeFromCenter.shadersubgraph.meta | 0 .../FadeFromCenterWithNoise.shadersubgraph | 0 ...adeFromCenterWithNoise.shadersubgraph.meta | 0 .../OneFingerHighlight.shadersubgraph | 0 .../OneFingerHighlight.shadersubgraph.meta | 0 .../Shaders/Unity_Hand.shadergraph | 0 .../Shaders/Unity_Hand.shadergraph.meta | 0 .../Shaders/Unity_Hand_HDR.shadergraph | 0 .../Shaders/Unity_Hand_HDR.shadergraph.meta | 0 .../Shaders/Unity_Hand_Noise.shadergraph | 0 .../Shaders/Unity_Hand_Noise.shadergraph.meta | 0 .../Shaders/Unity_Hand_Noise_HDR.shadergraph | 0 .../Unity_Hand_Noise_HDR.shadergraph.meta | 0 .../Hands Interaction Demo/Textures.meta | 0 .../Textures/CombinedFingerIndexHighlight.png | 0 .../CombinedFingerIndexHighlight.png.meta | 0 .../{2.5.2 => 3.0.7}/Starter Assets.meta | 2 +- .../Starter Assets}/AffordanceThemes.meta | 0 .../ControllerPokeSphereScale.asset | 3 + .../ControllerPokeSphereScale.asset.meta} | 2 +- .../HighlightInteractionColor.asset | 3 + .../HighlightInteractionColor.asset.meta} | 2 +- .../HighlightStrengthInteraction.asset | 3 + .../HighlightStrengthInteraction.asset.meta} | 2 +- .../AffordanceThemes/PokeSphereColor.asset | 3 + .../PokeSphereColor.asset.meta | 8 + .../PokeSphereInteraction.asset | 3 + .../PokeSphereInteraction.asset.meta | 8 + .../Starter Assets/Animations.meta} | 2 +- .../Animations/ArrowBounce.anim | 205 + .../Animations/ArrowBounce.anim.meta | 8 + .../Climb Teleport Arrow.controller | 72 + .../Climb Teleport Arrow.controller.meta | 8 + .../3.0.7/Starter Assets/DemoScene.unity | 4782 ++++++ .../Starter Assets/DemoScene.unity.meta | 0 .../Starter Assets/DemoSceneAssets.meta | 0 .../DemoSceneAssets/AffordanceThemes.meta} | 2 +- .../AffordanceThemes/InteractionColor.asset | 3 + .../InteractionColor.asset.meta} | 0 .../Starter Assets/DemoSceneAssets/Audio.meta | 0 .../DemoSceneAssets/Audio/Button Pop.wav | 0 .../DemoSceneAssets/Audio/Button Pop.wav.meta | 0 .../DemoSceneAssets/Materials.meta | 8 + .../Materials/Concrete Dark Blue.mat | 169 + .../Materials/Concrete Dark Blue.mat.meta} | 2 +- .../Materials/Concrete Grey.mat | 172 + .../Materials/Concrete Grey.mat.meta} | 2 +- .../Materials/Concrete Light Blue.mat | 169 + .../Materials/Concrete Light Blue.mat.meta | 8 + .../DemoSceneAssets/Materials/Lit White.mat} | 82 +- .../Materials/Lit White.mat.meta | 8 + .../Materials/MaterialPipelineHandler.asset | 3 + .../MaterialPipelineHandler.asset.meta | 8 + .../DemoSceneAssets/Models.meta | 0 .../Models/Primitive_Blaster.fbx | 3 + .../Models/Primitive_Blaster.fbx.meta} | 19 +- .../Models/Primitive_Blaster_Long.fbx | 3 + .../Models/Primitive_Blaster_Long.fbx.meta | 111 + .../Models/Primitive_Cylinder.fbx | 3 + .../Models/Primitive_Cylinder.fbx.meta | 111 + .../Models/Primitive_Pyramid.fbx | 0 .../Models/Primitive_Pyramid.fbx.meta | 7 +- .../Models/Primitive_Tapered_Cylinder.fbx | 3 + .../Primitive_Tapered_Cylinder.fbx.meta | 111 + .../Models/Primitive_Torus.fbx | 0 .../Models/Primitive_Torus.fbx.meta | 7 +- .../Models/Primitive_Torus_Cut.fbx | 3 + .../Models/Primitive_Torus_Cut.fbx.meta} | 19 +- .../DemoSceneAssets/Models/PushButton.fbx | 0 .../Models/PushButton.fbx.meta | 0 .../DemoSceneAssets/Prefabs.meta | 0 .../DemoSceneAssets/Prefabs/Climb.meta | 0 .../Prefabs/Climb/Climb Sample.prefab | 188 +- .../Prefabs/Climb/Climb Sample.prefab.meta | 0 .../Prefabs/Climb/ClimbTeleportReticle.prefab | 647 + .../Climb/ClimbTeleportReticle.prefab.meta} | 2 +- .../Prefabs/Climb/Climbing Wall.prefab | 105 +- .../Prefabs/Climb/Climbing Wall.prefab.meta | 0 .../Prefabs/Climb/Ladder.prefab | 90 +- .../Prefabs/Climb/Ladder.prefab.meta | 0 .../Prefabs/Climb/Multi Floor Ladder.prefab | 932 + .../Climb/Multi Floor Ladder.prefab.meta} | 2 +- .../Prefabs/Climb/Single Floor Ladder.prefab | 388 + .../Climb/Single Floor Ladder.prefab.meta} | 2 +- .../Prefabs/Far Grab Samples.prefab | 222 + .../Prefabs/Far Grab Samples.prefab.meta | 7 + .../Prefabs/Gaze Interactables.prefab | 1093 ++ .../Prefabs/Gaze Interactables.prefab.meta | 7 + .../Prefabs/Interactables Sample.prefab | 8 +- .../Prefabs/Interactables Sample.prefab.meta | 0 .../Prefabs/Interactables.meta | 0 .../Prefabs/Interactables/Blaser-Long.prefab | 533 + .../Interactables/Blaser-Long.prefab.meta | 7 + .../Prefabs/Interactables/Blaser.prefab | 493 + .../Prefabs/Interactables/Blaser.prefab.meta | 7 + .../Prefabs/Interactables/Confetti.prefab | 4872 ++++++ .../Interactables/Confetti.prefab.meta | 7 + .../Prefabs/Interactables/Cube.prefab} | 32 +- .../Prefabs/Interactables/Cube.prefab.meta} | 0 .../Prefabs/Interactables/Cylinder.prefab} | 310 +- .../Interactables/Cylinder.prefab.meta} | 0 .../Prefabs/Interactables/Pot.prefab} | 282 +- .../Prefabs/Interactables/Pot.prefab.meta} | 0 .../Prefabs/Interactables/Push Button.prefab | 30 - .../Interactables/Push Button.prefab.meta | 0 .../Prefabs/Interactables/Torus-Cut.prefab | 352 + .../Interactables/Torus-Cut.prefab.meta | 7 + .../Prefabs/Interactables/Torus.prefab} | 106 +- .../Prefabs/Interactables/Torus.prefab.meta} | 0 .../Prefabs/InteractionAffordance.prefab} | 2 +- .../InteractionAffordance.prefab.meta} | 0 .../Prefabs/Poke Interactions Sample.prefab | 5557 ++++++ .../Poke Interactions Sample.prefab.meta | 7 + .../DemoSceneAssets/Prefabs/Teleport.meta | 0 .../Teleport/Snap Teleport Anchor.prefab} | 70 + .../Snap Teleport Anchor.prefab.meta} | 0 .../Prefabs/Teleport/Teleport Anchor.prefab | 32 +- .../Teleport/Teleport Anchor.prefab.meta | 0 .../Prefabs/Teleport/Teleport Area.prefab | 32 +- .../Teleport/Teleport Area.prefab.meta | 0 .../Prefabs/Teleportation Environment.prefab | 6 +- .../Teleportation Environment.prefab.meta | 0 .../DemoSceneAssets/Prefabs/UI Sample.prefab | 0 .../Prefabs/UI Sample.prefab.meta | 0 .../DemoSceneAssets/Prefabs/UI.meta | 0 .../Prefabs/UI/Dropdown.prefab | 0 .../Prefabs/UI/Dropdown.prefab.meta | 0 .../Prefabs/UI/Icon Button.prefab | 0 .../Prefabs/UI/Icon Button.prefab.meta | 0 .../Prefabs/UI/Icon Toggle.prefab | 0 .../Prefabs/UI/Icon Toggle.prefab.meta | 0 .../Prefabs/UI/Interactive Controls.prefab | 0 .../UI/Interactive Controls.prefab.meta | 0 .../Prefabs/UI/MinMaxSlider.prefab | 0 .../Prefabs/UI/MinMaxSlider.prefab.meta | 0 .../Prefabs/UI/ModalSingleButton.prefab | 0 .../Prefabs/UI/ModalSingleButton.prefab.meta | 0 .../Prefabs/UI/Scroll UI Sample.prefab | 0 .../Prefabs/UI/Scroll UI Sample.prefab.meta | 0 .../Prefabs/UI/Text Toggle.prefab | 0 .../Prefabs/UI/Text Toggle.prefab.meta | 0 .../Prefabs/UI/TextButton.prefab | 0 .../Prefabs/UI/TextButton.prefab.meta | 0 .../DemoSceneAssets/Scripts.meta | 0 .../Scripts/IncrementUIText.cs | 0 .../Scripts/IncrementUIText.cs.meta | 0 .../Scripts/MultiAnchorTeleportReticle.cs | 164 + .../MultiAnchorTeleportReticle.cs.meta} | 2 +- .../DemoSceneAssets/Settings.meta | 8 + .../Settings/GazeTeleportAnchorFilter.asset | 3 + .../GazeTeleportAnchorFilter.asset.meta | 8 + .../TeleportVolumeDestinationSettings.asset | 3 + ...leportVolumeDestinationSettings.asset.meta | 8 + .../DemoSceneAssets/Sprites.meta | 0 .../DemoSceneAssets/Sprites/Asset.png | 0 .../DemoSceneAssets/Sprites/Asset.png.meta | 0 .../DemoSceneAssets/Sprites/Checkmark.png | 0 .../Sprites/Checkmark.png.meta | 0 .../Sprites/Circle_60x60 Outline 4.png | 3 + .../Sprites/Circle_60x60 Outline 4.png.meta} | 4 +- .../Sprites/Circle_60x60_Horizontal.png | 0 .../Sprites/Circle_60x60_Horizontal.png.meta | 0 .../DemoSceneAssets/Sprites/Forward.png | 0 .../DemoSceneAssets/Sprites/Forward.png.meta | 0 .../Sprites/LegibilityMask.png | 3 + .../Sprites/LegibilityMask.png.meta} | 6 +- .../Sprites/Round Radius 4 Outline.png | 0 .../Sprites/Round Radius 4 Outline.png.meta | 0 .../Sprites/Round Radius 4.png | 0 .../Sprites/Round Radius 4.png.meta | 0 .../DemoSceneAssets/Textures.meta | 8 + .../Textures/Concrete_Albedo.tif | Bin 0 -> 2220452 bytes .../Textures/Concrete_Albedo.tif.meta} | 24 +- .../Textures/Concrete_Metallic.tif | Bin 0 -> 651864 bytes .../Textures/Concrete_Metallic.tif.meta} | 34 +- .../Textures/Concrete_Normal.tif | Bin 0 -> 1707440 bytes .../Textures/Concrete_Normal.tif.meta | 135 + .../Starter Assets/Editor.meta | 0 .../Starter Assets/Editor/Scripts.meta | 0 .../StarterAssetsSampleProjectValidation.cs | 195 + ...arterAssetsSampleProjectValidation.cs.meta | 0 .../Editor/StarterAssets.Editor.asmdef} | 11 +- .../Editor/StarterAssets.Editor.asmdef.meta} | 0 .../3.0.7/Starter Assets/Filters.meta | 8 + .../AnyGazedAtTeleportAnchorFilter.asset | 3 + .../AnyGazedAtTeleportAnchorFilter.asset.meta | 8 + .../3.0.7/Starter Assets/Materials.meta | 8 + .../Materials/Controller_Grey.mat | 185 + .../Materials/Controller_Grey.mat.meta | 8 + .../Materials/Controller_White.mat | 171 + .../Materials/Controller_White.mat.meta | 8 + .../Starter Assets/Materials/Flat Blue.mat} | 14 +- .../Materials/Flat Blue.mat.meta | 8 + .../Materials/FresnelHighlight.mat | 176 + .../Materials/FresnelHighlight.mat.meta | 8 + .../Starter Assets/Materials/Interactable.mat | 183 + .../Materials/Interactable.mat.meta | 8 + .../Materials/MaterialPipelineHandler.asset | 3 + .../MaterialPipelineHandler.asset.meta | 8 + .../Materials/Telport Anchor.mat | 171 + .../Materials/Telport Anchor.mat.meta | 8 + .../Starter Assets/Materials/Telport Area.mat | 171 + .../Materials/Telport Area.mat.meta | 8 + .../Starter Assets/Materials/UI-NoZTest.mat} | 21 +- .../Materials/UI-NoZTest.mat.meta | 8 + .../Starter Assets/Models.meta | 0 .../Starter Assets/Models/BlinkVisual.fbx | 3 + .../Models/BlinkVisual.fbx.meta | 111 + .../Models/Pinch_Pointer_LOD0.fbx | 0 .../Models/Pinch_Pointer_LOD0.fbx.meta | 0 .../Models/Primitive_Cylinder.fbx | 0 .../Models/Primitive_Cylinder.fbx.meta | 7 +- .../Starter Assets/Models/Primitive_Wedge.fbx | 0 .../Models/Primitive_Wedge.fbx.meta | 7 +- .../Starter Assets/Models/Reticle_Torus.fbx | 0 .../Models/Reticle_Torus.fbx.meta | 7 +- .../Models/UniversalController.fbx | 3 + .../Models/UniversalController.fbx.meta | 116 + .../Starter Assets/Prefabs.meta | 0 .../Starter Assets}/Prefabs/Affordances.meta | 2 +- .../HighlightInteractionAffordance.prefab | 278 + ...HighlightInteractionAffordance.prefab.meta | 7 + .../Affordances/PokePointerAffordance.prefab} | 253 +- .../PokePointerAffordance.prefab.meta | 7 + .../Starter Assets/Prefabs/Controllers.meta | 0 .../Controllers/XR Controller Left.prefab | 1213 +- .../XR Controller Left.prefab.meta | 0 .../Controllers/XR Controller Right.prefab | 945 +- .../XR Controller Right.prefab.meta | 0 .../Starter Assets/Prefabs/Interactors.meta | 0 .../Interactors/Direct Interactor.prefab | 229 + .../Interactors/Direct Interactor.prefab.meta | 0 .../Interactors/Gaze Interactor.prefab | 528 +- .../Interactors/Gaze Interactor.prefab.meta | 0 .../Interactors/Left_NearFarInteractor.prefab | 721 + .../Left_NearFarInteractor.prefab.meta | 7 + .../Interactors/Poke Interactor.prefab | 264 + .../Interactors/Poke Interactor.prefab.meta | 0 .../Prefabs/Interactors/Ray Interactor.prefab | 295 +- .../Interactors/Ray Interactor.prefab.meta | 0 .../Right_NearFarInteractor.prefab | 91 + .../Right_NearFarInteractor.prefab.meta | 7 + .../Interactors/Teleport Interactor.prefab | 309 +- .../Teleport Interactor.prefab.meta | 0 .../Starter Assets/Prefabs/Teleport.meta | 0 .../Teleport/Blocking Teleport Reticle.prefab | 0 .../Blocking Teleport Reticle.prefab.meta | 0 .../Teleport/Climb Teleport Arrow.prefab | 342 + .../Teleport/Climb Teleport Arrow.prefab.meta | 7 + .../Directional Teleport Reticle.prefab | 184 + .../Directional Teleport Reticle.prefab.meta | 0 .../Prefabs/XR Origin (XR Rig).prefab | 2175 +-- .../Prefabs/XR Origin (XR Rig).prefab.meta | 0 .../Starter Assets/Presets.meta | 0 .../XRI Default Continuous Move.preset | 86 +- .../XRI Default Continuous Move.preset.meta} | 2 +- .../XRI Default Continuous Turn.preset | 143 + .../XRI Default Continuous Turn.preset.meta} | 2 +- .../Presets/XRI Default Dynamic Move.preset | 179 + .../XRI Default Dynamic Move.preset.meta | 8 + ...Left Controller InputActionManager.preset} | 20 +- ...Controller InputActionManager.preset.meta} | 0 .../Presets/XRI Default Left Grab Move.preset | 211 + .../XRI Default Left Grab Move.preset.meta | 0 ...ight Controller InputActionManager.preset} | 20 +- ...Controller InputActionManager.preset.meta} | 0 .../XRI Default Right Grab Move.preset | 211 + .../XRI Default Right Grab Move.preset.meta | 0 .../Presets/XRI Default Snap Turn.preset | 80 +- .../Presets/XRI Default Snap Turn.preset.meta | 4 +- .../XRI Default XR UI Input Module.preset | 6 +- ...XRI Default XR UI Input Module.preset.meta | 0 .../Starter Assets/Scripts.meta | 0 .../ClimbTeleportDestinationIndicator.cs | 143 + .../ClimbTeleportDestinationIndicator.cs.meta | 11 + .../Scripts/ControllerAnimator.cs | 84 + .../Scripts/ControllerAnimator.cs.meta | 11 + .../Scripts/ControllerInputActionManager.cs} | 322 +- .../ControllerInputActionManager.cs.meta} | 0 .../Starter Assets/Scripts/DestroySelf.cs | 4 +- .../Scripts/DestroySelf.cs.meta | 0 .../Scripts/DynamicMoveProvider.cs | 11 +- .../Scripts/DynamicMoveProvider.cs.meta | 0 .../Scripts/GazeInputManager.cs | 0 .../Scripts/GazeInputManager.cs.meta | 0 .../Scripts/MaterialPipelineHandler.cs | 242 + .../Scripts/MaterialPipelineHandler.cs.meta | 11 + .../Starter Assets/Scripts/ObjectSpawner.cs | 4 +- .../Scripts/ObjectSpawner.cs.meta | 0 .../RotationAxisLockGrabTransformer.cs} | 5 +- .../RotationAxisLockGrabTransformer.cs.meta | 11 + ...TeleportVolumeAnchorAffordanceStateLink.cs | 97 + ...ortVolumeAnchorAffordanceStateLink.cs.meta | 11 + .../Scripts/XRPokeFollowAffordance.cs | 108 +- .../Scripts/XRPokeFollowAffordance.cs.meta | 0 .../3.0.7/Starter Assets/Shaders.meta | 8 + .../Shaders/BiRP_Fresnel.shader | 83 + .../Shaders/BiRP_Fresnel.shader.meta | 10 + .../Shaders/Interactable.shadergraph | 4145 +++++ .../Shaders/Interactable.shadergraph.meta | 10 + .../Starter Assets/Shaders/UI-NoZTest.shader | 95 + .../Shaders/UI-NoZTest.shader.meta | 10 + .../Shaders/Unlit_Fresnel.shadergraph | 2197 +++ .../Shaders/Unlit_Fresnel.shadergraph.meta | 10 + .../Shaders/Unlit_ShaderGraph.shadergraph | 755 + .../Unlit_ShaderGraph.shadergraph.meta | 10 + .../Starter Assets/StarterAssets.asmdef} | 0 .../Starter Assets/StarterAssets.asmdef.meta} | 0 .../3.0.7/Starter Assets/Textures.meta | 8 + .../Textures/DefaultMaterial_AO.png | 3 + .../Textures/DefaultMaterial_AO.png.meta | 135 + .../Starter Assets/TunnelingVignette.meta} | 0 .../TunnelingVignette}/TunnelingVignette.mat | 0 .../TunnelingVignette.mat.meta | 0 .../TunnelingVignette.prefab | 0 .../TunnelingVignette.prefab.meta | 0 .../TunnelingVignette.shader | 2 +- .../TunnelingVignette.shader.meta | 0 .../TunnelingVignetteHemisphere.fbx | 0 .../TunnelingVignetteHemisphere.fbx.meta | 0 .../TunnelingVignetteSG.shadergraph | 0 .../TunnelingVignetteSG.shadergraph.meta | 0 .../XRI Default Input Actions.inputactions | 1202 +- ...RI Default Input Actions.inputactions.meta | 0 Assets/Scenes/Old/Launcher.unity | 8 +- Assets/Scripts/Help/SetHandRay.cs | 18 +- .../Built-In Samples.unitypackage.meta | 8 - .../HDRP Samples 14x.unitypackage.meta | 7 - .../Examples/HDRP Samples.unitypackage.meta | 8 - .../Sample Resources.unitypackage.meta | 8 - .../URP Samples 10x.unitypackage.meta | 7 - .../URP Samples 12x.unitypackage.meta | 7 - .../URP Samples 14x.unitypackage.meta | 7 - .../Examples/URP Samples.unitypackage.meta | 8 - .../Templates/HDRP 10x.unitypackage.meta | 7 - .../Templates/HDRP 12x.unitypackage.meta | 7 - .../Templates/HDRP 14x.unitypackage.meta | 7 - .../Templates/URP 10x.unitypackage.meta | 7 - .../Templates/URP 12x.unitypackage.meta | 7 - .../Templates/URP 14x.unitypackage.meta | 7 - .../GaiaXRController.unitypackage.meta | 7 - Packages/MCPForUnity/Editor.meta | 8 + Packages/MCPForUnity/Editor/AssemblyInfo.cs | 3 + .../MCPForUnity/Editor/AssemblyInfo.cs.meta | 11 + Packages/MCPForUnity/Editor/Clients.meta | 8 + .../Editor/Clients/Configurators.meta | 8 + .../Configurators/AntigravityConfigurator.cs | 32 + .../AntigravityConfigurator.cs.meta | 11 + .../Configurators/CherryStudioConfigurator.cs | 94 + .../CherryStudioConfigurator.cs.meta | 11 + .../Configurators/ClaudeCodeConfigurator.cs | 27 + .../ClaudeCodeConfigurator.cs.meta | 11 + .../ClaudeDesktopConfigurator.cs | 57 + .../ClaudeDesktopConfigurator.cs.meta | 11 + .../Configurators/CodeBuddyCliConfigurator.cs | 29 + .../CodeBuddyCliConfigurator.cs.meta | 11 + .../Configurators/CodexConfigurator.cs | 26 + .../Configurators/CodexConfigurator.cs.meta | 11 + .../Configurators/CopilotCliConfigurator.cs | 27 + .../CopilotCliConfigurator.cs.meta | 11 + .../Configurators/CursorConfigurator.cs | 27 + .../Configurators/CursorConfigurator.cs.meta | 11 + .../Configurators/KiloCodeConfigurator.cs | 29 + .../KiloCodeConfigurator.cs.meta | 11 + .../Clients/Configurators/KiroConfigurator.cs | 29 + .../Configurators/KiroConfigurator.cs.meta | 11 + .../Configurators/OpenCodeConfigurator.cs | 178 + .../OpenCodeConfigurator.cs.meta | 11 + .../Configurators/RiderConfigurator.cs | 29 + .../Configurators/RiderConfigurator.cs.meta | 11 + .../Clients/Configurators/TraeConfigurator.cs | 30 + .../Configurators/TraeConfigurator.cs.meta | 11 + .../Configurators/VSCodeConfigurator.cs | 28 + .../Configurators/VSCodeConfigurator.cs.meta | 11 + .../VSCodeInsidersConfigurator.cs | 28 + .../VSCodeInsidersConfigurator.cs.meta | 11 + .../Configurators/WindsurfConfigurator.cs | 30 + .../WindsurfConfigurator.cs.meta | 11 + .../Editor/Clients/IMcpClientConfigurator.cs | 47 + .../Clients/IMcpClientConfigurator.cs.meta | 11 + .../Clients/McpClientConfiguratorBase.cs | 925 + .../Clients/McpClientConfiguratorBase.cs.meta | 11 + .../Editor/Clients/McpClientRegistry.cs | 60 + .../Editor/Clients/McpClientRegistry.cs.meta | 11 + Packages/MCPForUnity/Editor/Constants.meta | 8 + .../Editor/Constants/AuthConstants.cs | 10 + .../Editor/Constants/AuthConstants.cs.meta | 11 + .../Editor/Constants/EditorPrefKeys.cs | 66 + .../Editor/Constants/EditorPrefKeys.cs.meta | 11 + .../Editor/Constants/HealthStatus.cs | 14 + .../Editor/Constants/HealthStatus.cs.meta | 11 + Packages/MCPForUnity/Editor/Dependencies.meta | 8 + .../Editor/Dependencies/DependencyManager.cs | 143 + .../Dependencies/DependencyManager.cs.meta | 11 + .../Editor/Dependencies}/Models.meta | 2 +- .../Models/DependencyCheckResult.cs | 96 + .../Models/DependencyCheckResult.cs.meta | 11 + .../Dependencies/Models/DependencyStatus.cs | 65 + .../Models/DependencyStatus.cs.meta | 11 + .../Dependencies/PlatformDetectors.meta | 8 + .../PlatformDetectors/IPlatformDetector.cs | 45 + .../IPlatformDetector.cs.meta | 11 + .../LinuxPlatformDetector.cs | 207 + .../LinuxPlatformDetector.cs.meta | 11 + .../MacOSPlatformDetector.cs | 205 + .../MacOSPlatformDetector.cs.meta | 11 + .../PlatformDetectors/PlatformDetectorBase.cs | 137 + .../PlatformDetectorBase.cs.meta | 11 + .../WindowsPlatformDetector.cs | 297 + .../WindowsPlatformDetector.cs.meta | 11 + Packages/MCPForUnity/Editor/External.meta | 8 + Packages/MCPForUnity/Editor/External/Tommy.cs | 2138 +++ .../MCPForUnity/Editor/External/Tommy.cs.meta | 11 + Packages/MCPForUnity/Editor/Helpers.meta | 8 + .../Editor/Helpers/AssetPathUtility.cs | 430 + .../Editor/Helpers/AssetPathUtility.cs.meta | 11 + .../Editor/Helpers/CodexConfigHelper.cs | 319 + .../Editor/Helpers/CodexConfigHelper.cs.meta | 11 + .../Editor/Helpers/ComponentOps.cs | 349 + .../Editor/Helpers/ComponentOps.cs.meta | 11 + .../Editor/Helpers/ConfigJsonBuilder.cs | 194 + .../Editor/Helpers/ConfigJsonBuilder.cs.meta | 11 + .../MCPForUnity/Editor/Helpers/ExecPath.cs | 324 + .../Editor/Helpers/ExecPath.cs.meta | 11 + .../Editor/Helpers/GameObjectLookup.cs | 370 + .../Editor/Helpers/GameObjectLookup.cs.meta | 11 + .../Editor/Helpers/GameObjectSerializer.cs | 666 + .../Helpers/GameObjectSerializer.cs.meta | 11 + .../Editor/Helpers/HttpEndpointUtility.cs | 184 + .../Helpers/HttpEndpointUtility.cs.meta | 11 + .../MCPForUnity/Editor/Helpers/MaterialOps.cs | 397 + .../Editor/Helpers/MaterialOps.cs.meta | 11 + .../Editor/Helpers/McpConfigurationHelper.cs | 283 + .../Helpers/McpConfigurationHelper.cs.meta | 11 + .../Editor/Helpers/McpJobStateStore.cs | 62 + .../Editor/Helpers/McpJobStateStore.cs.meta | 11 + Packages/MCPForUnity/Editor/Helpers/McpLog.cs | 53 + .../MCPForUnity/Editor/Helpers/McpLog.cs.meta | 11 + .../Editor/Helpers/ObjectResolver.cs | 202 + .../Editor/Helpers/ObjectResolver.cs.meta | 11 + .../MCPForUnity/Editor/Helpers/Pagination.cs | 149 + .../Editor/Helpers/Pagination.cs.meta | 11 + .../Editor/Helpers/ParamCoercion.cs | 363 + .../Editor/Helpers/ParamCoercion.cs.meta | 11 + .../MCPForUnity/Editor/Helpers/PortManager.cs | 345 + .../Editor/Helpers/PortManager.cs.meta | 11 + .../Editor/Helpers/PrefabUtilityHelper.cs | 228 + .../Helpers/PrefabUtilityHelper.cs.meta | 11 + .../Editor/Helpers/ProjectIdentityUtility.cs | 260 + .../Helpers/ProjectIdentityUtility.cs.meta | 11 + .../Editor/Helpers/PropertyConversion.cs | 93 + .../Editor/Helpers/PropertyConversion.cs.meta | 11 + .../Editor/Helpers/RenderPipelineUtility.cs | 284 + .../Helpers/RenderPipelineUtility.cs.meta | 11 + .../Editor/Helpers/RendererHelpers.cs | 241 + .../Editor/Helpers/RendererHelpers.cs.meta | 12 + .../MCPForUnity/Editor/Helpers/Response.cs | 108 + .../Editor/Helpers/Response.cs.meta | 11 + .../Editor/Helpers/StringCaseUtility.cs | 73 + .../Editor/Helpers/StringCaseUtility.cs.meta | 11 + .../Editor/Helpers/TelemetryHelper.cs | 226 + .../Editor/Helpers/TelemetryHelper.cs.meta | 11 + .../MCPForUnity/Editor/Helpers/TextureOps.cs | 162 + .../Editor/Helpers/TextureOps.cs.meta | 11 + .../MCPForUnity/Editor/Helpers/ToolParams.cs | 179 + .../Editor/Helpers/ToolParams.cs.meta | 11 + .../Editor/Helpers/UnityJsonSerializer.cs | 33 + .../Helpers/UnityJsonSerializer.cs.meta | 11 + .../Editor/Helpers/UnityTypeResolver.cs | 217 + .../Editor/Helpers/UnityTypeResolver.cs.meta | 11 + .../Editor/Helpers/VectorParsing.cs | 731 + .../Editor/Helpers/VectorParsing.cs.meta | 11 + .../Editor/MCPForUnity.Editor.asmdef | 20 + .../Editor/MCPForUnity.Editor.asmdef.meta | 2 +- Packages/MCPForUnity/Editor/McpCiBoot.cs | 21 + Packages/MCPForUnity/Editor/McpCiBoot.cs.meta | 11 + Packages/MCPForUnity/Editor/MenuItems.meta | 8 + .../Editor/MenuItems/MCPForUnityMenu.cs | 36 + .../Editor/MenuItems/MCPForUnityMenu.cs.meta | 11 + Packages/MCPForUnity/Editor/Migrations.meta | 8 + .../Migrations/LegacyServerSrcMigration.cs | 80 + .../LegacyServerSrcMigration.cs.meta | 11 + .../Migrations/StdIoVersionMigration.cs | 148 + .../Migrations/StdIoVersionMigration.cs.meta | 11 + Packages/MCPForUnity/Editor/Models.meta | 8 + Packages/MCPForUnity/Editor/Models/Command.cs | 21 + .../MCPForUnity/Editor/Models/Command.cs.meta | 11 + .../Editor/Models/MCPConfigServer.cs | 23 + .../Editor/Models/MCPConfigServer.cs.meta | 11 + .../Editor/Models/MCPConfigServers.cs | 12 + .../Editor/Models/MCPConfigServers.cs.meta | 11 + .../MCPForUnity/Editor/Models/McpClient.cs | 57 + .../Editor/Models/McpClient.cs.meta | 11 + .../MCPForUnity/Editor/Models/McpConfig.cs | 12 + .../Editor/Models/McpConfig.cs.meta | 11 + .../MCPForUnity/Editor/Models/McpStatus.cs | 30 + .../Editor/Models/McpStatus.cs.meta | 11 + Packages/MCPForUnity/Editor/Resources.meta | 8 + .../MCPForUnity/Editor/Resources/Editor.meta | 8 + .../Editor/Resources/Editor/ActiveTool.cs | 64 + .../Resources/Editor/ActiveTool.cs.meta | 11 + .../Editor/Resources/Editor/EditorState.cs | 27 + .../Resources/Editor/EditorState.cs.meta | 11 + .../Editor/Resources/Editor/Selection.cs | 52 + .../Editor/Resources/Editor/Selection.cs.meta | 11 + .../Editor/Resources/Editor/Windows.cs | 59 + .../Editor/Resources/Editor/Windows.cs.meta | 11 + .../Resources/McpForUnityResourceAttribute.cs | 42 + .../McpForUnityResourceAttribute.cs.meta | 11 + .../Editor/Resources/MenuItems.meta | 8 + .../Resources/MenuItems/GetMenuItems.cs | 71 + .../Resources/MenuItems/GetMenuItems.cs.meta | 11 + .../MCPForUnity/Editor/Resources/Project.meta | 8 + .../Editor/Resources/Project/Layers.cs | 39 + .../Editor/Resources/Project/Layers.cs.meta | 11 + .../Editor/Resources/Project/ProjectInfo.cs | 41 + .../Resources/Project/ProjectInfo.cs.meta | 11 + .../Editor/Resources/Project/Tags.cs | 27 + .../Editor/Resources/Project/Tags.cs.meta | 11 + .../MCPForUnity/Editor/Resources/Scene.meta | 8 + .../Resources/Scene/GameObjectResource.cs | 284 + .../Scene/GameObjectResource.cs.meta | 11 + .../MCPForUnity/Editor/Resources/Tests.meta | 8 + .../Editor/Resources/Tests/GetTests.cs | 217 + .../Editor/Resources/Tests/GetTests.cs.meta | 11 + Packages/MCPForUnity/Editor/Services.meta | 8 + .../Editor/Services/BridgeControlService.cs | 157 + .../Services/BridgeControlService.cs.meta | 11 + .../Services/ClientConfigurationService.cs | 73 + .../ClientConfigurationService.cs.meta | 11 + .../Services/EditorConfigurationCache.cs | 345 + .../Services/EditorConfigurationCache.cs.meta | 11 + .../Services/EditorPrefsWindowService.cs | 54 + .../Services/EditorPrefsWindowService.cs.meta | 11 + .../Editor/Services/EditorStateCache.cs | 546 + .../Editor/Services/EditorStateCache.cs.meta | 11 + .../Services/HttpBridgeReloadHandler.cs | 145 + .../Services/HttpBridgeReloadHandler.cs.meta | 11 + .../Editor/Services/IBridgeControlService.cs | 82 + .../Services/IBridgeControlService.cs.meta | 11 + .../Services/IClientConfigurationService.cs | 69 + .../IClientConfigurationService.cs.meta | 11 + .../Services/IPackageDeploymentService.cs | 29 + .../IPackageDeploymentService.cs.meta | 11 + .../Editor/Services/IPackageUpdateService.cs | 60 + .../Services/IPackageUpdateService.cs.meta | 11 + .../Editor/Services/IPathResolverService.cs | 77 + .../Services/IPathResolverService.cs.meta | 11 + .../Editor/Services/IPlatformService.cs | 20 + .../Editor/Services/IPlatformService.cs.meta | 11 + .../Services/IResourceDiscoveryService.cs | 53 + .../IResourceDiscoveryService.cs.meta | 11 + .../Services/IServerManagementService.cs | 64 + .../Services/IServerManagementService.cs.meta | 11 + .../Editor/Services/ITestRunnerService.cs | 52 + .../Services/ITestRunnerService.cs.meta | 11 + .../Editor/Services/IToolDiscoveryService.cs | 70 + .../Services/IToolDiscoveryService.cs.meta | 11 + .../Editor/Services/MCPServiceLocator.cs | 98 + .../Editor/Services/MCPServiceLocator.cs.meta | 11 + .../Services/McpEditorShutdownCleanup.cs | 77 + .../Services/McpEditorShutdownCleanup.cs.meta | 11 + .../Services/PackageDeploymentService.cs | 304 + .../Services/PackageDeploymentService.cs.meta | 11 + .../Editor/Services/PackageUpdateService.cs | 185 + .../Services/PackageUpdateService.cs.meta | 11 + .../Editor/Services/PathResolverService.cs | 358 + .../Services/PathResolverService.cs.meta | 11 + .../Editor/Services/PlatformService.cs | 31 + .../Editor/Services/PlatformService.cs.meta | 11 + .../Services/ResourceDiscoveryService.cs | 167 + .../Services/ResourceDiscoveryService.cs.meta | 11 + .../MCPForUnity/Editor/Services/Server.meta | 8 + .../Editor/Services/Server/IPidFileManager.cs | 94 + .../Services/Server/IPidFileManager.cs.meta | 11 + .../Services/Server/IProcessDetector.cs | 55 + .../Services/Server/IProcessDetector.cs.meta | 11 + .../Services/Server/IProcessTerminator.cs | 18 + .../Server/IProcessTerminator.cs.meta | 11 + .../Services/Server/IServerCommandBuilder.cs | 39 + .../Server/IServerCommandBuilder.cs.meta | 11 + .../Services/Server/ITerminalLauncher.cs | 25 + .../Services/Server/ITerminalLauncher.cs.meta | 11 + .../Editor/Services/Server/PidFileManager.cs | 275 + .../Services/Server/PidFileManager.cs.meta | 11 + .../Editor/Services/Server/ProcessDetector.cs | 268 + .../Services/Server/ProcessDetector.cs.meta | 11 + .../Services/Server/ProcessTerminator.cs | 89 + .../Services/Server/ProcessTerminator.cs.meta | 11 + .../Services/Server/ServerCommandBuilder.cs | 151 + .../Server/ServerCommandBuilder.cs.meta | 11 + .../Services/Server/TerminalLauncher.cs | 143 + .../Services/Server/TerminalLauncher.cs.meta | 11 + .../Services/ServerManagementService.cs | 876 + .../Services/ServerManagementService.cs.meta | 11 + .../Services/StdioBridgeReloadHandler.cs | 116 + .../Services/StdioBridgeReloadHandler.cs.meta | 11 + .../Editor/Services/TestJobManager.cs | 673 + .../Editor/Services/TestJobManager.cs.meta | 13 + .../Editor/Services/TestRunStatus.cs | 62 + .../Editor/Services/TestRunStatus.cs.meta | 11 + .../Editor/Services/TestRunnerNoThrottle.cs | 150 + .../Services/TestRunnerNoThrottle.cs.meta | 11 + .../Editor/Services/TestRunnerService.cs | 619 + .../Editor/Services/TestRunnerService.cs.meta | 11 + .../Editor/Services/ToolDiscoveryService.cs | 248 + .../Services/ToolDiscoveryService.cs.meta | 11 + .../Editor/Services/Transport.meta | 8 + .../Services/Transport/IMcpTransportClient.cs | 18 + .../Transport/IMcpTransportClient.cs.meta | 11 + .../Transport/TransportCommandDispatcher.cs | 450 + .../TransportCommandDispatcher.cs.meta | 11 + .../Services/Transport/TransportManager.cs | 152 + .../Transport/TransportManager.cs.meta | 11 + .../Services/Transport/TransportState.cs | 52 + .../Services/Transport/TransportState.cs.meta | 11 + .../Editor/Services/Transport/Transports.meta | 8 + .../Transport/Transports/StdioBridgeHost.cs | 1095 ++ .../Transports/StdioBridgeHost.cs.meta | 11 + .../Transports/StdioTransportClient.cs | 50 + .../Transports/StdioTransportClient.cs.meta | 11 + .../Transports/WebSocketTransportClient.cs | 741 + .../WebSocketTransportClient.cs.meta | 11 + Packages/MCPForUnity/Editor/Setup.meta | 8 + .../Editor/Setup/SetupWindowService.cs | 110 + .../Editor/Setup/SetupWindowService.cs.meta | 11 + Packages/MCPForUnity/Editor/Tools.meta | 8 + .../MCPForUnity/Editor/Tools/BatchExecute.cs | 221 + .../Editor/Tools/BatchExecute.cs.meta | 11 + .../Editor/Tools/CommandRegistry.cs | 426 + .../Editor/Tools/CommandRegistry.cs.meta | 11 + .../Editor/Tools/ExecuteMenuItem.cs | 53 + .../Editor/Tools/ExecuteMenuItem.cs.meta | 11 + .../Editor/Tools/FindGameObjects.cs | 81 + .../Editor/Tools/FindGameObjects.cs.meta | 11 + .../MCPForUnity/Editor/Tools/GameObjects.meta | 8 + .../Tools/GameObjects/ComponentResolver.cs | 142 + .../GameObjects/ComponentResolver.cs.meta | 11 + .../GameObjects/GameObjectComponentHelpers.cs | 410 + .../GameObjectComponentHelpers.cs.meta | 11 + .../Tools/GameObjects/GameObjectCreate.cs | 338 + .../GameObjects/GameObjectCreate.cs.meta | 11 + .../Tools/GameObjects/GameObjectDelete.cs | 48 + .../GameObjects/GameObjectDelete.cs.meta | 11 + .../Tools/GameObjects/GameObjectDuplicate.cs | 86 + .../GameObjects/GameObjectDuplicate.cs.meta | 11 + .../Tools/GameObjects/GameObjectHandlers.cs | 22 + .../GameObjects/GameObjectHandlers.cs.meta | 11 + .../Tools/GameObjects/GameObjectModify.cs | 297 + .../GameObjects/GameObjectModify.cs.meta | 11 + .../GameObjects/GameObjectMoveRelative.cs | 119 + .../GameObjectMoveRelative.cs.meta | 11 + .../Tools/GameObjects/ManageGameObject.cs | 115 + .../GameObjects/ManageGameObject.cs.meta | 11 + .../GameObjects/ManageGameObjectCommon.cs | 238 + .../ManageGameObjectCommon.cs.meta | 11 + .../MCPForUnity/Editor/Tools/GetTestJob.cs | 35 + .../Editor/Tools/GetTestJob.cs.meta | 13 + Packages/MCPForUnity/Editor/Tools/JsonUtil.cs | 31 + .../MCPForUnity/Editor/Tools/JsonUtil.cs.meta | 11 + .../MCPForUnity/Editor/Tools/ManageAsset.cs | 1120 ++ .../Editor/Tools/ManageAsset.cs.meta | 11 + .../Editor/Tools/ManageComponents.cs | 351 + .../Editor/Tools/ManageComponents.cs.meta | 11 + .../MCPForUnity/Editor/Tools/ManageEditor.cs | 393 + .../Editor/Tools/ManageEditor.cs.meta | 11 + .../Editor/Tools/ManageMaterial.cs | 596 + .../Editor/Tools/ManageMaterial.cs.meta | 11 + .../MCPForUnity/Editor/Tools/ManageScene.cs | 838 + .../Editor/Tools/ManageScene.cs.meta | 11 + .../MCPForUnity/Editor/Tools/ManageScript.cs | 2672 +++ .../Editor/Tools/ManageScript.cs.meta | 11 + .../Editor/Tools/ManageScriptableObject.cs | 1522 ++ .../Tools/ManageScriptableObject.cs.meta | 14 + .../MCPForUnity/Editor/Tools/ManageShader.cs | 344 + .../Editor/Tools/ManageShader.cs.meta | 11 + .../MCPForUnity/Editor/Tools/ManageTexture.cs | 1025 ++ .../Editor/Tools/ManageTexture.cs.meta | 11 + .../Editor/Tools/McpForUnityToolAttribute.cs | 107 + .../Tools/McpForUnityToolAttribute.cs.meta | 11 + .../MCPForUnity/Editor/Tools/Prefabs.meta | 8 + .../Editor/Tools/Prefabs/ManagePrefabs.cs | 982 ++ .../Tools/Prefabs/ManagePrefabs.cs.meta | 11 + .../MCPForUnity/Editor/Tools/ReadConsole.cs | 641 + .../Editor/Tools/ReadConsole.cs.meta | 11 + .../MCPForUnity/Editor/Tools/RefreshUnity.cs | 171 + .../Editor/Tools/RefreshUnity.cs.meta | 11 + Packages/MCPForUnity/Editor/Tools/RunTests.cs | 118 + .../MCPForUnity/Editor/Tools/RunTests.cs.meta | 11 + Packages/MCPForUnity/Editor/Tools/Vfx.meta | 8 + .../Editor/Tools/Vfx/LineCreate.cs | 220 + .../Editor/Tools/Vfx/LineCreate.cs.meta | 11 + .../MCPForUnity/Editor/Tools/Vfx/LineRead.cs | 52 + .../Editor/Tools/Vfx/LineRead.cs.meta | 11 + .../MCPForUnity/Editor/Tools/Vfx/LineWrite.cs | 189 + .../Editor/Tools/Vfx/LineWrite.cs.meta | 11 + .../MCPForUnity/Editor/Tools/Vfx/ManageVFX.cs | 412 + .../Editor/Tools/Vfx/ManageVFX.cs.meta | 13 + .../Editor/Tools/Vfx/ManageVfxCommon.cs | 22 + .../Editor/Tools/Vfx/ManageVfxCommon.cs.meta | 11 + .../Editor/Tools/Vfx/ParticleCommon.cs | 87 + .../Editor/Tools/Vfx/ParticleCommon.cs.meta | 11 + .../Editor/Tools/Vfx/ParticleControl.cs | 121 + .../Editor/Tools/Vfx/ParticleControl.cs.meta | 11 + .../Editor/Tools/Vfx/ParticleRead.cs | 153 + .../Editor/Tools/Vfx/ParticleRead.cs.meta | 11 + .../Editor/Tools/Vfx/ParticleWrite.cs | 295 + .../Editor/Tools/Vfx/ParticleWrite.cs.meta | 11 + .../Editor/Tools/Vfx/TrailControl.cs | 36 + .../Editor/Tools/Vfx/TrailControl.cs.meta | 11 + .../MCPForUnity/Editor/Tools/Vfx/TrailRead.cs | 49 + .../Editor/Tools/Vfx/TrailRead.cs.meta | 11 + .../Editor/Tools/Vfx/TrailWrite.cs | 130 + .../Editor/Tools/Vfx/TrailWrite.cs.meta | 11 + .../Editor/Tools/Vfx/VfxGraphAssets.cs | 568 + .../Editor/Tools/Vfx/VfxGraphAssets.cs.meta | 11 + .../Editor/Tools/Vfx/VfxGraphCommon.cs | 29 + .../Editor/Tools/Vfx/VfxGraphCommon.cs.meta | 11 + .../Editor/Tools/Vfx/VfxGraphControl.cs | 89 + .../Editor/Tools/Vfx/VfxGraphControl.cs.meta | 11 + .../Editor/Tools/Vfx/VfxGraphRead.cs | 47 + .../Editor/Tools/Vfx/VfxGraphRead.cs.meta | 11 + .../Editor/Tools/Vfx/VfxGraphWrite.cs | 310 + .../Editor/Tools/Vfx/VfxGraphWrite.cs.meta | 11 + Packages/MCPForUnity/Editor/Windows.meta | 8 + .../Editor/Windows/Components.meta | 8 + .../Editor/Windows/Components/Advanced.meta | 8 + .../Components/Advanced/McpAdvancedSection.cs | 467 + .../Advanced/McpAdvancedSection.cs.meta | 11 + .../Advanced/McpAdvancedSection.uxml | 66 + .../Advanced/McpAdvancedSection.uxml.meta | 10 + .../Windows/Components/ClientConfig.meta | 8 + .../ClientConfig/McpClientConfigSection.cs | 574 + .../McpClientConfigSection.cs.meta | 11 + .../ClientConfig/McpClientConfigSection.uxml | 42 + .../McpClientConfigSection.uxml.meta | 10 + .../Editor/Windows/Components/Common.uss | 615 + .../Editor/Windows/Components/Common.uss.meta | 11 + .../Editor/Windows/Components/Connection.meta | 8 + .../Connection/McpConnectionSection.cs | 1037 ++ .../Connection/McpConnectionSection.cs.meta | 11 + .../Connection/McpConnectionSection.uxml | 54 + .../Connection/McpConnectionSection.uxml.meta | 10 + .../Editor/Windows/Components/Resources.meta | 8 + .../Resources/McpResourcesSection.cs | 250 + .../Resources/McpResourcesSection.cs.meta | 11 + .../Resources/McpResourcesSection.uxml | 15 + .../Resources/McpResourcesSection.uxml.meta | 10 + .../Editor/Windows/Components/Tools.meta | 8 + .../Components/Tools/McpToolsSection.cs | 334 + .../Components/Tools/McpToolsSection.cs.meta | 11 + .../Components/Tools/McpToolsSection.uxml | 19 + .../Tools/McpToolsSection.uxml.meta | 10 + .../Editor/Windows/Components/Validation.meta | 8 + .../Validation/McpValidationSection.cs | 79 + .../Validation/McpValidationSection.cs.meta | 11 + .../Validation/McpValidationSection.uxml | 13 + .../Validation/McpValidationSection.uxml.meta | 10 + .../Editor/Windows/EditorPrefs.meta | 8 + .../Windows/EditorPrefs/EditorPrefItem.uxml | 21 + .../EditorPrefs/EditorPrefItem.uxml.meta | 10 + .../Windows/EditorPrefs/EditorPrefsWindow.cs | 404 + .../EditorPrefs/EditorPrefsWindow.cs.meta | 11 + .../Windows/EditorPrefs/EditorPrefsWindow.uss | 225 + .../EditorPrefs/EditorPrefsWindow.uss.meta | 11 + .../EditorPrefs/EditorPrefsWindow.uxml | 30 + .../EditorPrefs/EditorPrefsWindow.uxml.meta | 10 + .../Editor/Windows/MCPForUnityEditorWindow.cs | 612 + .../Windows/MCPForUnityEditorWindow.cs.meta | 11 + .../Windows/MCPForUnityEditorWindow.uss | 133 + .../Windows/MCPForUnityEditorWindow.uss.meta | 11 + .../Windows/MCPForUnityEditorWindow.uxml | 33 + .../Windows/MCPForUnityEditorWindow.uxml.meta | 10 + .../Editor/Windows/MCPSetupWindow.cs | 170 + .../Editor/Windows/MCPSetupWindow.cs.meta | 11 + .../Editor/Windows/MCPSetupWindow.uss | 106 + .../Editor/Windows/MCPSetupWindow.uss.meta | 11 + .../Editor/Windows/MCPSetupWindow.uxml | 58 + .../Editor/Windows/MCPSetupWindow.uxml.meta | 10 + Packages/MCPForUnity/README.md | 92 + Packages/MCPForUnity/README.md.meta | 7 + Packages/MCPForUnity/Runtime.meta | 8 + Packages/MCPForUnity/Runtime/Helpers.meta | 8 + .../Runtime/Helpers/ScreenshotUtility.cs | 273 + .../Runtime/Helpers/ScreenshotUtility.cs.meta | 11 + .../Runtime/MCPForUnity.Runtime.asmdef | 16 + .../Runtime/MCPForUnity.Runtime.asmdef.meta | 7 + .../MCPForUnity/Runtime/Serialization.meta | 8 + .../Serialization/UnityTypeConverters.cs | 451 + .../Serialization/UnityTypeConverters.cs.meta | 11 + Packages/MCPForUnity/package.json | 26 + Packages/MCPForUnity/package.json.meta | 7 + .../VirtualDisplay/VirtualDisplayEvent.cs | 8 +- .../Platform/Plugins/Android64.meta | 3 - .../com.unity.ide.trae@0231d4b833/Editor.meta | 8 + .../project.pbxproj | 308 + .../AppleEventIntegration/Info.plist | 26 + .../AppleEventIntegration/main.mm | 281 + .../AppleEventIntegration~/howtobuild.txt | 5 + .../Editor/AssemblyInfo.cs | 4 + .../Editor/AssemblyInfo.cs.meta | 11 + .../Editor/AsyncOperation.cs | 86 + .../Editor/AsyncOperation.cs.meta | 11 + .../Editor/COMIntegration.meta | 8 + .../COMIntegration~/BStrHolder.h | 40 + .../COMIntegration~/CMakeLists.txt | 14 + .../COMIntegration~/COMIntegration.cpp | 483 + .../COMIntegration/COMIntegration~/ComPtr.h | 186 + .../COMIntegration/COMIntegration~/dte80a.tlh | 7538 ++++++++ .../COMIntegration~/howtobuild.txt | 9 + .../Editor/COMIntegration/Release.meta | 8 + .../COMIntegration/Release/COMIntegration.exe | 3 + .../Release/COMIntegration.exe.meta | 2 +- .../Editor/Cli.cs | 88 + .../Editor/Cli.cs.meta | 11 + .../Editor/Discovery.cs | 45 + .../Editor/Discovery.cs.meta | 11 + .../Editor/FileUtility.cs | 82 + .../Editor/FileUtility.cs.meta | 11 + .../Editor/Image.cs | 102 + .../Editor/Image.cs.meta | 11 + .../Editor/KnownAssemblies.cs | 14 + .../Editor/KnownAssemblies.cs.meta | 11 + .../Editor/Messaging.meta | 8 + .../Editor/Messaging/Deserializer.cs | 37 + .../Editor/Messaging/Deserializer.cs.meta | 11 + .../Editor/Messaging/ExceptionEventArgs.cs | 18 + .../Messaging/ExceptionEventArgs.cs.meta | 11 + .../Editor/Messaging/Message.cs | 23 + .../Editor/Messaging/Message.cs.meta | 11 + .../Editor/Messaging/MessageEventArgs.cs | 19 + .../Editor/Messaging/MessageEventArgs.cs.meta | 11 + .../Editor/Messaging/MessageType.cs | 48 + .../Editor/Messaging/MessageType.cs.meta | 11 + .../Editor/Messaging/Messenger.cs | 238 + .../Editor/Messaging/Messenger.cs.meta | 11 + .../Editor/Messaging/Serializer.cs | 43 + .../Editor/Messaging/Serializer.cs.meta | 11 + .../Editor/Messaging/TcpClient.cs | 93 + .../Editor/Messaging/TcpClient.cs.meta | 11 + .../Editor/Messaging/TcpListener.cs | 82 + .../Editor/Messaging/TcpListener.cs.meta | 11 + .../Editor/Messaging/UdpSocket.cs | 54 + .../Editor/Messaging/UdpSocket.cs.meta | 11 + .../Editor/Plugins.meta | 8 + .../Plugins/AppleEventIntegration.bundle.meta | 27 + .../Contents/Info.plist | 48 + .../Contents/MacOS/AppleEventIntegration | Bin 0 -> 153664 bytes .../Contents/_CodeSignature/CodeResources | 115 + .../Editor/ProcessRunner.cs | 112 + .../Editor/ProcessRunner.cs.meta | 11 + .../Editor/ProjectGeneration.meta | 8 + .../ProjectGeneration/AssemblyNameProvider.cs | 220 + .../AssemblyNameProvider.cs.meta | 11 + .../ProjectGeneration/FileIOProvider.cs | 36 + .../ProjectGeneration/FileIOProvider.cs.meta | 11 + .../Editor/ProjectGeneration/GUIDProvider.cs | 26 + .../ProjectGeneration/GUIDProvider.cs.meta | 11 + .../LegacyStyleProjectGeneration.cs | 100 + .../LegacyStyleProjectGeneration.cs.meta | 11 + .../ProjectGeneration/ProjectGeneration.cs | 1094 ++ .../ProjectGeneration.cs.meta | 11 + .../ProjectGenerationFlag.cs | 23 + .../ProjectGenerationFlag.cs.meta | 11 + .../ProjectGeneration/ProjectProperties.cs | 30 + .../ProjectProperties.cs.meta | 11 + .../SdkStyleProjectGeneration.cs | 129 + .../SdkStyleProjectGeneration.cs.meta | 11 + .../Editor/SimpleJSON.cs | 1434 ++ .../Editor/SimpleJSON.cs.meta | 11 + .../Editor/Solution.cs | 12 + .../Editor/Solution.cs.meta | 11 + .../Editor/SolutionParser.cs | 80 + .../Editor/SolutionParser.cs.meta | 11 + .../Editor/SolutionProjectEntry.cs | 22 + .../Editor/SolutionProjectEntry.cs.meta | 11 + .../Editor/SolutionProperties.cs | 15 + .../Editor/SolutionProperties.cs.meta | 11 + .../Editor/Symbols.cs | 30 + .../Editor/Symbols.cs.meta | 11 + .../Editor/Testing.meta | 8 + .../Editor/Testing/TestAdaptor.cs | 39 + .../Editor/Testing/TestAdaptor.cs.meta | 11 + .../Editor/Testing/TestResultAdaptor.cs | 60 + .../Editor/Testing/TestResultAdaptor.cs.meta | 11 + .../Editor/Testing/TestRunnerApiListener.cs | 55 + .../Testing/TestRunnerApiListener.cs.meta | 11 + .../Editor/Testing/TestRunnerCallbacks.cs | 90 + .../Testing/TestRunnerCallbacks.cs.meta | 11 + .../Editor/Testing/TestStatusAdaptor.cs | 13 + .../Editor/Testing/TestStatusAdaptor.cs.meta | 11 + .../Editor/UnityInstallation.cs | 66 + .../Editor/UnityInstallation.cs.meta | 11 + .../Editor/UsageUtility.cs | 118 + .../Editor/UsageUtility.cs.meta | 11 + .../Editor/VSWhere.meta | 8 + .../Editor/VSWhere/vswhere.exe | 3 + .../Editor/VSWhere/vswhere.exe.meta | 2 +- .../Editor/VersionPair.cs | 16 + .../Editor/VersionPair.cs.meta | 11 + .../Editor/VisualStudioCodiumInstallation.cs | 479 + .../VisualStudioCodiumInstallation.cs.meta | 11 + .../Editor/VisualStudioCursorInstallation.cs | 479 + .../VisualStudioCursorInstallation.cs.meta | 11 + .../Editor/VisualStudioEditor.cs | 301 + .../Editor/VisualStudioEditor.cs.meta | 11 + .../Editor/VisualStudioInstallation.cs | 68 + .../Editor/VisualStudioInstallation.cs.meta | 11 + .../Editor/VisualStudioIntegration.cs | 294 + .../Editor/VisualStudioIntegration.cs.meta | 11 + .../Editor/com.unity.ide.visualstudio.asmdef | 17 + .../com.unity.ide.visualstudio.asmdef.meta | 7 + .../com.unity.ide.trae@0231d4b833/LICENSE.md | 22 + .../LICENSE.md.meta | 7 + .../com.unity.ide.trae@0231d4b833/README.md | 8 + .../README.md.meta | 7 + .../ThirdPartyNotices.md | 31 + .../ThirdPartyNotices.md.meta | 7 + .../ValidationConfig.json | 19 + .../ValidationConfig.json.meta | 7 + .../ValidationExceptions.json | 15 + .../ValidationExceptions.json.meta | 7 + .../package.json | 14 + .../package.json.meta | 7 + Packages/manifest.json | 5 +- Packages/packages-lock.json | 131 +- ProjectSettings/PackageManagerSettings.asset | 4 +- ProjectSettings/ProjectVersion.txt | 4 +- sdcard/王子的荣耀/�豸�ͺ�.txt | 0 1317 files changed, 110305 insertions(+), 48249 deletions(-) create mode 100644 .vscode/extensions.json create mode 100644 .vscode/launch.json delete mode 100644 Assets - 快捷方式.lnk delete mode 100644 Assets/Bakery/shader/Bakery_ShaderGraphHDRP.unitypackage.meta delete mode 100644 Assets/Bakery/shader/Bakery_ShaderGraphURP.unitypackage.meta delete mode 100644 Assets/Samples/XR Hands/1.3.0/HandVisualizer/Materials/HandsDefaultMaterial.mat delete mode 100644 Assets/Samples/XR Hands/1.3.0/HandVisualizer/Materials/Red.mat delete mode 100644 Assets/Samples/XR Hands/1.3.0/HandVisualizer/Materials/White.mat rename Assets/Samples/{XR Interaction Toolkit/2.5.2.meta => XR Hands/1.5.0.meta} (77%) rename Assets/Samples/XR Hands/{1.3.0 => 1.5.0}/HandVisualizer.meta (77%) rename Assets/Samples/XR Hands/{1.3.0 => 1.5.0}/HandVisualizer/.sample.json (100%) rename Assets/Samples/XR Hands/{1.3.0 => 1.5.0}/HandVisualizer/HandVisualizer.unity (97%) rename Assets/Samples/XR Hands/{1.3.0 => 1.5.0}/HandVisualizer/HandVisualizer.unity.meta (100%) rename Assets/Samples/XR Hands/{1.3.0 => 1.5.0}/HandVisualizer/Materials.meta (100%) rename Assets/Samples/{XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Controls_Black.mat => XR Hands/1.5.0/HandVisualizer/Materials/Blue.mat} (73%) rename Assets/Samples/XR Hands/{1.3.0 => 1.5.0}/HandVisualizer/Materials/Blue.mat.meta (100%) rename Assets/Samples/{XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/PrimitivesYellow.mat => XR Hands/1.5.0/HandVisualizer/Materials/Green.mat} (72%) rename Assets/Samples/XR Hands/{1.3.0 => 1.5.0}/HandVisualizer/Materials/Green.mat.meta (100%) create mode 100644 Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials/HandsDefaultMaterial.mat rename Assets/Samples/XR Hands/{1.3.0 => 1.5.0}/HandVisualizer/Materials/HandsDefaultMaterial.mat.meta (100%) rename Assets/Samples/{XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/AccentButton.mat => XR Hands/1.5.0/HandVisualizer/Materials/Red.mat} (74%) rename Assets/Samples/XR Hands/{1.3.0 => 1.5.0}/HandVisualizer/Materials/Red.mat.meta (100%) create mode 100644 Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials/TransparentRed.mat rename Assets/Samples/{XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/PrimitivesBlue.mat.meta => XR Hands/1.5.0/HandVisualizer/Materials/TransparentRed.mat.meta} (79%) rename Assets/Samples/{XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/ChessPiece.mat => XR Hands/1.5.0/HandVisualizer/Materials/White.mat} (72%) rename Assets/Samples/XR Hands/{1.3.0 => 1.5.0}/HandVisualizer/Materials/White.mat.meta (100%) rename Assets/Samples/XR Hands/{1.3.0 => 1.5.0}/HandVisualizer/Models.meta (100%) rename Assets/Samples/XR Hands/{1.3.0 => 1.5.0}/HandVisualizer/Models/LeftHand.fbx (100%) rename Assets/Samples/XR Hands/{1.3.0 => 1.5.0}/HandVisualizer/Models/LeftHand.fbx.meta (100%) rename Assets/Samples/XR Hands/{1.3.0 => 1.5.0}/HandVisualizer/Models/RightHand.fbx (100%) rename Assets/Samples/XR Hands/{1.3.0 => 1.5.0}/HandVisualizer/Models/RightHand.fbx.meta (100%) rename Assets/Samples/XR Hands/{1.3.0 => 1.5.0}/HandVisualizer/Prefabs.meta (100%) rename Assets/Samples/XR Hands/{1.3.0 => 1.5.0}/HandVisualizer/Prefabs/Joint.prefab (91%) rename Assets/Samples/XR Hands/{1.3.0 => 1.5.0}/HandVisualizer/Prefabs/Joint.prefab.meta (100%) rename Assets/Samples/XR Hands/{1.3.0 => 1.5.0}/HandVisualizer/Prefabs/Left Hand Tracking.prefab (100%) rename Assets/Samples/XR Hands/{1.3.0 => 1.5.0}/HandVisualizer/Prefabs/Left Hand Tracking.prefab.meta (100%) rename Assets/Samples/XR Hands/{1.3.0 => 1.5.0}/HandVisualizer/Prefabs/Right Hand Tracking.prefab (100%) rename Assets/Samples/XR Hands/{1.3.0 => 1.5.0}/HandVisualizer/Prefabs/Right Hand Tracking.prefab.meta (100%) rename Assets/Samples/XR Hands/{1.3.0 => 1.5.0}/HandVisualizer/Prefabs/VelocityPrefab.prefab (100%) rename Assets/Samples/XR Hands/{1.3.0 => 1.5.0}/HandVisualizer/Prefabs/VelocityPrefab.prefab.meta (100%) rename Assets/Samples/XR Hands/{1.3.0 => 1.5.0}/HandVisualizer/README.md (65%) rename Assets/Samples/XR Hands/{1.3.0 => 1.5.0}/HandVisualizer/README.md.meta (100%) rename Assets/Samples/XR Hands/{1.3.0 => 1.5.0}/HandVisualizer/Scripts.meta (100%) rename Assets/Samples/XR Hands/{1.3.0 => 1.5.0}/HandVisualizer/Scripts/HandProcessor.cs (99%) rename Assets/Samples/XR Hands/{1.3.0 => 1.5.0}/HandVisualizer/Scripts/HandProcessor.cs.meta (100%) rename Assets/Samples/XR Hands/{1.3.0 => 1.5.0}/HandVisualizer/Scripts/HandVisualizer.cs (98%) rename Assets/Samples/XR Hands/{1.3.0 => 1.5.0}/HandVisualizer/Scripts/HandVisualizer.cs.meta (100%) create mode 100644 Assets/Samples/XR Hands/1.5.0/HandVisualizer/Scripts/JointVisualizer.cs rename Assets/Samples/{XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/GrabTransformerRotationAxisLock.cs.meta => XR Hands/1.5.0/HandVisualizer/Scripts/JointVisualizer.cs.meta} (83%) rename Assets/Samples/XR Hands/{1.3.0 => 1.5.0}/HandVisualizer/Unity.XR.Hands.Samples.VisualizerSample.asmdef (100%) rename Assets/Samples/XR Hands/{1.3.0 => 1.5.0}/HandVisualizer/Unity.XR.Hands.Samples.VisualizerSample.asmdef.meta (100%) delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/.sample.json delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/FingerColorAffordanceTheme.asset delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/HandEdgeColorAffordanceTheme.asset delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/InteractionColorAffordanceTheme.asset delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/AudioAffordanceTheme.asset delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/CapsuleScaleTheme.asset delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/Chess/InteractionBlendShapeAffordanceTheme.asset delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/Chess/WhiteChessPieceColorTheme.asset delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/InteractionLargeScaleAffordanceTheme.asset delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/InteractionScaleAffordanceTheme.asset delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/PrimitivesBlue.mat delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/PrimitivesCoral.mat delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Table Surface.mat delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Chess.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/XR Interaction Hands Setup.prefab delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/HideObjectWhenRayInteractorBlocked.cs delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/PinchPointFollow.cs delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/.sample.json delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoScene.unity delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/AffordanceThemes/InteractionColorAffordanceTheme.asset delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Editor/Scripts/StarterAssetsSampleProjectValidation.cs delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Models/XRControllerLeft.fbx delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Models/XRControllerRight.fbx delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Interactors/Direct Interactor.prefab delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Interactors/Poke Interactor.prefab delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Teleport/Directional Teleport Reticle.prefab delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/XR Interaction Setup.prefab delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Continuous Move.preset.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Continuous Turn.preset delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Continuous Turn.preset.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Gaze Controller.preset delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Left Controller.preset delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Left Controller.preset.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Left Grab Move.preset delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Right Controller.preset delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Right Controller.preset.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Right Grab Move.preset delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default XR Screen Space Controller.preset delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/.sample.json delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Fist Expression Capture.asset delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Grab Expression Capture.asset delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Open Expression Capture.asset delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Pinch Expression Capture.asset delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Poke Expression Capture.asset delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Poke Expression Capture.asset.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Resting Expression Capture.asset delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Resting Expression Capture.asset.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Thumb Expression Capture.asset delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Thumb Expression Capture.asset.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Scripts.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Scripts/XRDeviceSimulatorControllerUI.cs delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Scripts/XRDeviceSimulatorHandsUI.cs delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Scripts/XRDeviceSimulatorUI.cs delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/ControllerLeft.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/ControllerLeft.png.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/ControllerOverlayLinesLeft.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/ControllerOverlayLinesLeft.png.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/ControllerOverlayLinesRight.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/ControllerOverlayLinesRight.png.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/ControllerRight.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/ControllerRight.png.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/xr_ctlr.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/xr_ctlr.png.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/CloseWindow.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/CloseWindow.png.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/CycleXRDevices.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/CycleXRDevices.png.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/DeviceSimUI_bg.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/DeviceSimUI_bg.png.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/Gripper.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/Gripper.png.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/KeyboardIcon.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/KeyboardIcon.png.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/Locked.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/Locked.png.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/Look.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/Look.png.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/OpenWindow.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/OpenWindow.png.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/Unlocked.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/Unlocked.png.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/btn_bgbottom.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/btn_bgbottom.png.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Default.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Default.png.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Fist.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Fist.png.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Grab.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Grab.png.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Open.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Open.png.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Pinch.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Pinch.png.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Poke.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Poke.png.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Thumb.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Thumb.png.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/hand.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/HMD.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/HMDOverlay.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/HMDOverlay.png.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/HMD_d.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/MoveRotateTool.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/MoveRotateTool.png.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/Movement.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/Movement.png.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/XR.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/XR.png.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/xr_hmd.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/xr_hmd.png.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/Cursor.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/Cursor.png.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/Mouse.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/Mouse.png.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/MouseMoveAround.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/MouseMoveAround.png.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/MouseR.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/MouseR_d.png delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/MouseR_d.png.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/XR Device Simulator UI.prefab delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Unity.XR.Interaction.Toolkit.Samples.DeviceSimulator.asmdef delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/XR Device Controller Controls.inputactions delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/XR Device Controller Controls.inputactions.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/XR Device Hand Controls.inputactions delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/XR Device Hand Controls.inputactions.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/XR Device Simulator Controls.inputactions delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/XR Device Simulator Controls.inputactions.meta delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/XR Device Simulator.prefab delete mode 100644 Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/XR Device Simulator.prefab.meta rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint.meta => 3.0.7.meta} (77%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo.meta (77%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/AffordanceThemes.meta (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/FingerColor.asset rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/AffordanceThemes/FingerColorAffordanceTheme.asset.meta => 3.0.7/Hands Interaction Demo/AffordanceThemes/FingerColor.asset.meta} (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/HandEdgeColor.asset rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/AffordanceThemes/HandEdgeColorAffordanceTheme.asset.meta => 3.0.7/Hands Interaction Demo/AffordanceThemes/HandEdgeColor.asset.meta} (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/InteractionColor.asset rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/AffordanceThemes/InteractionColorAffordanceTheme.asset.meta => 3.0.7/Hands Interaction Demo/AffordanceThemes/InteractionColor.asset.meta} (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint => 3.0.7/Hands Interaction Demo/AffordanceThemes}/PinchPointBlendShape.asset (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint => 3.0.7/Hands Interaction Demo/AffordanceThemes}/PinchPointBlendShape.asset.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint => 3.0.7/Hands Interaction Demo/AffordanceThemes}/PinchPointColor.asset (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint => 3.0.7/Hands Interaction Demo/AffordanceThemes}/PinchPointColor.asset.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint => 3.0.7/Hands Interaction Demo/AffordanceThemes}/PinchPointEdgeStrength.asset (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint => 3.0.7/Hands Interaction Demo/AffordanceThemes}/PinchPointEdgeStrength.asset.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint => 3.0.7/Hands Interaction Demo/AffordanceThemes}/PinchPointHighlightColor.asset (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint => 3.0.7/Hands Interaction Demo/AffordanceThemes}/PinchPointHighlightColor.asset.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint => 3.0.7/Hands Interaction Demo/AffordanceThemes}/PinchPointLocalTransformOffset.asset (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint => 3.0.7/Hands Interaction Demo/AffordanceThemes}/PinchPointLocalTransformOffset.asset.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint => 3.0.7/Hands Interaction Demo/AffordanceThemes}/PinchPointUniformScaleScale.asset (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint => 3.0.7/Hands Interaction Demo/AffordanceThemes}/PinchPointUniformScaleScale.asset.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/DatumPresets.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/DatumPresets/Menu Controller Follow Preset.asset (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/DatumPresets/Menu Controller Follow Preset.asset.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/DatumPresets/Menu Hands Follow Preset.asset (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/DatumPresets/Menu Hands Follow Preset.asset.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/DatumPresets/Under Watch Controller Follow Preset.asset (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/DatumPresets/Under Watch Controller Follow Preset.asset.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/DatumPresets/Under Watch Hands Follow Preset.asset (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/DatumPresets/Under Watch Hands Follow Preset.asset.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Editor.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/Editor/Unity.XR.Interaction.Toolkit.Samples.Hands.Editor.asmdef => 3.0.7/Hands Interaction Demo/Editor/HandsInteractionDemo.Editor.asmdef} (67%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/Editor/Unity.XR.Interaction.Toolkit.Samples.Hands.Editor.asmdef.meta => 3.0.7/Hands Interaction Demo/Editor/HandsInteractionDemo.Editor.asmdef.meta} (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Editor/Scripts.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/Editor/Scripts/HandsInteractionSampleProjectValidation.cs => 3.0.7/Hands Interaction Demo/Editor/Scripts/HandsSampleProjectValidation.cs} (83%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/Editor/Scripts/HandsInteractionSampleProjectValidation.cs.meta => 3.0.7/Hands Interaction Demo/Editor/Scripts/HandsSampleProjectValidation.cs.meta} (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoScene.unity (86%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoScene.unity.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes.meta => 3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances.meta} (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/Audio.asset rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/AudioAffordanceTheme.asset.meta => 3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/Audio.asset.meta} (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/BlendShapeValue.asset rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/Chess/InteractionBlendShapeAffordanceTheme.asset.meta => 3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/BlendShapeValue.asset.meta} (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/CapsuleScale.asset rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/CapsuleScaleTheme.asset.meta => 3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/CapsuleScale.asset.meta} (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/ChessPieceColor.asset rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/Chess/WhiteChessPieceColorTheme.asset.meta => 3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/ChessPieceColor.asset.meta} (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/LargeScale.asset rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/InteractionLargeScaleAffordanceTheme.asset.meta => 3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/LargeScale.asset.meta} (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/Scale.asset rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/InteractionScaleAffordanceTheme.asset.meta => 3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/Scale.asset.meta} (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Audio.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Audio/ButtonClick.wav (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Audio/ButtonClick.wav.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Audio/ButtonHover.wav (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Audio/ButtonHover.wav.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Materials.meta (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/AccentButton.mat rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Materials/AccentButton.mat.meta (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/ChessPiece.mat rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Materials/ChessPiece.mat.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Chrome.mat (75%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Chrome.mat.meta (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Controls_Black.mat rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Controls_Black.mat.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Materials/FrameOutline.mat (72%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Materials/FrameOutline.mat.meta (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Interactable White.mat rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/PrimitivesCoral.mat.meta => 3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Interactable White.mat.meta} (79%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/RPMaterialHandler.asset rename Assets/Samples/XR Interaction Toolkit/{2.5.2/XR Device Simulator/Hand Expression Captures/Fist Expression Capture.asset.meta => 3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/RPMaterialHandler.asset.meta} (79%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Table Surface.mat rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Table Surface.mat.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Models.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Models/Chess.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Models/Chess/Chess_Board.fbx (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Models/Chess/Chess_Board.fbx.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Models/Chess/Chess_Pawn.fbx (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Models/Chess/Chess_Pawn.fbx.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Models/Frame.fbx (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Models/Frame.fbx.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Cone.fbx (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Cone.fbx.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Cube.fbx (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Cube.fbx.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Cylinder.fbx (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Cylinder.fbx.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Disc.fbx (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Disc.fbx.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Models/VirtualTabletop.fbx (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Models/VirtualTabletop.fbx.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Arrow.prefab (63%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Arrow.prefab.meta (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/AudioAffordance.prefab rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/Prefabs/Affordances/Hand Ray Interactor Affordances.prefab.meta => 3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/AudioAffordance.prefab.meta} (74%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Cube.prefab (79%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Cube.prefab.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Cylinder.prefab (79%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Cylinder.prefab.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Disc.prefab (93%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Disc.prefab.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Chess/FlatSphereController.prefab => 3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/DiscController.prefab} (75%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Chess/FlatSphereController.prefab.meta => 3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/DiscController.prefab.meta} (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Chess => 3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs}/PawnController.prefab (74%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Chess => 3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs}/PawnController.prefab.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/PokeButton.prefab (68%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/PokeButton.prefab.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/SimpleSocket.prefab (97%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/SimpleSocket.prefab.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/SimpleSocketShape.prefab (93%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/SimpleSocketShape.prefab.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/TableHandle.prefab (93%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/TableHandle.prefab.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/Hand Menu With Button Activation.prefab => 3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/ButtonHandMenu.prefab} (99%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/Hand Menu With Button Activation.prefab.meta => 3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/ButtonHandMenu.prefab.meta} (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/Hand Menu Setup With ScrollView Variant.prefab => 3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/ScrollHandMenu.prefab} (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/Hand Menu Setup With ScrollView Variant.prefab.meta => 3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/ScrollHandMenu.prefab.meta} (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/Scroll View.prefab => 3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/ScrollView.prefab} (99%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/Scroll View.prefab.meta => 3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/ScrollView.prefab.meta} (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/Scroll View Item.prefab => 3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/ScrollViewItem.prefab} (99%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/Scroll View Item.prefab.meta => 3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/ScrollViewItem.prefab.meta} (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/TouchPad Button.prefab => 3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/TouchPadButton.prefab} (99%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/TouchPad Button.prefab.meta => 3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/TouchPadButton.prefab.meta} (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Scripts.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ObjectResetPlane.cs (90%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ObjectResetPlane.cs.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/PokeBlendShapeAnimator.cs (95%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/PokeBlendShapeAnimator.cs.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ToggleGameObject.cs (98%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ToggleGameObject.cs.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ToggleGraphicToggler.cs (99%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ToggleGraphicToggler.cs.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/TransformSync.cs (96%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/TransformSync.cs.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/Unity.XR.Interaction.Toolkit.Samples.Hands.asmdef => 3.0.7/Hands Interaction Demo/HandsInteractionDemo.asmdef} (84%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/Unity.XR.Interaction.Toolkit.Samples.Hands.asmdef.meta => 3.0.7/Hands Interaction Demo/HandsInteractionDemo.asmdef.meta} (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Materials.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Materials/DepthOnly.mat (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Materials/DepthOnly.mat.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Materials/Unity_Hand_Dark.mat (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Materials/Unity_Hand_Dark.mat.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Materials/Unity_Hand_Light.mat (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Materials/Unity_Hand_Light.mat.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Materials/Unity_Hand_Medium.mat (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Materials/Unity_Hand_Medium.mat.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Prefabs.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/Prefabs/Affordances/Hand Direct Interactor Affordances.prefab => 3.0.7/Hands Interaction Demo/Prefabs/HandInteractorAffordances.prefab} (99%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/Prefabs/Affordances/Hand Direct Interactor Affordances.prefab.meta => 3.0.7/Hands Interaction Demo/Prefabs/HandInteractorAffordances.prefab.meta} (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/Prefabs/Hand Menu Setup.prefab => 3.0.7/Hands Interaction Demo/Prefabs/HandMenuRig.prefab} (99%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/Prefabs/Hand Menu Setup.prefab.meta => 3.0.7/Hands Interaction Demo/Prefabs/HandMenuRig.prefab.meta} (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/Prefabs/Affordances/Hand Poke Interactor Affordances.prefab => 3.0.7/Hands Interaction Demo/Prefabs/HandPokeInteractorAffordances.prefab} (99%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/Prefabs/Affordances/Hand Poke Interactor Affordances.prefab.meta => 3.0.7/Hands Interaction Demo/Prefabs/HandPokeInteractorAffordances.prefab.meta} (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Prefabs/InteractionAffordance.prefab (75%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Prefabs/InteractionAffordance.prefab.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/Prefabs/Left Hand Interaction Visual.prefab => 3.0.7/Hands Interaction Demo/Prefabs/LeftHandInteractionVisual.prefab} (92%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/Prefabs/Left Hand Interaction Visual.prefab.meta => 3.0.7/Hands Interaction Demo/Prefabs/LeftHandInteractionVisual.prefab.meta} (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/Prefabs/Pinch Point Stabilized.prefab => 3.0.7/Hands Interaction Demo/Prefabs/PinchPointStabilized.prefab} (83%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/Prefabs/Pinch Point Stabilized.prefab.meta => 3.0.7/Hands Interaction Demo/Prefabs/PinchPointStabilized.prefab.meta} (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/Prefabs/Right Hand Interaction Visual.prefab => 3.0.7/Hands Interaction Demo/Prefabs/RightHandInteractionVisual.prefab} (92%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/Prefabs/Right Hand Interaction Visual.prefab.meta => 3.0.7/Hands Interaction Demo/Prefabs/RightHandInteractionVisual.prefab.meta} (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Prefabs/XR Origin Hands (XR Rig).prefab (58%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Prefabs/XR Origin Hands (XR Rig).prefab.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Scripts.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Scripts/HandsOneEuroFilterPostProcessor.cs (92%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Scripts/HandsOneEuroFilterPostProcessor.cs.meta (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/HideObjectWhenInteractorBlocked.cs rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/Scripts/HideObjectWhenRayInteractorBlocked.cs.meta => 3.0.7/Hands Interaction Demo/Scripts/HideObjectWhenInteractorBlocked.cs.meta} (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Scripts/LocalPositionOffsetAffordanceReceiver.cs (90%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Scripts/LocalPositionOffsetAffordanceReceiver.cs.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Scripts/MetaSystemGestureDetector.cs (97%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Scripts/MetaSystemGestureDetector.cs.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Scripts/OneEuroFilterVector3.cs (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Scripts/OneEuroFilterVector3.cs.meta (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/PinchPointFollow.cs rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Scripts/PinchPointFollow.cs.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Scripts/PokeGestureDetector.cs (99%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Scripts/PokeGestureDetector.cs.meta (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/ReleaseThresholdButtonReader.cs rename Assets/Samples/XR Interaction Toolkit/{2.5.2/XR Device Simulator/Scripts/XRDeviceSimulatorControllerUI.cs.meta => 3.0.7/Hands Interaction Demo/Scripts/ReleaseThresholdButtonReader.cs.meta} (83%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/ValueDerivedButtonReader.cs rename Assets/Samples/XR Interaction Toolkit/{2.5.2/XR Device Simulator/Scripts/XRDeviceSimulatorHandsUI.cs.meta => 3.0.7/Hands Interaction Demo/Scripts/ValueDerivedButtonReader.cs.meta} (83%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/HandsDemoSceneAssets => 3.0.7/Hands Interaction Demo}/Scripts/Vector3ScaleAffordanceReceiver.cs (80%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/HandsDemoSceneAssets => 3.0.7/Hands Interaction Demo}/Scripts/Vector3ScaleAffordanceReceiver.cs.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Shaders.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Shaders/DepthOnly.shader (95%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Shaders/DepthOnly.shader.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Shaders/RimLight.shadergraph (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Shaders/RimLight.shadergraph.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Shaders/Subgraphs.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Shaders/Subgraphs/AllFingerHighlights.shadersubgraph (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Shaders/Subgraphs/AllFingerHighlights.shadersubgraph.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Shaders/Subgraphs/EdgeHighlight.shadersubgraph (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Shaders/Subgraphs/EdgeHighlight.shadersubgraph.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Shaders/Subgraphs/FadeFromCenter.shadersubgraph (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Shaders/Subgraphs/FadeFromCenter.shadersubgraph.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Shaders/Subgraphs/FadeFromCenterWithNoise.shadersubgraph (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Shaders/Subgraphs/FadeFromCenterWithNoise.shadersubgraph.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Shaders/Subgraphs/OneFingerHighlight.shadersubgraph (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Shaders/Subgraphs/OneFingerHighlight.shadersubgraph.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Shaders/Unity_Hand.shadergraph (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Shaders/Unity_Hand.shadergraph.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Shaders/Unity_Hand_HDR.shadergraph (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Shaders/Unity_Hand_HDR.shadergraph.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Shaders/Unity_Hand_Noise.shadergraph (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Shaders/Unity_Hand_Noise.shadergraph.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Shaders/Unity_Hand_Noise_HDR.shadergraph (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Shaders/Unity_Hand_Noise_HDR.shadergraph.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Textures.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Textures/CombinedFingerIndexHighlight.png (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Hands Interaction Demo/Textures/CombinedFingerIndexHighlight.png.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets.meta (77%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/DemoSceneAssets => 3.0.7/Starter Assets}/AffordanceThemes.meta (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/ControllerPokeSphereScale.asset rename Assets/Samples/XR Interaction Toolkit/{2.5.2/XR Device Simulator/Hand Expression Captures/Grab Expression Capture.asset.meta => 3.0.7/Starter Assets/AffordanceThemes/ControllerPokeSphereScale.asset.meta} (79%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/HighlightInteractionColor.asset rename Assets/Samples/XR Interaction Toolkit/{2.5.2/XR Device Simulator/Hand Expression Captures/Open Expression Capture.asset.meta => 3.0.7/Starter Assets/AffordanceThemes/HighlightInteractionColor.asset.meta} (79%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/HighlightStrengthInteraction.asset rename Assets/Samples/XR Interaction Toolkit/{2.5.2/XR Device Simulator/Hand Expression Captures/Pinch Expression Capture.asset.meta => 3.0.7/Starter Assets/AffordanceThemes/HighlightStrengthInteraction.asset.meta} (79%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/PokeSphereColor.asset create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/PokeSphereColor.asset.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/PokeSphereInteraction.asset create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/PokeSphereInteraction.asset.meta rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/Chess.meta => 3.0.7/Starter Assets/Animations.meta} (77%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Animations/ArrowBounce.anim create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Animations/ArrowBounce.anim.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Animations/Climb Teleport Arrow.controller create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Animations/Climb Teleport Arrow.controller.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoScene.unity rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoScene.unity.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets.meta (100%) rename Assets/Samples/{XR Hands/1.3.0.meta => XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/AffordanceThemes.meta} (77%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/AffordanceThemes/InteractionColor.asset rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/DemoSceneAssets/AffordanceThemes/InteractionColorAffordanceTheme.asset.meta => 3.0.7/Starter Assets/DemoSceneAssets/AffordanceThemes/InteractionColor.asset.meta} (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Audio.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Audio/Button Pop.wav (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Audio/Button Pop.wav.meta (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/Concrete Dark Blue.mat rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/PrimitivesYellow.mat.meta => 3.0.7/Starter Assets/DemoSceneAssets/Materials/Concrete Dark Blue.mat.meta} (79%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/Concrete Grey.mat rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/Materials/RimLight.mat.meta => 3.0.7/Starter Assets/DemoSceneAssets/Materials/Concrete Grey.mat.meta} (79%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/Concrete Light Blue.mat create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/Concrete Light Blue.mat.meta rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/Materials/RimLight.mat => 3.0.7/Starter Assets/DemoSceneAssets/Materials/Lit White.mat} (82%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/Lit White.mat.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/MaterialPipelineHandler.asset create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/MaterialPipelineHandler.asset.meta rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Models.meta (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Blaster.fbx rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/Models/XRControllerLeft.fbx.meta => 3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Blaster.fbx.meta} (85%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Blaster_Long.fbx create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Blaster_Long.fbx.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Cylinder.fbx create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Cylinder.fbx.meta rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Models/Primitive_Pyramid.fbx (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Models/Primitive_Pyramid.fbx.meta (93%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Tapered_Cylinder.fbx create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Tapered_Cylinder.fbx.meta rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Models/Primitive_Torus.fbx (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Models/Primitive_Torus.fbx.meta (93%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Torus_Cut.fbx rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/Models/XRControllerRight.fbx.meta => 3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Torus_Cut.fbx.meta} (85%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Models/PushButton.fbx (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Models/PushButton.fbx.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/Climb.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/Climb/Climb Sample.prefab (62%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/Climb/Climb Sample.prefab.meta (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/ClimbTeleportReticle.prefab rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/Prefabs/XR Interaction Hands Setup.prefab.meta => 3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/ClimbTeleportReticle.prefab.meta} (74%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/Climb/Climbing Wall.prefab (98%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/Climb/Climbing Wall.prefab.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/Climb/Ladder.prefab (97%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/Climb/Ladder.prefab.meta (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/Multi Floor Ladder.prefab rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/Prefabs/XR Interaction Setup.prefab.meta => 3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/Multi Floor Ladder.prefab.meta} (74%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/Single Floor Ladder.prefab rename Assets/Samples/XR Interaction Toolkit/{2.5.2/XR Device Simulator/UI/XR Device Simulator UI.prefab.meta => 3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/Single Floor Ladder.prefab.meta} (74%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Far Grab Samples.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Far Grab Samples.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Gaze Interactables.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Gaze Interactables.prefab.meta rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/Interactables Sample.prefab (98%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/Interactables Sample.prefab.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/Interactables.meta (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Blaser-Long.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Blaser-Long.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Blaser.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Blaser.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Confetti.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Confetti.prefab.meta rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interactable Simple Cube.prefab => 3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Cube.prefab} (92%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interactable Simple Cube.prefab.meta => 3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Cube.prefab.meta} (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interactable Instant Pyramid.prefab => 3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Cylinder.prefab} (68%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interactable Instant Pyramid.prefab.meta => 3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Cylinder.prefab.meta} (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interactable Velocity Tracked Wedge.prefab => 3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Pot.prefab} (69%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interactable Velocity Tracked Wedge.prefab.meta => 3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Pot.prefab.meta} (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Push Button.prefab (95%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Push Button.prefab.meta (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Torus-Cut.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Torus-Cut.prefab.meta rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interactable Kinematic Torus.prefab => 3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Torus.prefab} (77%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interactable Kinematic Torus.prefab.meta => 3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Torus.prefab.meta} (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interaction Affordance.prefab => 3.0.7/Starter Assets/DemoSceneAssets/Prefabs/InteractionAffordance.prefab} (99%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interaction Affordance.prefab.meta => 3.0.7/Starter Assets/DemoSceneAssets/Prefabs/InteractionAffordance.prefab.meta} (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Poke Interactions Sample.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Poke Interactions Sample.prefab.meta rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/Teleport.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Snapping Teleport Anchor.prefab => 3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Snap Teleport Anchor.prefab} (62%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Snapping Teleport Anchor.prefab.meta => 3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Snap Teleport Anchor.prefab.meta} (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Teleport Anchor.prefab (90%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Teleport Anchor.prefab.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Teleport Area.prefab (88%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Teleport Area.prefab.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/Teleportation Environment.prefab (98%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/Teleportation Environment.prefab.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/UI Sample.prefab (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/UI Sample.prefab.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/UI.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/UI/Dropdown.prefab (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/UI/Dropdown.prefab.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/UI/Icon Button.prefab (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/UI/Icon Button.prefab.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/UI/Icon Toggle.prefab (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/UI/Icon Toggle.prefab.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/UI/Interactive Controls.prefab (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/UI/Interactive Controls.prefab.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/UI/MinMaxSlider.prefab (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/UI/MinMaxSlider.prefab.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/UI/ModalSingleButton.prefab (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/UI/ModalSingleButton.prefab.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/UI/Scroll UI Sample.prefab (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/UI/Scroll UI Sample.prefab.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/UI/Text Toggle.prefab (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/UI/Text Toggle.prefab.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/UI/TextButton.prefab (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Prefabs/UI/TextButton.prefab.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Scripts.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Scripts/IncrementUIText.cs (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Scripts/IncrementUIText.cs.meta (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Scripts/MultiAnchorTeleportReticle.cs rename Assets/Samples/XR Interaction Toolkit/{2.5.2/XR Device Simulator/Scripts/XRDeviceSimulatorUI.cs.meta => 3.0.7/Starter Assets/DemoSceneAssets/Scripts/MultiAnchorTeleportReticle.cs.meta} (83%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Settings.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Settings/GazeTeleportAnchorFilter.asset create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Settings/GazeTeleportAnchorFilter.asset.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Settings/TeleportVolumeDestinationSettings.asset create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Settings/TeleportVolumeDestinationSettings.asset.meta rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Sprites.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Sprites/Asset.png (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Sprites/Asset.png.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Sprites/Checkmark.png (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Sprites/Checkmark.png.meta (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/Circle_60x60 Outline 4.png rename Assets/Samples/XR Interaction Toolkit/{2.5.2/XR Device Simulator/UI/Mouse/MouseR.png.meta => 3.0.7/Starter Assets/DemoSceneAssets/Sprites/Circle_60x60 Outline 4.png.meta} (98%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Sprites/Circle_60x60_Horizontal.png (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Sprites/Circle_60x60_Horizontal.png.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Sprites/Forward.png (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Sprites/Forward.png.meta (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/LegibilityMask.png rename Assets/Samples/XR Interaction Toolkit/{2.5.2/XR Device Simulator/UI/HeadDevice/HMD.png.meta => 3.0.7/Starter Assets/DemoSceneAssets/Sprites/LegibilityMask.png.meta} (96%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Sprites/Round Radius 4 Outline.png (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Sprites/Round Radius 4 Outline.png.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Sprites/Round Radius 4.png (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/DemoSceneAssets/Sprites/Round Radius 4.png.meta (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Textures.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Textures/Concrete_Albedo.tif rename Assets/Samples/XR Interaction Toolkit/{2.5.2/XR Device Simulator/UI/HeadDevice/HMD_d.png.meta => 3.0.7/Starter Assets/DemoSceneAssets/Textures/Concrete_Albedo.tif.meta} (92%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Textures/Concrete_Metallic.tif rename Assets/Samples/XR Interaction Toolkit/{2.5.2/XR Device Simulator/UI/Hands/hand.png.meta => 3.0.7/Starter Assets/DemoSceneAssets/Textures/Concrete_Metallic.tif.meta} (84%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Textures/Concrete_Normal.tif create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Textures/Concrete_Normal.tif.meta rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Editor.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Editor/Scripts.meta (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Editor/Scripts/StarterAssetsSampleProjectValidation.cs rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Editor/Scripts/StarterAssetsSampleProjectValidation.cs.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/Editor/Unity.XR.Interaction.Toolkit.Samples.StarterAssets.Editor.asmdef => 3.0.7/Starter Assets/Editor/StarterAssets.Editor.asmdef} (67%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/Editor/Unity.XR.Interaction.Toolkit.Samples.StarterAssets.Editor.asmdef.meta => 3.0.7/Starter Assets/Editor/StarterAssets.Editor.asmdef.meta} (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Filters.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Filters/AnyGazedAtTeleportAnchorFilter.asset create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Filters/AnyGazedAtTeleportAnchorFilter.asset.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Controller_Grey.mat create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Controller_Grey.mat.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Controller_White.mat create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Controller_White.mat.meta rename Assets/Samples/{XR Hands/1.3.0/HandVisualizer/Materials/Blue.mat => XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Flat Blue.mat} (86%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Flat Blue.mat.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/FresnelHighlight.mat create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/FresnelHighlight.mat.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Interactable.mat create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Interactable.mat.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/MaterialPipelineHandler.asset create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/MaterialPipelineHandler.asset.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Telport Anchor.mat create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Telport Anchor.mat.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Telport Area.mat create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Telport Area.mat.meta rename Assets/Samples/{XR Hands/1.3.0/HandVisualizer/Materials/Green.mat => XR Interaction Toolkit/3.0.7/Starter Assets/Materials/UI-NoZTest.mat} (81%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/UI-NoZTest.mat.meta rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Models.meta (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/BlinkVisual.fbx create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/BlinkVisual.fbx.meta rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo => 3.0.7/Starter Assets}/Models/Pinch_Pointer_LOD0.fbx (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo => 3.0.7/Starter Assets}/Models/Pinch_Pointer_LOD0.fbx.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Models/Primitive_Cylinder.fbx (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Models/Primitive_Cylinder.fbx.meta (93%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Models/Primitive_Wedge.fbx (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Models/Primitive_Wedge.fbx.meta (93%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Models/Reticle_Torus.fbx (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Models/Reticle_Torus.fbx.meta (93%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/UniversalController.fbx create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/UniversalController.fbx.meta rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Prefabs.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo => 3.0.7/Starter Assets}/Prefabs/Affordances.meta (77%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Affordances/HighlightInteractionAffordance.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Affordances/HighlightInteractionAffordance.prefab.meta rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/Prefabs/Affordances/Hand Ray Interactor Affordances.prefab => 3.0.7/Starter Assets/Prefabs/Affordances/PokePointerAffordance.prefab} (60%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Affordances/PokePointerAffordance.prefab.meta rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Prefabs/Controllers.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Prefabs/Controllers/XR Controller Left.prefab (63%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Prefabs/Controllers/XR Controller Left.prefab.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Prefabs/Controllers/XR Controller Right.prefab (62%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Prefabs/Controllers/XR Controller Right.prefab.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Prefabs/Interactors.meta (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Direct Interactor.prefab rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Prefabs/Interactors/Direct Interactor.prefab.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Prefabs/Interactors/Gaze Interactor.prefab (62%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Prefabs/Interactors/Gaze Interactor.prefab.meta (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Left_NearFarInteractor.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Left_NearFarInteractor.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Poke Interactor.prefab rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Prefabs/Interactors/Poke Interactor.prefab.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Prefabs/Interactors/Ray Interactor.prefab (57%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Prefabs/Interactors/Ray Interactor.prefab.meta (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Right_NearFarInteractor.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Right_NearFarInteractor.prefab.meta rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Prefabs/Interactors/Teleport Interactor.prefab (56%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Prefabs/Interactors/Teleport Interactor.prefab.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Prefabs/Teleport.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Prefabs/Teleport/Blocking Teleport Reticle.prefab (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Prefabs/Teleport/Blocking Teleport Reticle.prefab.meta (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Teleport/Climb Teleport Arrow.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Teleport/Climb Teleport Arrow.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Teleport/Directional Teleport Reticle.prefab rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Prefabs/Teleport/Directional Teleport Reticle.prefab.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Prefabs/XR Origin (XR Rig).prefab (62%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Prefabs/XR Origin (XR Rig).prefab.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Presets.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Presets/XRI Default Continuous Move.preset (54%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/Presets/XRI Default Gaze Controller.preset.meta => 3.0.7/Starter Assets/Presets/XRI Default Continuous Move.preset.meta} (80%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Continuous Turn.preset rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/Presets/XRI Default XR Screen Space Controller.preset.meta => 3.0.7/Starter Assets/Presets/XRI Default Continuous Turn.preset.meta} (80%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Dynamic Move.preset create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Dynamic Move.preset.meta rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/Presets/XRI Default Left ActionBasedControllerManager.preset => 3.0.7/Starter Assets/Presets/XRI Default Left Controller InputActionManager.preset} (92%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/Presets/XRI Default Left ActionBasedControllerManager.preset.meta => 3.0.7/Starter Assets/Presets/XRI Default Left Controller InputActionManager.preset.meta} (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Left Grab Move.preset rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Presets/XRI Default Left Grab Move.preset.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/Presets/XRI Default Right ActionBasedControllerManager.preset => 3.0.7/Starter Assets/Presets/XRI Default Right Controller InputActionManager.preset} (92%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/Presets/XRI Default Right ActionBasedControllerManager.preset.meta => 3.0.7/Starter Assets/Presets/XRI Default Right Controller InputActionManager.preset.meta} (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Right Grab Move.preset rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Presets/XRI Default Right Grab Move.preset.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Presets/XRI Default Snap Turn.preset (55%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Presets/XRI Default Snap Turn.preset.meta (60%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Presets/XRI Default XR UI Input Module.preset (96%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Presets/XRI Default XR UI Input Module.preset.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Scripts.meta (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/ClimbTeleportDestinationIndicator.cs create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/ClimbTeleportDestinationIndicator.cs.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/ControllerAnimator.cs create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/ControllerAnimator.cs.meta rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/Scripts/ActionBasedControllerManager.cs => 3.0.7/Starter Assets/Scripts/ControllerInputActionManager.cs} (54%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/Scripts/ActionBasedControllerManager.cs.meta => 3.0.7/Starter Assets/Scripts/ControllerInputActionManager.cs.meta} (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Scripts/DestroySelf.cs (99%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Scripts/DestroySelf.cs.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Scripts/DynamicMoveProvider.cs (94%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Scripts/DynamicMoveProvider.cs.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Scripts/GazeInputManager.cs (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Scripts/GazeInputManager.cs.meta (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/MaterialPipelineHandler.cs create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/MaterialPipelineHandler.cs.meta rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Scripts/ObjectSpawner.cs (99%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Scripts/ObjectSpawner.cs.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/GrabTransformerRotationAxisLock.cs => 3.0.7/Starter Assets/Scripts/RotationAxisLockGrabTransformer.cs} (91%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/RotationAxisLockGrabTransformer.cs.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/TeleportVolumeAnchorAffordanceStateLink.cs create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/TeleportVolumeAnchorAffordanceStateLink.cs.meta rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Scripts/XRPokeFollowAffordance.cs (68%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/Scripts/XRPokeFollowAffordance.cs.meta (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/BiRP_Fresnel.shader create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/BiRP_Fresnel.shader.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/Interactable.shadergraph create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/Interactable.shadergraph.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/UI-NoZTest.shader create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/UI-NoZTest.shader.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/Unlit_Fresnel.shadergraph create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/Unlit_Fresnel.shadergraph.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/Unlit_ShaderGraph.shadergraph create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/Unlit_ShaderGraph.shadergraph.meta rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/Unity.XR.Interaction.Toolkit.Samples.StarterAssets.asmdef => 3.0.7/Starter Assets/StarterAssets.asmdef} (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/Unity.XR.Interaction.Toolkit.Samples.StarterAssets.asmdef.meta => 3.0.7/Starter Assets/StarterAssets.asmdef.meta} (100%) create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Textures.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Textures/DefaultMaterial_AO.png create mode 100644 Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Textures/DefaultMaterial_AO.png.meta rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/Tunneling Vignette.meta => 3.0.7/Starter Assets/TunnelingVignette.meta} (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/Tunneling Vignette => 3.0.7/Starter Assets/TunnelingVignette}/TunnelingVignette.mat (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/Tunneling Vignette => 3.0.7/Starter Assets/TunnelingVignette}/TunnelingVignette.mat.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/Tunneling Vignette => 3.0.7/Starter Assets/TunnelingVignette}/TunnelingVignette.prefab (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/Tunneling Vignette => 3.0.7/Starter Assets/TunnelingVignette}/TunnelingVignette.prefab.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/Tunneling Vignette => 3.0.7/Starter Assets/TunnelingVignette}/TunnelingVignette.shader (99%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/Tunneling Vignette => 3.0.7/Starter Assets/TunnelingVignette}/TunnelingVignette.shader.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/Tunneling Vignette => 3.0.7/Starter Assets/TunnelingVignette}/TunnelingVignetteHemisphere.fbx (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/Tunneling Vignette => 3.0.7/Starter Assets/TunnelingVignette}/TunnelingVignetteHemisphere.fbx.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/Tunneling Vignette => 3.0.7/Starter Assets/TunnelingVignette}/TunnelingVignetteSG.shadergraph (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2/Starter Assets/Tunneling Vignette => 3.0.7/Starter Assets/TunnelingVignette}/TunnelingVignetteSG.shadergraph.meta (100%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/XRI Default Input Actions.inputactions (77%) rename Assets/Samples/XR Interaction Toolkit/{2.5.2 => 3.0.7}/Starter Assets/XRI Default Input Actions.inputactions.meta (100%) delete mode 100644 Assets/Third Party/AmplifyShaderEditor/Examples/Built-In Samples.unitypackage.meta delete mode 100644 Assets/Third Party/AmplifyShaderEditor/Examples/HDRP Samples 14x.unitypackage.meta delete mode 100644 Assets/Third Party/AmplifyShaderEditor/Examples/HDRP Samples.unitypackage.meta delete mode 100644 Assets/Third Party/AmplifyShaderEditor/Examples/Sample Resources.unitypackage.meta delete mode 100644 Assets/Third Party/AmplifyShaderEditor/Examples/URP Samples 10x.unitypackage.meta delete mode 100644 Assets/Third Party/AmplifyShaderEditor/Examples/URP Samples 12x.unitypackage.meta delete mode 100644 Assets/Third Party/AmplifyShaderEditor/Examples/URP Samples 14x.unitypackage.meta delete mode 100644 Assets/Third Party/AmplifyShaderEditor/Examples/URP Samples.unitypackage.meta delete mode 100644 Assets/Third Party/AmplifyShaderEditor/Plugins/EditorResources/Templates/HDRP 10x.unitypackage.meta delete mode 100644 Assets/Third Party/AmplifyShaderEditor/Plugins/EditorResources/Templates/HDRP 12x.unitypackage.meta delete mode 100644 Assets/Third Party/AmplifyShaderEditor/Plugins/EditorResources/Templates/HDRP 14x.unitypackage.meta delete mode 100644 Assets/Third Party/AmplifyShaderEditor/Plugins/EditorResources/Templates/URP 10x.unitypackage.meta delete mode 100644 Assets/Third Party/AmplifyShaderEditor/Plugins/EditorResources/Templates/URP 12x.unitypackage.meta delete mode 100644 Assets/Third Party/AmplifyShaderEditor/Plugins/EditorResources/Templates/URP 14x.unitypackage.meta delete mode 100644 Assets/Third Party/Procedural Worlds/Packages - Install/Gaia/Editor Resources/GaiaXRController.unitypackage.meta create mode 100644 Packages/MCPForUnity/Editor.meta create mode 100644 Packages/MCPForUnity/Editor/AssemblyInfo.cs create mode 100644 Packages/MCPForUnity/Editor/AssemblyInfo.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Clients.meta create mode 100644 Packages/MCPForUnity/Editor/Clients/Configurators.meta create mode 100644 Packages/MCPForUnity/Editor/Clients/Configurators/AntigravityConfigurator.cs create mode 100644 Packages/MCPForUnity/Editor/Clients/Configurators/AntigravityConfigurator.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Clients/Configurators/CherryStudioConfigurator.cs create mode 100644 Packages/MCPForUnity/Editor/Clients/Configurators/CherryStudioConfigurator.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Clients/Configurators/ClaudeCodeConfigurator.cs create mode 100644 Packages/MCPForUnity/Editor/Clients/Configurators/ClaudeCodeConfigurator.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Clients/Configurators/ClaudeDesktopConfigurator.cs create mode 100644 Packages/MCPForUnity/Editor/Clients/Configurators/ClaudeDesktopConfigurator.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Clients/Configurators/CodeBuddyCliConfigurator.cs create mode 100644 Packages/MCPForUnity/Editor/Clients/Configurators/CodeBuddyCliConfigurator.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Clients/Configurators/CodexConfigurator.cs create mode 100644 Packages/MCPForUnity/Editor/Clients/Configurators/CodexConfigurator.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Clients/Configurators/CopilotCliConfigurator.cs create mode 100644 Packages/MCPForUnity/Editor/Clients/Configurators/CopilotCliConfigurator.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Clients/Configurators/CursorConfigurator.cs create mode 100644 Packages/MCPForUnity/Editor/Clients/Configurators/CursorConfigurator.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Clients/Configurators/KiloCodeConfigurator.cs create mode 100644 Packages/MCPForUnity/Editor/Clients/Configurators/KiloCodeConfigurator.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Clients/Configurators/KiroConfigurator.cs create mode 100644 Packages/MCPForUnity/Editor/Clients/Configurators/KiroConfigurator.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Clients/Configurators/OpenCodeConfigurator.cs create mode 100644 Packages/MCPForUnity/Editor/Clients/Configurators/OpenCodeConfigurator.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Clients/Configurators/RiderConfigurator.cs create mode 100644 Packages/MCPForUnity/Editor/Clients/Configurators/RiderConfigurator.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Clients/Configurators/TraeConfigurator.cs create mode 100644 Packages/MCPForUnity/Editor/Clients/Configurators/TraeConfigurator.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Clients/Configurators/VSCodeConfigurator.cs create mode 100644 Packages/MCPForUnity/Editor/Clients/Configurators/VSCodeConfigurator.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Clients/Configurators/VSCodeInsidersConfigurator.cs create mode 100644 Packages/MCPForUnity/Editor/Clients/Configurators/VSCodeInsidersConfigurator.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Clients/Configurators/WindsurfConfigurator.cs create mode 100644 Packages/MCPForUnity/Editor/Clients/Configurators/WindsurfConfigurator.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Clients/IMcpClientConfigurator.cs create mode 100644 Packages/MCPForUnity/Editor/Clients/IMcpClientConfigurator.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Clients/McpClientConfiguratorBase.cs create mode 100644 Packages/MCPForUnity/Editor/Clients/McpClientConfiguratorBase.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Clients/McpClientRegistry.cs create mode 100644 Packages/MCPForUnity/Editor/Clients/McpClientRegistry.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Constants.meta create mode 100644 Packages/MCPForUnity/Editor/Constants/AuthConstants.cs create mode 100644 Packages/MCPForUnity/Editor/Constants/AuthConstants.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Constants/EditorPrefKeys.cs create mode 100644 Packages/MCPForUnity/Editor/Constants/EditorPrefKeys.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Constants/HealthStatus.cs create mode 100644 Packages/MCPForUnity/Editor/Constants/HealthStatus.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Dependencies.meta create mode 100644 Packages/MCPForUnity/Editor/Dependencies/DependencyManager.cs create mode 100644 Packages/MCPForUnity/Editor/Dependencies/DependencyManager.cs.meta rename {Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo => Packages/MCPForUnity/Editor/Dependencies}/Models.meta (77%) create mode 100644 Packages/MCPForUnity/Editor/Dependencies/Models/DependencyCheckResult.cs create mode 100644 Packages/MCPForUnity/Editor/Dependencies/Models/DependencyCheckResult.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Dependencies/Models/DependencyStatus.cs create mode 100644 Packages/MCPForUnity/Editor/Dependencies/Models/DependencyStatus.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors.meta create mode 100644 Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/IPlatformDetector.cs create mode 100644 Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/IPlatformDetector.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/LinuxPlatformDetector.cs create mode 100644 Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/LinuxPlatformDetector.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/MacOSPlatformDetector.cs create mode 100644 Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/MacOSPlatformDetector.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/PlatformDetectorBase.cs create mode 100644 Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/PlatformDetectorBase.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/WindowsPlatformDetector.cs create mode 100644 Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/WindowsPlatformDetector.cs.meta create mode 100644 Packages/MCPForUnity/Editor/External.meta create mode 100644 Packages/MCPForUnity/Editor/External/Tommy.cs create mode 100644 Packages/MCPForUnity/Editor/External/Tommy.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Helpers.meta create mode 100644 Packages/MCPForUnity/Editor/Helpers/AssetPathUtility.cs create mode 100644 Packages/MCPForUnity/Editor/Helpers/AssetPathUtility.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Helpers/CodexConfigHelper.cs create mode 100644 Packages/MCPForUnity/Editor/Helpers/CodexConfigHelper.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Helpers/ComponentOps.cs create mode 100644 Packages/MCPForUnity/Editor/Helpers/ComponentOps.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Helpers/ConfigJsonBuilder.cs create mode 100644 Packages/MCPForUnity/Editor/Helpers/ConfigJsonBuilder.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Helpers/ExecPath.cs create mode 100644 Packages/MCPForUnity/Editor/Helpers/ExecPath.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Helpers/GameObjectLookup.cs create mode 100644 Packages/MCPForUnity/Editor/Helpers/GameObjectLookup.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Helpers/GameObjectSerializer.cs create mode 100644 Packages/MCPForUnity/Editor/Helpers/GameObjectSerializer.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Helpers/HttpEndpointUtility.cs create mode 100644 Packages/MCPForUnity/Editor/Helpers/HttpEndpointUtility.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Helpers/MaterialOps.cs create mode 100644 Packages/MCPForUnity/Editor/Helpers/MaterialOps.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Helpers/McpConfigurationHelper.cs create mode 100644 Packages/MCPForUnity/Editor/Helpers/McpConfigurationHelper.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Helpers/McpJobStateStore.cs create mode 100644 Packages/MCPForUnity/Editor/Helpers/McpJobStateStore.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Helpers/McpLog.cs create mode 100644 Packages/MCPForUnity/Editor/Helpers/McpLog.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Helpers/ObjectResolver.cs create mode 100644 Packages/MCPForUnity/Editor/Helpers/ObjectResolver.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Helpers/Pagination.cs create mode 100644 Packages/MCPForUnity/Editor/Helpers/Pagination.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Helpers/ParamCoercion.cs create mode 100644 Packages/MCPForUnity/Editor/Helpers/ParamCoercion.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Helpers/PortManager.cs create mode 100644 Packages/MCPForUnity/Editor/Helpers/PortManager.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Helpers/PrefabUtilityHelper.cs create mode 100644 Packages/MCPForUnity/Editor/Helpers/PrefabUtilityHelper.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Helpers/ProjectIdentityUtility.cs create mode 100644 Packages/MCPForUnity/Editor/Helpers/ProjectIdentityUtility.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Helpers/PropertyConversion.cs create mode 100644 Packages/MCPForUnity/Editor/Helpers/PropertyConversion.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Helpers/RenderPipelineUtility.cs create mode 100644 Packages/MCPForUnity/Editor/Helpers/RenderPipelineUtility.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Helpers/RendererHelpers.cs create mode 100644 Packages/MCPForUnity/Editor/Helpers/RendererHelpers.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Helpers/Response.cs create mode 100644 Packages/MCPForUnity/Editor/Helpers/Response.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Helpers/StringCaseUtility.cs create mode 100644 Packages/MCPForUnity/Editor/Helpers/StringCaseUtility.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Helpers/TelemetryHelper.cs create mode 100644 Packages/MCPForUnity/Editor/Helpers/TelemetryHelper.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Helpers/TextureOps.cs create mode 100644 Packages/MCPForUnity/Editor/Helpers/TextureOps.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Helpers/ToolParams.cs create mode 100644 Packages/MCPForUnity/Editor/Helpers/ToolParams.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Helpers/UnityJsonSerializer.cs create mode 100644 Packages/MCPForUnity/Editor/Helpers/UnityJsonSerializer.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Helpers/UnityTypeResolver.cs create mode 100644 Packages/MCPForUnity/Editor/Helpers/UnityTypeResolver.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Helpers/VectorParsing.cs create mode 100644 Packages/MCPForUnity/Editor/Helpers/VectorParsing.cs.meta create mode 100644 Packages/MCPForUnity/Editor/MCPForUnity.Editor.asmdef rename Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Unity.XR.Interaction.Toolkit.Samples.DeviceSimulator.asmdef.meta => Packages/MCPForUnity/Editor/MCPForUnity.Editor.asmdef.meta (76%) create mode 100644 Packages/MCPForUnity/Editor/McpCiBoot.cs create mode 100644 Packages/MCPForUnity/Editor/McpCiBoot.cs.meta create mode 100644 Packages/MCPForUnity/Editor/MenuItems.meta create mode 100644 Packages/MCPForUnity/Editor/MenuItems/MCPForUnityMenu.cs create mode 100644 Packages/MCPForUnity/Editor/MenuItems/MCPForUnityMenu.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Migrations.meta create mode 100644 Packages/MCPForUnity/Editor/Migrations/LegacyServerSrcMigration.cs create mode 100644 Packages/MCPForUnity/Editor/Migrations/LegacyServerSrcMigration.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Migrations/StdIoVersionMigration.cs create mode 100644 Packages/MCPForUnity/Editor/Migrations/StdIoVersionMigration.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Models.meta create mode 100644 Packages/MCPForUnity/Editor/Models/Command.cs create mode 100644 Packages/MCPForUnity/Editor/Models/Command.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Models/MCPConfigServer.cs create mode 100644 Packages/MCPForUnity/Editor/Models/MCPConfigServer.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Models/MCPConfigServers.cs create mode 100644 Packages/MCPForUnity/Editor/Models/MCPConfigServers.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Models/McpClient.cs create mode 100644 Packages/MCPForUnity/Editor/Models/McpClient.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Models/McpConfig.cs create mode 100644 Packages/MCPForUnity/Editor/Models/McpConfig.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Models/McpStatus.cs create mode 100644 Packages/MCPForUnity/Editor/Models/McpStatus.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Resources.meta create mode 100644 Packages/MCPForUnity/Editor/Resources/Editor.meta create mode 100644 Packages/MCPForUnity/Editor/Resources/Editor/ActiveTool.cs create mode 100644 Packages/MCPForUnity/Editor/Resources/Editor/ActiveTool.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Resources/Editor/EditorState.cs create mode 100644 Packages/MCPForUnity/Editor/Resources/Editor/EditorState.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Resources/Editor/Selection.cs create mode 100644 Packages/MCPForUnity/Editor/Resources/Editor/Selection.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Resources/Editor/Windows.cs create mode 100644 Packages/MCPForUnity/Editor/Resources/Editor/Windows.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Resources/McpForUnityResourceAttribute.cs create mode 100644 Packages/MCPForUnity/Editor/Resources/McpForUnityResourceAttribute.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Resources/MenuItems.meta create mode 100644 Packages/MCPForUnity/Editor/Resources/MenuItems/GetMenuItems.cs create mode 100644 Packages/MCPForUnity/Editor/Resources/MenuItems/GetMenuItems.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Resources/Project.meta create mode 100644 Packages/MCPForUnity/Editor/Resources/Project/Layers.cs create mode 100644 Packages/MCPForUnity/Editor/Resources/Project/Layers.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Resources/Project/ProjectInfo.cs create mode 100644 Packages/MCPForUnity/Editor/Resources/Project/ProjectInfo.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Resources/Project/Tags.cs create mode 100644 Packages/MCPForUnity/Editor/Resources/Project/Tags.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Resources/Scene.meta create mode 100644 Packages/MCPForUnity/Editor/Resources/Scene/GameObjectResource.cs create mode 100644 Packages/MCPForUnity/Editor/Resources/Scene/GameObjectResource.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Resources/Tests.meta create mode 100644 Packages/MCPForUnity/Editor/Resources/Tests/GetTests.cs create mode 100644 Packages/MCPForUnity/Editor/Resources/Tests/GetTests.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services.meta create mode 100644 Packages/MCPForUnity/Editor/Services/BridgeControlService.cs create mode 100644 Packages/MCPForUnity/Editor/Services/BridgeControlService.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/ClientConfigurationService.cs create mode 100644 Packages/MCPForUnity/Editor/Services/ClientConfigurationService.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/EditorConfigurationCache.cs create mode 100644 Packages/MCPForUnity/Editor/Services/EditorConfigurationCache.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/EditorPrefsWindowService.cs create mode 100644 Packages/MCPForUnity/Editor/Services/EditorPrefsWindowService.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/EditorStateCache.cs create mode 100644 Packages/MCPForUnity/Editor/Services/EditorStateCache.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/HttpBridgeReloadHandler.cs create mode 100644 Packages/MCPForUnity/Editor/Services/HttpBridgeReloadHandler.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/IBridgeControlService.cs create mode 100644 Packages/MCPForUnity/Editor/Services/IBridgeControlService.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/IClientConfigurationService.cs create mode 100644 Packages/MCPForUnity/Editor/Services/IClientConfigurationService.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/IPackageDeploymentService.cs create mode 100644 Packages/MCPForUnity/Editor/Services/IPackageDeploymentService.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/IPackageUpdateService.cs create mode 100644 Packages/MCPForUnity/Editor/Services/IPackageUpdateService.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/IPathResolverService.cs create mode 100644 Packages/MCPForUnity/Editor/Services/IPathResolverService.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/IPlatformService.cs create mode 100644 Packages/MCPForUnity/Editor/Services/IPlatformService.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/IResourceDiscoveryService.cs create mode 100644 Packages/MCPForUnity/Editor/Services/IResourceDiscoveryService.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/IServerManagementService.cs create mode 100644 Packages/MCPForUnity/Editor/Services/IServerManagementService.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/ITestRunnerService.cs create mode 100644 Packages/MCPForUnity/Editor/Services/ITestRunnerService.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/IToolDiscoveryService.cs create mode 100644 Packages/MCPForUnity/Editor/Services/IToolDiscoveryService.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/MCPServiceLocator.cs create mode 100644 Packages/MCPForUnity/Editor/Services/MCPServiceLocator.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/McpEditorShutdownCleanup.cs create mode 100644 Packages/MCPForUnity/Editor/Services/McpEditorShutdownCleanup.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/PackageDeploymentService.cs create mode 100644 Packages/MCPForUnity/Editor/Services/PackageDeploymentService.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/PackageUpdateService.cs create mode 100644 Packages/MCPForUnity/Editor/Services/PackageUpdateService.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/PathResolverService.cs create mode 100644 Packages/MCPForUnity/Editor/Services/PathResolverService.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/PlatformService.cs create mode 100644 Packages/MCPForUnity/Editor/Services/PlatformService.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/ResourceDiscoveryService.cs create mode 100644 Packages/MCPForUnity/Editor/Services/ResourceDiscoveryService.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/Server.meta create mode 100644 Packages/MCPForUnity/Editor/Services/Server/IPidFileManager.cs create mode 100644 Packages/MCPForUnity/Editor/Services/Server/IPidFileManager.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/Server/IProcessDetector.cs create mode 100644 Packages/MCPForUnity/Editor/Services/Server/IProcessDetector.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/Server/IProcessTerminator.cs create mode 100644 Packages/MCPForUnity/Editor/Services/Server/IProcessTerminator.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/Server/IServerCommandBuilder.cs create mode 100644 Packages/MCPForUnity/Editor/Services/Server/IServerCommandBuilder.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/Server/ITerminalLauncher.cs create mode 100644 Packages/MCPForUnity/Editor/Services/Server/ITerminalLauncher.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/Server/PidFileManager.cs create mode 100644 Packages/MCPForUnity/Editor/Services/Server/PidFileManager.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/Server/ProcessDetector.cs create mode 100644 Packages/MCPForUnity/Editor/Services/Server/ProcessDetector.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/Server/ProcessTerminator.cs create mode 100644 Packages/MCPForUnity/Editor/Services/Server/ProcessTerminator.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/Server/ServerCommandBuilder.cs create mode 100644 Packages/MCPForUnity/Editor/Services/Server/ServerCommandBuilder.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/Server/TerminalLauncher.cs create mode 100644 Packages/MCPForUnity/Editor/Services/Server/TerminalLauncher.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/ServerManagementService.cs create mode 100644 Packages/MCPForUnity/Editor/Services/ServerManagementService.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/StdioBridgeReloadHandler.cs create mode 100644 Packages/MCPForUnity/Editor/Services/StdioBridgeReloadHandler.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/TestJobManager.cs create mode 100644 Packages/MCPForUnity/Editor/Services/TestJobManager.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/TestRunStatus.cs create mode 100644 Packages/MCPForUnity/Editor/Services/TestRunStatus.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/TestRunnerNoThrottle.cs create mode 100644 Packages/MCPForUnity/Editor/Services/TestRunnerNoThrottle.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/TestRunnerService.cs create mode 100644 Packages/MCPForUnity/Editor/Services/TestRunnerService.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/ToolDiscoveryService.cs create mode 100644 Packages/MCPForUnity/Editor/Services/ToolDiscoveryService.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/Transport.meta create mode 100644 Packages/MCPForUnity/Editor/Services/Transport/IMcpTransportClient.cs create mode 100644 Packages/MCPForUnity/Editor/Services/Transport/IMcpTransportClient.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/Transport/TransportCommandDispatcher.cs create mode 100644 Packages/MCPForUnity/Editor/Services/Transport/TransportCommandDispatcher.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/Transport/TransportManager.cs create mode 100644 Packages/MCPForUnity/Editor/Services/Transport/TransportManager.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/Transport/TransportState.cs create mode 100644 Packages/MCPForUnity/Editor/Services/Transport/TransportState.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/Transport/Transports.meta create mode 100644 Packages/MCPForUnity/Editor/Services/Transport/Transports/StdioBridgeHost.cs create mode 100644 Packages/MCPForUnity/Editor/Services/Transport/Transports/StdioBridgeHost.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/Transport/Transports/StdioTransportClient.cs create mode 100644 Packages/MCPForUnity/Editor/Services/Transport/Transports/StdioTransportClient.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Services/Transport/Transports/WebSocketTransportClient.cs create mode 100644 Packages/MCPForUnity/Editor/Services/Transport/Transports/WebSocketTransportClient.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Setup.meta create mode 100644 Packages/MCPForUnity/Editor/Setup/SetupWindowService.cs create mode 100644 Packages/MCPForUnity/Editor/Setup/SetupWindowService.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/BatchExecute.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/BatchExecute.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/CommandRegistry.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/CommandRegistry.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/ExecuteMenuItem.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/ExecuteMenuItem.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/FindGameObjects.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/FindGameObjects.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/GameObjects.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/GameObjects/ComponentResolver.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/GameObjects/ComponentResolver.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectComponentHelpers.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectComponentHelpers.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectCreate.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectCreate.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectDelete.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectDelete.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectDuplicate.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectDuplicate.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectHandlers.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectHandlers.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectModify.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectModify.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectMoveRelative.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectMoveRelative.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/GameObjects/ManageGameObject.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/GameObjects/ManageGameObject.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/GameObjects/ManageGameObjectCommon.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/GameObjects/ManageGameObjectCommon.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/GetTestJob.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/GetTestJob.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/JsonUtil.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/JsonUtil.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/ManageAsset.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/ManageAsset.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/ManageComponents.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/ManageComponents.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/ManageEditor.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/ManageEditor.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/ManageMaterial.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/ManageMaterial.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/ManageScene.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/ManageScene.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/ManageScript.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/ManageScript.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/ManageScriptableObject.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/ManageScriptableObject.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/ManageShader.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/ManageShader.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/ManageTexture.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/ManageTexture.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/McpForUnityToolAttribute.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/McpForUnityToolAttribute.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/Prefabs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/Prefabs/ManagePrefabs.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/Prefabs/ManagePrefabs.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/ReadConsole.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/ReadConsole.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/RefreshUnity.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/RefreshUnity.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/RunTests.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/RunTests.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx/LineCreate.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx/LineCreate.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx/LineRead.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx/LineRead.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx/LineWrite.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx/LineWrite.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx/ManageVFX.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx/ManageVFX.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx/ManageVfxCommon.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx/ManageVfxCommon.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx/ParticleCommon.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx/ParticleCommon.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx/ParticleControl.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx/ParticleControl.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx/ParticleRead.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx/ParticleRead.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx/ParticleWrite.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx/ParticleWrite.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx/TrailControl.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx/TrailControl.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx/TrailRead.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx/TrailRead.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx/TrailWrite.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx/TrailWrite.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphAssets.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphAssets.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphCommon.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphCommon.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphControl.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphControl.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphRead.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphRead.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphWrite.cs create mode 100644 Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphWrite.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Windows.meta create mode 100644 Packages/MCPForUnity/Editor/Windows/Components.meta create mode 100644 Packages/MCPForUnity/Editor/Windows/Components/Advanced.meta create mode 100644 Packages/MCPForUnity/Editor/Windows/Components/Advanced/McpAdvancedSection.cs create mode 100644 Packages/MCPForUnity/Editor/Windows/Components/Advanced/McpAdvancedSection.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Windows/Components/Advanced/McpAdvancedSection.uxml create mode 100644 Packages/MCPForUnity/Editor/Windows/Components/Advanced/McpAdvancedSection.uxml.meta create mode 100644 Packages/MCPForUnity/Editor/Windows/Components/ClientConfig.meta create mode 100644 Packages/MCPForUnity/Editor/Windows/Components/ClientConfig/McpClientConfigSection.cs create mode 100644 Packages/MCPForUnity/Editor/Windows/Components/ClientConfig/McpClientConfigSection.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Windows/Components/ClientConfig/McpClientConfigSection.uxml create mode 100644 Packages/MCPForUnity/Editor/Windows/Components/ClientConfig/McpClientConfigSection.uxml.meta create mode 100644 Packages/MCPForUnity/Editor/Windows/Components/Common.uss create mode 100644 Packages/MCPForUnity/Editor/Windows/Components/Common.uss.meta create mode 100644 Packages/MCPForUnity/Editor/Windows/Components/Connection.meta create mode 100644 Packages/MCPForUnity/Editor/Windows/Components/Connection/McpConnectionSection.cs create mode 100644 Packages/MCPForUnity/Editor/Windows/Components/Connection/McpConnectionSection.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Windows/Components/Connection/McpConnectionSection.uxml create mode 100644 Packages/MCPForUnity/Editor/Windows/Components/Connection/McpConnectionSection.uxml.meta create mode 100644 Packages/MCPForUnity/Editor/Windows/Components/Resources.meta create mode 100644 Packages/MCPForUnity/Editor/Windows/Components/Resources/McpResourcesSection.cs create mode 100644 Packages/MCPForUnity/Editor/Windows/Components/Resources/McpResourcesSection.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Windows/Components/Resources/McpResourcesSection.uxml create mode 100644 Packages/MCPForUnity/Editor/Windows/Components/Resources/McpResourcesSection.uxml.meta create mode 100644 Packages/MCPForUnity/Editor/Windows/Components/Tools.meta create mode 100644 Packages/MCPForUnity/Editor/Windows/Components/Tools/McpToolsSection.cs create mode 100644 Packages/MCPForUnity/Editor/Windows/Components/Tools/McpToolsSection.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Windows/Components/Tools/McpToolsSection.uxml create mode 100644 Packages/MCPForUnity/Editor/Windows/Components/Tools/McpToolsSection.uxml.meta create mode 100644 Packages/MCPForUnity/Editor/Windows/Components/Validation.meta create mode 100644 Packages/MCPForUnity/Editor/Windows/Components/Validation/McpValidationSection.cs create mode 100644 Packages/MCPForUnity/Editor/Windows/Components/Validation/McpValidationSection.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Windows/Components/Validation/McpValidationSection.uxml create mode 100644 Packages/MCPForUnity/Editor/Windows/Components/Validation/McpValidationSection.uxml.meta create mode 100644 Packages/MCPForUnity/Editor/Windows/EditorPrefs.meta create mode 100644 Packages/MCPForUnity/Editor/Windows/EditorPrefs/EditorPrefItem.uxml create mode 100644 Packages/MCPForUnity/Editor/Windows/EditorPrefs/EditorPrefItem.uxml.meta create mode 100644 Packages/MCPForUnity/Editor/Windows/EditorPrefs/EditorPrefsWindow.cs create mode 100644 Packages/MCPForUnity/Editor/Windows/EditorPrefs/EditorPrefsWindow.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Windows/EditorPrefs/EditorPrefsWindow.uss create mode 100644 Packages/MCPForUnity/Editor/Windows/EditorPrefs/EditorPrefsWindow.uss.meta create mode 100644 Packages/MCPForUnity/Editor/Windows/EditorPrefs/EditorPrefsWindow.uxml create mode 100644 Packages/MCPForUnity/Editor/Windows/EditorPrefs/EditorPrefsWindow.uxml.meta create mode 100644 Packages/MCPForUnity/Editor/Windows/MCPForUnityEditorWindow.cs create mode 100644 Packages/MCPForUnity/Editor/Windows/MCPForUnityEditorWindow.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Windows/MCPForUnityEditorWindow.uss create mode 100644 Packages/MCPForUnity/Editor/Windows/MCPForUnityEditorWindow.uss.meta create mode 100644 Packages/MCPForUnity/Editor/Windows/MCPForUnityEditorWindow.uxml create mode 100644 Packages/MCPForUnity/Editor/Windows/MCPForUnityEditorWindow.uxml.meta create mode 100644 Packages/MCPForUnity/Editor/Windows/MCPSetupWindow.cs create mode 100644 Packages/MCPForUnity/Editor/Windows/MCPSetupWindow.cs.meta create mode 100644 Packages/MCPForUnity/Editor/Windows/MCPSetupWindow.uss create mode 100644 Packages/MCPForUnity/Editor/Windows/MCPSetupWindow.uss.meta create mode 100644 Packages/MCPForUnity/Editor/Windows/MCPSetupWindow.uxml create mode 100644 Packages/MCPForUnity/Editor/Windows/MCPSetupWindow.uxml.meta create mode 100644 Packages/MCPForUnity/README.md create mode 100644 Packages/MCPForUnity/README.md.meta create mode 100644 Packages/MCPForUnity/Runtime.meta create mode 100644 Packages/MCPForUnity/Runtime/Helpers.meta create mode 100644 Packages/MCPForUnity/Runtime/Helpers/ScreenshotUtility.cs create mode 100644 Packages/MCPForUnity/Runtime/Helpers/ScreenshotUtility.cs.meta create mode 100644 Packages/MCPForUnity/Runtime/MCPForUnity.Runtime.asmdef create mode 100644 Packages/MCPForUnity/Runtime/MCPForUnity.Runtime.asmdef.meta create mode 100644 Packages/MCPForUnity/Runtime/Serialization.meta create mode 100644 Packages/MCPForUnity/Runtime/Serialization/UnityTypeConverters.cs create mode 100644 Packages/MCPForUnity/Runtime/Serialization/UnityTypeConverters.cs.meta create mode 100644 Packages/MCPForUnity/package.json create mode 100644 Packages/MCPForUnity/package.json.meta delete mode 100644 Packages/PICO Unity Integration SDK-3.0.0-240902/Platform/Plugins/Android64.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/AppleEventIntegration~/AppleEventIntegration.xcodeproj/project.pbxproj create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/AppleEventIntegration~/AppleEventIntegration/Info.plist create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/AppleEventIntegration~/AppleEventIntegration/main.mm create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/AppleEventIntegration~/howtobuild.txt create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/AssemblyInfo.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/AssemblyInfo.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/AsyncOperation.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/AsyncOperation.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/COMIntegration.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/COMIntegration/COMIntegration~/BStrHolder.h create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/COMIntegration/COMIntegration~/CMakeLists.txt create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/COMIntegration/COMIntegration~/COMIntegration.cpp create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/COMIntegration/COMIntegration~/ComPtr.h create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/COMIntegration/COMIntegration~/dte80a.tlh create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/COMIntegration/COMIntegration~/howtobuild.txt create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/COMIntegration/Release.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/COMIntegration/Release/COMIntegration.exe rename Assets/Third Party/AmplifyShaderEditor/Examples/HDRP Samples 10x.unitypackage.meta => Packages/com.unity.ide.trae@0231d4b833/Editor/COMIntegration/Release/COMIntegration.exe.meta (74%) create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Cli.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Cli.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Discovery.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Discovery.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/FileUtility.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/FileUtility.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Image.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Image.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/KnownAssemblies.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/KnownAssemblies.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Messaging.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Messaging/Deserializer.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Messaging/Deserializer.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Messaging/ExceptionEventArgs.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Messaging/ExceptionEventArgs.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Messaging/Message.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Messaging/Message.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Messaging/MessageEventArgs.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Messaging/MessageEventArgs.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Messaging/MessageType.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Messaging/MessageType.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Messaging/Messenger.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Messaging/Messenger.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Messaging/Serializer.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Messaging/Serializer.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Messaging/TcpClient.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Messaging/TcpClient.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Messaging/TcpListener.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Messaging/TcpListener.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Messaging/UdpSocket.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Messaging/UdpSocket.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Plugins.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Plugins/AppleEventIntegration.bundle.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Plugins/AppleEventIntegration.bundle/Contents/Info.plist create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Plugins/AppleEventIntegration.bundle/Contents/MacOS/AppleEventIntegration create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Plugins/AppleEventIntegration.bundle/Contents/_CodeSignature/CodeResources create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/ProcessRunner.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/ProcessRunner.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/ProjectGeneration.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/ProjectGeneration/AssemblyNameProvider.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/ProjectGeneration/AssemblyNameProvider.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/ProjectGeneration/FileIOProvider.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/ProjectGeneration/FileIOProvider.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/ProjectGeneration/GUIDProvider.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/ProjectGeneration/GUIDProvider.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/ProjectGeneration/LegacyStyleProjectGeneration.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/ProjectGeneration/LegacyStyleProjectGeneration.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/ProjectGeneration/ProjectGeneration.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/ProjectGeneration/ProjectGeneration.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/ProjectGeneration/ProjectGenerationFlag.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/ProjectGeneration/ProjectGenerationFlag.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/ProjectGeneration/ProjectProperties.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/ProjectGeneration/ProjectProperties.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/ProjectGeneration/SdkStyleProjectGeneration.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/ProjectGeneration/SdkStyleProjectGeneration.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/SimpleJSON.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/SimpleJSON.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Solution.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Solution.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/SolutionParser.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/SolutionParser.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/SolutionProjectEntry.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/SolutionProjectEntry.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/SolutionProperties.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/SolutionProperties.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Symbols.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Symbols.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Testing.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Testing/TestAdaptor.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Testing/TestAdaptor.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Testing/TestResultAdaptor.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Testing/TestResultAdaptor.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Testing/TestRunnerApiListener.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Testing/TestRunnerApiListener.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Testing/TestRunnerCallbacks.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Testing/TestRunnerCallbacks.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Testing/TestStatusAdaptor.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/Testing/TestStatusAdaptor.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/UnityInstallation.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/UnityInstallation.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/UsageUtility.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/UsageUtility.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/VSWhere.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/VSWhere/vswhere.exe rename Assets/Third Party/AmplifyShaderEditor/Examples/HDRP Samples 12x.unitypackage.meta => Packages/com.unity.ide.trae@0231d4b833/Editor/VSWhere/vswhere.exe.meta (74%) create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/VersionPair.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/VersionPair.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/VisualStudioCodiumInstallation.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/VisualStudioCodiumInstallation.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/VisualStudioCursorInstallation.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/VisualStudioCursorInstallation.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/VisualStudioEditor.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/VisualStudioEditor.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/VisualStudioInstallation.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/VisualStudioInstallation.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/VisualStudioIntegration.cs create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/VisualStudioIntegration.cs.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/com.unity.ide.visualstudio.asmdef create mode 100644 Packages/com.unity.ide.trae@0231d4b833/Editor/com.unity.ide.visualstudio.asmdef.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/LICENSE.md create mode 100644 Packages/com.unity.ide.trae@0231d4b833/LICENSE.md.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/README.md create mode 100644 Packages/com.unity.ide.trae@0231d4b833/README.md.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/ThirdPartyNotices.md create mode 100644 Packages/com.unity.ide.trae@0231d4b833/ThirdPartyNotices.md.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/ValidationConfig.json create mode 100644 Packages/com.unity.ide.trae@0231d4b833/ValidationConfig.json.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/ValidationExceptions.json create mode 100644 Packages/com.unity.ide.trae@0231d4b833/ValidationExceptions.json.meta create mode 100644 Packages/com.unity.ide.trae@0231d4b833/package.json create mode 100644 Packages/com.unity.ide.trae@0231d4b833/package.json.meta create mode 100644 sdcard/王子的荣耀/�豸�ͺ�.txt diff --git a/.gitignore b/.gitignore index 94bc442b..aedcfe25 100644 --- a/.gitignore +++ b/.gitignore @@ -69,4 +69,5 @@ crashlytics-build.properties # Temporary auto-generated Android Assets /[Aa]ssets/[Ss]treamingAssets/aa.meta -/[Aa]ssets/[Ss]treamingAssets/aa/* \ No newline at end of file +/[Aa]ssets/[Ss]treamingAssets/aa/* +了不起的甲骨文录屏(全部).mp4 diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..ddb6ff85 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,5 @@ +{ + "recommendations": [ + "visualstudiotoolsforunity.vstuc" + ] +} diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 00000000..da60e25a --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,10 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Attach to Unity", + "type": "vstuc", + "request": "attach" + } + ] +} \ No newline at end of file diff --git a/Assets - 快捷方式.lnk b/Assets - 快捷方式.lnk deleted file mode 100644 index 532fc92b43ed2e6e4526db57a32c1ef9698f9319..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1515 zcmchXYeZ$m9d##T#LshijjF9&jcP1{<#eVgT` zKl))1X^3bRsW?K)(h>~(;g6&uN)#f5AQiPAT@0f4e7m&S?O*5PJ?A~Q=Y7w6-t!d$ zfG9o;Yk)DKhQiAb0SxNO<<4aHjv3LB&qFulEi4WpMg(mMpk+%ud*Tdo=Rrgjq zCHq)Ul2e<{|pw`D>Nv4>AvdY4vrK*dFF7?rxtIB15nzADq_avYMm(+WmPzIGy z2u84g9?YNv2Ux)b2H?PnOC?a_vyxf85R2X(le6+%YDE*Uva^IG(Spw_BU0S6G1vs^ z6CW>u4ViLaQF6hKWEMXf1qoCI_`@0o_y!B7);sk8hkSf$*Uz8rm*Ae&@K6Jz-@gG5 z4R`_$)OZRfN+@|8$qoZ=bvZc0@5%E?skmoLC>Y+$_hCE?NVkFuH4b%3KH>8@o9vHb zKEZ)nwqD#Ac$mZg;Y*jQDSe_ybD3=O=!bBOnV11iMm$M$k}a1-7)DHt=ViR@>e@ zSFPP>%ZK8@rE1G+z3NGVXZGr&JI5RA7VOgL<=ED)xrsWri~MUo8J}?^@_UdiE7z4T zvZK?7p|z;@%hcv>zBa9u+N6f*T^v9Oj=dDpF>4g)GJRL%ukV5UA&&{hIW+&sFL|?v zI)J4Kg*wTu?7F{Hl*II`gw?oj&i8G{apC1qCpVx3M-aP0a>h_aNh`^-6#9!wL{)eW zbQe`x44+E#E4{0uu`jF+{J^m9L810u)E8RvQK-Wn@i}$>6`Q74qs;0qxZvK3<7ems4a%gu@nK2*?&8}~Be8?4iwZjK GFFycjR5I28 diff --git a/Assets/Bakery/ftGlobalStorage.asset b/Assets/Bakery/ftGlobalStorage.asset index cea2b7b1..73476c07 100644 --- a/Assets/Bakery/ftGlobalStorage.asset +++ b/Assets/Bakery/ftGlobalStorage.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c58ad790177b409830c169ebd572f92ccdca360a71bbb2b8551a93997030c054 -size 48621 +oid sha256:1539b4acbc775e7c72dba4652d8a70784d8719f47670de93240d5f903f388c26 +size 51961 diff --git a/Assets/Bakery/shader/Bakery_ShaderGraphHDRP.unitypackage.meta b/Assets/Bakery/shader/Bakery_ShaderGraphHDRP.unitypackage.meta deleted file mode 100644 index a023a5e6..00000000 --- a/Assets/Bakery/shader/Bakery_ShaderGraphHDRP.unitypackage.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: b1b95168f2f925246bf670cb2bc2bf79 -timeCreated: 1573412449 -licenseType: Store -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Bakery/shader/Bakery_ShaderGraphURP.unitypackage.meta b/Assets/Bakery/shader/Bakery_ShaderGraphURP.unitypackage.meta deleted file mode 100644 index c57a21cc..00000000 --- a/Assets/Bakery/shader/Bakery_ShaderGraphURP.unitypackage.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: ec3754b09ac1517429546e96e7b25708 -timeCreated: 1606124300 -licenseType: Store -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Materials/HandsDefaultMaterial.mat b/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Materials/HandsDefaultMaterial.mat deleted file mode 100644 index 04b02ad7..00000000 --- a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Materials/HandsDefaultMaterial.mat +++ /dev/null @@ -1,79 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: HandsDefaultMaterial - m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_ShaderKeywords: _ALPHABLEND_ON - 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_Floats: - - _BumpScale: 1 - - _Cutoff: 0.5 - - _DetailNormalMapScale: 1 - - _DstBlend: 10 - - _GlossMapScale: 1 - - _Glossiness: 0 - - _GlossyReflections: 1 - - _Metallic: 0 - - _Mode: 2 - - _OcclusionStrength: 1 - - _Parallax: 0.02 - - _SmoothnessTextureChannel: 0 - - _SpecularHighlights: 1 - - _SrcBlend: 5 - - _UVSec: 0 - - _ZWrite: 0 - m_Colors: - - _Color: {r: 0.66518503, g: 0.66518503, b: 0.66518503, a: 0.64705884} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - m_BuildTextureStacks: [] diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Materials/Red.mat b/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Materials/Red.mat deleted file mode 100644 index a35c5b13..00000000 --- a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Materials/Red.mat +++ /dev/null @@ -1,78 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: Red - m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_ShaderKeywords: _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: -1 - stringTagMap: {} - disabledShaderPasses: [] - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _BumpMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailAlbedoMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailNormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ParallaxMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - _BumpScale: 1 - - _Cutoff: 0.5 - - _DetailNormalMapScale: 1 - - _DstBlend: 0 - - _GlossMapScale: 1 - - _Glossiness: 0.5 - - _GlossyReflections: 1 - - _Metallic: 0 - - _Mode: 0 - - _OcclusionStrength: 1 - - _Parallax: 0.02 - - _SmoothnessTextureChannel: 1 - - _SpecularHighlights: 1 - - _SrcBlend: 1 - - _UVSec: 0 - - _ZWrite: 1 - m_Colors: - - _Color: {r: 1, g: 0, b: 0, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - m_BuildTextureStacks: [] diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Materials/White.mat b/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Materials/White.mat deleted file mode 100644 index 1c152bbe..00000000 --- a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Materials/White.mat +++ /dev/null @@ -1,78 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: White - m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_ShaderKeywords: _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: -1 - stringTagMap: {} - disabledShaderPasses: [] - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _BumpMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailAlbedoMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailNormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ParallaxMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - _BumpScale: 1 - - _Cutoff: 0.5 - - _DetailNormalMapScale: 1 - - _DstBlend: 0 - - _GlossMapScale: 1 - - _Glossiness: 0.5 - - _GlossyReflections: 1 - - _Metallic: 0 - - _Mode: 0 - - _OcclusionStrength: 1 - - _Parallax: 0.02 - - _SmoothnessTextureChannel: 1 - - _SpecularHighlights: 1 - - _SrcBlend: 1 - - _UVSec: 0 - - _ZWrite: 1 - m_Colors: - - _Color: {r: 0.96862745, g: 0.96862745, b: 0.96862745, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - m_BuildTextureStacks: [] diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2.meta b/Assets/Samples/XR Hands/1.5.0.meta similarity index 77% rename from Assets/Samples/XR Interaction Toolkit/2.5.2.meta rename to Assets/Samples/XR Hands/1.5.0.meta index eed7ca52..b1ab6c67 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2.meta +++ b/Assets/Samples/XR Hands/1.5.0.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 4ff62424fed81d44f84fa198683a61f4 +guid: 271eb5dfca4564f448d3fff94a6e5c40 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer.meta b/Assets/Samples/XR Hands/1.5.0/HandVisualizer.meta similarity index 77% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer.meta rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer.meta index 78ad8d94..ab1b75ba 100644 --- a/Assets/Samples/XR Hands/1.3.0/HandVisualizer.meta +++ b/Assets/Samples/XR Hands/1.5.0/HandVisualizer.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 05bfd248ba5534649b1ab682957b4797 +guid: e8a91104a2a89eb45bcbd9f0791d9afb folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/.sample.json b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/.sample.json similarity index 100% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer/.sample.json rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/.sample.json diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/HandVisualizer.unity b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/HandVisualizer.unity similarity index 97% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer/HandVisualizer.unity rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/HandVisualizer.unity index d1851977..85a19f17 100644 --- a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/HandVisualizer.unity +++ b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/HandVisualizer.unity @@ -130,7 +130,7 @@ LightingSettings: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: - serializedVersion: 3 + serializedVersion: 4 m_GIWorkflowMode: 1 m_EnableBakedLightmaps: 1 m_EnableRealtimeLightmaps: 0 @@ -143,7 +143,7 @@ LightingSettings: m_LightmapMaxSize: 1024 m_BakeResolution: 40 m_Padding: 2 - m_TextureCompression: 1 + m_LightmapCompression: 2 m_AO: 0 m_AOMaxDistance: 1 m_CompAOExponent: 1 @@ -184,6 +184,7 @@ LightingSettings: m_PVRFilteringAtrousPositionSigmaDirect: 0.5 m_PVRFilteringAtrousPositionSigmaIndirect: 2 m_PVRFilteringAtrousPositionSigmaAO: 1 + m_PVRTiledBaking: 0 --- !u!1 &92641028 stripped GameObject: m_CorrespondingSourceObject: {fileID: 3133494152545806682, guid: 3f7511fbc40ae7a4b89c3298a3de199d, type: 3} @@ -224,6 +225,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 944581975} m_RootOrder: 0 @@ -311,7 +313,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_TrackingType: 0 m_UpdateType: 0 - m_IgnoreTrackingState: 0 m_PositionInput: m_UseReference: 0 m_Action: @@ -368,18 +369,6 @@ MonoBehaviour: 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: c977d269-d657-44ef-bd6a-27abbc374a51 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} m_PositionAction: m_Name: m_Type: 0 @@ -484,6 +473,7 @@ Transform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 944581975} m_RootOrder: 1 @@ -501,7 +491,6 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_UseOptimizedControls: 0 - m_Origin: {fileID: 1085439596} m_LeftHandMesh: {fileID: 1048441851} m_RightHandMesh: {fileID: 92641028} m_HandMeshMaterial: {fileID: 2100000, guid: 613690cd962241049a0ec289a6ff835e, type: 2} @@ -519,9 +508,12 @@ MonoBehaviour: m_GameObject: {fileID: 935940900} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dd65cb8a4b261f34a969e4b0a69791a1, type: 3} + m_Script: {fileID: 11500000, guid: ac5903b776721d74786a2e43f00b949a, type: 3} m_Name: m_EditorClassIdentifier: + m_ProcessorExampleMode: 0 + m_LeftHandSmoothingFactor: 16 + m_RightHandSmoothingFactor: 16 --- !u!1 &944581974 GameObject: m_ObjectHideFlags: 0 @@ -548,6 +540,7 @@ Transform: 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: - {fileID: 215855081} - {fileID: 935940901} @@ -667,6 +660,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 944581975} m_Father: {fileID: 0} @@ -761,6 +755,7 @@ Transform: m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} m_LocalPosition: {x: 0, y: 3, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 0 diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/HandVisualizer.unity.meta b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/HandVisualizer.unity.meta similarity index 100% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer/HandVisualizer.unity.meta rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/HandVisualizer.unity.meta diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Materials.meta b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials.meta similarity index 100% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer/Materials.meta rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Controls_Black.mat b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials/Blue.mat similarity index 73% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Controls_Black.mat rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials/Blue.mat index f865c931..17bbc756 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Controls_Black.mat +++ b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials/Blue.mat @@ -1,6 +1,6 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!114 &-6052782388386979577 +--- !u!114 &-7628788528051855285 MonoBehaviour: m_ObjectHideFlags: 11 m_CorrespondingSourceObject: {fileID: 0} @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 4 + version: 5 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -20,11 +20,12 @@ Material: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: Controls_Black + m_Name: Blue m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_ValidKeywords: [] + m_ValidKeywords: + - _EMISSION m_InvalidKeywords: [] - m_LightmapFlags: 4 + m_LightmapFlags: 0 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 m_CustomRenderQueue: -1 @@ -33,6 +34,10 @@ Material: m_SavedProperties: serializedVersion: 3 m_TexEnvs: + - _AlphaTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} - _BaseMap: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} @@ -91,37 +96,64 @@ Material: m_Offset: {x: 0, y: 0} m_Ints: [] m_Floats: + - PixelSnap: 0 - _AlphaClip: 0 - _Blend: 0 + - _BlendOp: 0 - _BumpScale: 1 + - _CameraFadingEnabled: 0 + - _CameraFarFadeDistance: 2 + - _CameraNearFadeDistance: 1 - _ClearCoatMask: 0 - _ClearCoatSmoothness: 0 + - _ColorMask: 15 - _Cull: 2 - _Cutoff: 0.5 - _DetailAlbedoMapScale: 1 - _DetailNormalMapScale: 1 + - _DistortionBlend: 0.5 + - _DistortionEnabled: 0 + - _DistortionStrength: 1 + - _DistortionStrengthScaled: 0 - _DstBlend: 0 + - _EmissionEnabled: 0 + - _EnableExternalAlpha: 0 - _EnvironmentReflections: 1 + - _FlipbookMode: 0 - _GlossMapScale: 1 - _Glossiness: 0 - _GlossyReflections: 1 + - _LightingEnabled: 1 - _Metallic: 0 - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - _QueueOffset: 0 - _ReceiveShadows: 1 - - _Smoothness: 0.672 + - _Smoothness: 0.5 - _SmoothnessTextureChannel: 0 + - _SoftParticlesEnabled: 0 + - _SoftParticlesFarFadeDistance: 1 + - _SoftParticlesNearFadeDistance: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 - _Surface: 0 - _UVSec: 0 + - _UseUIAlphaClip: 0 - _WorkflowMode: 1 - _ZWrite: 1 m_Colors: - - _BaseColor: {r: 0, g: 0, b: 0, a: 1} - - _Color: {r: 0.18460976, g: 0.18460976, b: 0.18460976, a: 1} + - _BaseColor: {r: 0, g: 0, b: 1, a: 1} + - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} + - _Color: {r: 0, g: 0, b: 1, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _Flip: {r: 1, g: 1, b: 1, a: 1} + - _RendererColor: {r: 1, g: 1, b: 1, a: 1} + - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Materials/Blue.mat.meta b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials/Blue.mat.meta similarity index 100% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer/Materials/Blue.mat.meta rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials/Blue.mat.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/PrimitivesYellow.mat b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials/Green.mat similarity index 72% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/PrimitivesYellow.mat rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials/Green.mat index ecff591f..17b20ab6 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/PrimitivesYellow.mat +++ b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials/Green.mat @@ -7,12 +7,12 @@ Material: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: PrimitivesYellow + m_Name: Green m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} m_ValidKeywords: - - _GLOSSYREFLECTIONS_OFF + - _EMISSION m_InvalidKeywords: [] - m_LightmapFlags: 4 + m_LightmapFlags: 0 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 m_CustomRenderQueue: -1 @@ -21,6 +21,10 @@ Material: m_SavedProperties: serializedVersion: 3 m_TexEnvs: + - _AlphaTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} - _BaseMap: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} @@ -79,41 +83,68 @@ Material: m_Offset: {x: 0, y: 0} m_Ints: [] m_Floats: + - PixelSnap: 0 - _AlphaClip: 0 - _Blend: 0 + - _BlendOp: 0 - _BumpScale: 1 + - _CameraFadingEnabled: 0 + - _CameraFarFadeDistance: 2 + - _CameraNearFadeDistance: 1 - _ClearCoatMask: 0 - _ClearCoatSmoothness: 0 + - _ColorMask: 15 - _Cull: 2 - _Cutoff: 0.5 - _DetailAlbedoMapScale: 1 - _DetailNormalMapScale: 1 + - _DistortionBlend: 0.5 + - _DistortionEnabled: 0 + - _DistortionStrength: 1 + - _DistortionStrengthScaled: 0 - _DstBlend: 0 + - _EmissionEnabled: 0 + - _EnableExternalAlpha: 0 - _EnvironmentReflections: 1 - - _GlossMapScale: 0 + - _FlipbookMode: 0 + - _GlossMapScale: 1 - _Glossiness: 0 - - _GlossyReflections: 0 + - _GlossyReflections: 1 + - _LightingEnabled: 1 - _Metallic: 0 - _Mode: 0 - _OcclusionStrength: 1 - - _Parallax: 0.005 + - _Parallax: 0.02 - _QueueOffset: 0 - _ReceiveShadows: 1 - _Smoothness: 0.5 - _SmoothnessTextureChannel: 0 + - _SoftParticlesEnabled: 0 + - _SoftParticlesFarFadeDistance: 1 + - _SoftParticlesNearFadeDistance: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 - _Surface: 0 - _UVSec: 0 + - _UseUIAlphaClip: 0 - _WorkflowMode: 1 - _ZWrite: 1 m_Colors: - - _BaseColor: {r: 0.94509804, g: 1, b: 0.5803922, a: 1} - - _Color: {r: 1, g: 0.9212777, b: 0.5019608, a: 1} + - _BaseColor: {r: 0, g: 1, b: 0, a: 1} + - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} + - _Color: {r: 0, g: 1, b: 0, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _Flip: {r: 1, g: 1, b: 1, a: 1} + - _RendererColor: {r: 1, g: 1, b: 1, a: 1} + - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] ---- !u!114 &7412609096850590555 +--- !u!114 &9064977523446290879 MonoBehaviour: m_ObjectHideFlags: 11 m_CorrespondingSourceObject: {fileID: 0} @@ -125,4 +156,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 4 + version: 5 diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Materials/Green.mat.meta b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials/Green.mat.meta similarity index 100% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer/Materials/Green.mat.meta rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials/Green.mat.meta diff --git a/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials/HandsDefaultMaterial.mat b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials/HandsDefaultMaterial.mat new file mode 100644 index 00000000..704258c2 --- /dev/null +++ b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials/HandsDefaultMaterial.mat @@ -0,0 +1,164 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-6565127186501960882 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 5 +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: HandsDefaultMaterial + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ValidKeywords: + - _ALPHABLEND_ON + - _EMISSION + m_InvalidKeywords: + - _SURFACE_TYPE_TRANSPARENT + m_LightmapFlags: 0 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3000 + stringTagMap: + RenderType: Transparent + disabledShaderPasses: + - DepthOnly + - SHADOWCASTER + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AlphaTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _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} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - PixelSnap: 0 + - _AlphaClip: 0 + - _Blend: 0 + - _BlendOp: 0 + - _BumpScale: 1 + - _CameraFadingEnabled: 0 + - _CameraFarFadeDistance: 2 + - _CameraNearFadeDistance: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _ColorMask: 15 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DistortionBlend: 0.5 + - _DistortionEnabled: 0 + - _DistortionStrength: 1 + - _DistortionStrengthScaled: 0 + - _DstBlend: 10 + - _EmissionEnabled: 0 + - _EnableExternalAlpha: 0 + - _EnvironmentReflections: 1 + - _FlipbookMode: 0 + - _GlossMapScale: 1 + - _Glossiness: 0 + - _GlossyReflections: 1 + - _LightingEnabled: 1 + - _Metallic: 0 + - _Mode: 2 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0 + - _SmoothnessTextureChannel: 0 + - _SoftParticlesEnabled: 0 + - _SoftParticlesFarFadeDistance: 1 + - _SoftParticlesNearFadeDistance: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 5 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + - _Surface: 1 + - _UVSec: 0 + - _UseUIAlphaClip: 0 + - _WorkflowMode: 1 + - _ZWrite: 0 + m_Colors: + - _BaseColor: {r: 0.66518503, g: 0.66518503, b: 0.66518503, a: 0.64705884} + - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} + - _Color: {r: 0.66518503, g: 0.66518503, b: 0.66518503, a: 0.64705884} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _Flip: {r: 1, g: 1, b: 1, a: 1} + - _RendererColor: {r: 1, g: 1, b: 1, a: 1} + - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Materials/HandsDefaultMaterial.mat.meta b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials/HandsDefaultMaterial.mat.meta similarity index 100% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer/Materials/HandsDefaultMaterial.mat.meta rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials/HandsDefaultMaterial.mat.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/AccentButton.mat b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials/Red.mat similarity index 74% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/AccentButton.mat rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials/Red.mat index 5072ae17..b3230480 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/AccentButton.mat +++ b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials/Red.mat @@ -1,18 +1,5 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!114 &-8120562580438748798 -MonoBehaviour: - m_ObjectHideFlags: 11 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} - m_Name: - m_EditorClassIdentifier: - version: 4 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -20,11 +7,12 @@ Material: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: AccentButton + m_Name: Red m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_ValidKeywords: [] + m_ValidKeywords: + - _EMISSION m_InvalidKeywords: [] - m_LightmapFlags: 4 + m_LightmapFlags: 0 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 m_CustomRenderQueue: -1 @@ -33,6 +21,10 @@ Material: m_SavedProperties: serializedVersion: 3 m_TexEnvs: + - _AlphaTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} - _BaseMap: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} @@ -91,20 +83,34 @@ Material: m_Offset: {x: 0, y: 0} m_Ints: [] m_Floats: + - PixelSnap: 0 - _AlphaClip: 0 - _Blend: 0 + - _BlendOp: 0 - _BumpScale: 1 + - _CameraFadingEnabled: 0 + - _CameraFarFadeDistance: 2 + - _CameraNearFadeDistance: 1 - _ClearCoatMask: 0 - _ClearCoatSmoothness: 0 + - _ColorMask: 15 - _Cull: 2 - _Cutoff: 0.5 - _DetailAlbedoMapScale: 1 - _DetailNormalMapScale: 1 + - _DistortionBlend: 0.5 + - _DistortionEnabled: 0 + - _DistortionStrength: 1 + - _DistortionStrengthScaled: 0 - _DstBlend: 0 + - _EmissionEnabled: 0 + - _EnableExternalAlpha: 0 - _EnvironmentReflections: 1 + - _FlipbookMode: 0 - _GlossMapScale: 1 - _Glossiness: 0 - _GlossyReflections: 1 + - _LightingEnabled: 1 - _Metallic: 0 - _Mode: 0 - _OcclusionStrength: 1 @@ -113,15 +119,41 @@ Material: - _ReceiveShadows: 1 - _Smoothness: 0.5 - _SmoothnessTextureChannel: 0 + - _SoftParticlesEnabled: 0 + - _SoftParticlesFarFadeDistance: 1 + - _SoftParticlesNearFadeDistance: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 - _Surface: 0 - _UVSec: 0 + - _UseUIAlphaClip: 0 - _WorkflowMode: 1 - _ZWrite: 1 m_Colors: - - _BaseColor: {r: 0.9275999, g: 0.58167726, b: 0.58167726, a: 1} - - _Color: {r: 0.7169812, g: 0.15218942, b: 0.15218942, a: 1} + - _BaseColor: {r: 1, g: 0, b: 0, a: 1} + - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} + - _Color: {r: 1, g: 0, b: 0, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _Flip: {r: 1, g: 1, b: 1, a: 1} + - _RendererColor: {r: 1, g: 1, b: 1, a: 1} + - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] +--- !u!114 &2151432713694262380 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 5 diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Materials/Red.mat.meta b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials/Red.mat.meta similarity index 100% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer/Materials/Red.mat.meta rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials/Red.mat.meta diff --git a/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials/TransparentRed.mat b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials/TransparentRed.mat new file mode 100644 index 00000000..b95247f8 --- /dev/null +++ b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials/TransparentRed.mat @@ -0,0 +1,165 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: TransparentRed + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: + - _ALPHAPREMULTIPLY_ON + - _EMISSION + m_InvalidKeywords: [] + m_LightmapFlags: 0 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3000 + stringTagMap: + RenderType: Transparent + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AlphaTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _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} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - PixelSnap: 0 + - _AlphaClip: 0 + - _Blend: 0 + - _BlendOp: 0 + - _BumpScale: 1 + - _CameraFadingEnabled: 0 + - _CameraFarFadeDistance: 2 + - _CameraNearFadeDistance: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _ColorMask: 15 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DistortionBlend: 0.5 + - _DistortionEnabled: 0 + - _DistortionStrength: 1 + - _DistortionStrengthScaled: 0 + - _DstBlend: 10 + - _EmissionEnabled: 0 + - _EnableExternalAlpha: 0 + - _EnvironmentReflections: 1 + - _FlipbookMode: 0 + - _GlossMapScale: 1 + - _Glossiness: 0 + - _GlossyReflections: 1 + - _LightingEnabled: 1 + - _Metallic: 0 + - _Mode: 3 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SoftParticlesEnabled: 0 + - _SoftParticlesFarFadeDistance: 1 + - _SoftParticlesNearFadeDistance: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + - _Surface: 0 + - _UVSec: 0 + - _UseUIAlphaClip: 0 + - _WorkflowMode: 1 + - _ZWrite: 0 + m_Colors: + - _BaseColor: {r: 1, g: 0, b: 0, a: 1} + - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} + - _Color: {r: 1, g: 0, b: 0, a: 0.54509807} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _Flip: {r: 1, g: 1, b: 1, a: 1} + - _RendererColor: {r: 1, g: 1, b: 1, a: 1} + - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] + m_AllowLocking: 1 +--- !u!114 &2151432713694262380 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 5 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/PrimitivesBlue.mat.meta b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials/TransparentRed.mat.meta similarity index 79% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/PrimitivesBlue.mat.meta rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials/TransparentRed.mat.meta index c8ff740b..b9b16d41 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/PrimitivesBlue.mat.meta +++ b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials/TransparentRed.mat.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 3a84a7b91ec88714486e0c4cc9a5dc01 +guid: d149182fa7aa1dc47bd32b2a6da80ec9 NativeFormatImporter: externalObjects: {} mainObjectFileID: 2100000 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/ChessPiece.mat b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials/White.mat similarity index 72% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/ChessPiece.mat rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials/White.mat index 7d1afaf1..eff54015 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/ChessPiece.mat +++ b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials/White.mat @@ -7,12 +7,12 @@ Material: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: ChessPiece + m_Name: White m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} m_ValidKeywords: - - _GLOSSYREFLECTIONS_OFF + - _EMISSION m_InvalidKeywords: [] - m_LightmapFlags: 4 + m_LightmapFlags: 0 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 m_CustomRenderQueue: -1 @@ -21,6 +21,10 @@ Material: m_SavedProperties: serializedVersion: 3 m_TexEnvs: + - _AlphaTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} - _BaseMap: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} @@ -79,41 +83,68 @@ Material: m_Offset: {x: 0, y: 0} m_Ints: [] m_Floats: + - PixelSnap: 0 - _AlphaClip: 0 - _Blend: 0 + - _BlendOp: 0 - _BumpScale: 1 + - _CameraFadingEnabled: 0 + - _CameraFarFadeDistance: 2 + - _CameraNearFadeDistance: 1 - _ClearCoatMask: 0 - _ClearCoatSmoothness: 0 + - _ColorMask: 15 - _Cull: 2 - _Cutoff: 0.5 - _DetailAlbedoMapScale: 1 - _DetailNormalMapScale: 1 + - _DistortionBlend: 0.5 + - _DistortionEnabled: 0 + - _DistortionStrength: 1 + - _DistortionStrengthScaled: 0 - _DstBlend: 0 + - _EmissionEnabled: 0 + - _EnableExternalAlpha: 0 - _EnvironmentReflections: 1 - - _GlossMapScale: 0 + - _FlipbookMode: 0 + - _GlossMapScale: 1 - _Glossiness: 0 - - _GlossyReflections: 0 + - _GlossyReflections: 1 + - _LightingEnabled: 1 - _Metallic: 0 - _Mode: 0 - _OcclusionStrength: 1 - - _Parallax: 0.005 + - _Parallax: 0.02 - _QueueOffset: 0 - _ReceiveShadows: 1 - _Smoothness: 0.5 - _SmoothnessTextureChannel: 0 + - _SoftParticlesEnabled: 0 + - _SoftParticlesFarFadeDistance: 1 + - _SoftParticlesNearFadeDistance: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 - _Surface: 0 - _UVSec: 0 + - _UseUIAlphaClip: 0 - _WorkflowMode: 1 - _ZWrite: 1 m_Colors: - - _BaseColor: {r: 0.94509804, g: 1, b: 0.5803922, a: 1} - - _Color: {r: 0.92156863, g: 0.9490196, b: 1, a: 1} + - _BaseColor: {r: 0.9686274, g: 0.9686274, b: 0.9686274, a: 1} + - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} + - _Color: {r: 0.9686274, g: 0.9686274, b: 0.9686274, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _Flip: {r: 1, g: 1, b: 1, a: 1} + - _RendererColor: {r: 1, g: 1, b: 1, a: 1} + - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] ---- !u!114 &7412609096850590555 +--- !u!114 &447292672560585647 MonoBehaviour: m_ObjectHideFlags: 11 m_CorrespondingSourceObject: {fileID: 0} @@ -125,4 +156,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 4 + version: 5 diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Materials/White.mat.meta b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials/White.mat.meta similarity index 100% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer/Materials/White.mat.meta rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/Materials/White.mat.meta diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Models.meta b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Models.meta similarity index 100% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer/Models.meta rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/Models.meta diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Models/LeftHand.fbx b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Models/LeftHand.fbx similarity index 100% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer/Models/LeftHand.fbx rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/Models/LeftHand.fbx diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Models/LeftHand.fbx.meta b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Models/LeftHand.fbx.meta similarity index 100% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer/Models/LeftHand.fbx.meta rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/Models/LeftHand.fbx.meta diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Models/RightHand.fbx b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Models/RightHand.fbx similarity index 100% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer/Models/RightHand.fbx rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/Models/RightHand.fbx diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Models/RightHand.fbx.meta b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Models/RightHand.fbx.meta similarity index 100% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer/Models/RightHand.fbx.meta rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/Models/RightHand.fbx.meta diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Prefabs.meta b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Prefabs.meta similarity index 100% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer/Prefabs.meta rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/Prefabs.meta diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Prefabs/Joint.prefab b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Prefabs/Joint.prefab similarity index 91% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer/Prefabs/Joint.prefab rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/Prefabs/Joint.prefab index a07a9bd3..9c5829bc 100644 --- a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Prefabs/Joint.prefab +++ b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Prefabs/Joint.prefab @@ -25,12 +25,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 734748737383922805} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0.005, z: 0} m_LocalScale: {x: 0.005, y: 0.005, z: 0.005} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4831140773533800019} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &6434675759608581130 MeshFilter: @@ -51,6 +52,7 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 @@ -106,12 +108,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 998394589122162542} + serializedVersion: 2 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.01, z: 0.01} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 8123511170798101446} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &1887305460834055526 MeshFilter: @@ -132,6 +135,7 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 @@ -187,12 +191,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1884330011090648049} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0.005, y: 0, z: 0} m_LocalScale: {x: 0.005, y: 0.005, z: 0.005} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4831140773533800019} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &1819206441057094587 MeshFilter: @@ -213,6 +218,7 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 @@ -253,6 +259,7 @@ GameObject: m_Component: - component: {fileID: 8123511170798101446} - component: {fileID: 2704860076515533465} + - component: {fileID: 7456416708721142674} m_Layer: 0 m_Name: Joint m_TagString: Untagged @@ -267,17 +274,19 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6507399986997092475} + serializedVersion: 2 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: 6518585025970797200} - {fileID: 4831140773533800019} m_Father: {fileID: 0} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!120 &2704860076515533465 LineRenderer: + serializedVersion: 2 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} @@ -287,6 +296,7 @@ LineRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 0 m_LightProbeUsage: 0 m_ReflectionProbeUsage: 0 @@ -364,16 +374,35 @@ LineRenderer: atime6: 0 atime7: 0 m_Mode: 0 + m_ColorSpace: -1 m_NumColorKeys: 2 m_NumAlphaKeys: 2 numCornerVertices: 0 numCapVertices: 0 alignment: 0 textureMode: 0 + textureScale: {x: 1, y: 1} shadowBias: 0.5 generateLightingData: 0 + m_MaskInteraction: 0 m_UseWorldSpace: 1 m_Loop: 0 + m_ApplyActiveColorSpace: 0 +--- !u!114 &7456416708721142674 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6507399986997092475} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6e1c395ff62a3a14dbeb293298bb46bf, type: 3} + m_Name: + m_EditorClassIdentifier: + m_JointVisual: {fileID: 998394589122162542} + m_HighFidelityJointMaterial: {fileID: 2100000, guid: c3474c208278e814cb8d1c29aa806e81, type: 2} + m_LowFidelityJointMaterial: {fileID: 2100000, guid: d149182fa7aa1dc47bd32b2a6da80ec9, type: 2} --- !u!1 &6513021459858911318 GameObject: m_ObjectHideFlags: 0 @@ -399,12 +428,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6513021459858911318} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0.005} m_LocalScale: {x: 0.005, y: 0.005, z: 0.005} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4831140773533800019} - m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &8027412990048445551 MeshFilter: @@ -425,6 +455,7 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 @@ -478,13 +509,14 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6855854388140184776} + serializedVersion: 2 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: 5222184468966665097} - {fileID: 2107813110650148675} - {fileID: 791700661656661422} m_Father: {fileID: 8123511170798101446} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Prefabs/Joint.prefab.meta b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Prefabs/Joint.prefab.meta similarity index 100% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer/Prefabs/Joint.prefab.meta rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/Prefabs/Joint.prefab.meta diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Prefabs/Left Hand Tracking.prefab b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Prefabs/Left Hand Tracking.prefab similarity index 100% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer/Prefabs/Left Hand Tracking.prefab rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/Prefabs/Left Hand Tracking.prefab diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Prefabs/Left Hand Tracking.prefab.meta b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Prefabs/Left Hand Tracking.prefab.meta similarity index 100% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer/Prefabs/Left Hand Tracking.prefab.meta rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/Prefabs/Left Hand Tracking.prefab.meta diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Prefabs/Right Hand Tracking.prefab b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Prefabs/Right Hand Tracking.prefab similarity index 100% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer/Prefabs/Right Hand Tracking.prefab rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/Prefabs/Right Hand Tracking.prefab diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Prefabs/Right Hand Tracking.prefab.meta b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Prefabs/Right Hand Tracking.prefab.meta similarity index 100% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer/Prefabs/Right Hand Tracking.prefab.meta rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/Prefabs/Right Hand Tracking.prefab.meta diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Prefabs/VelocityPrefab.prefab b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Prefabs/VelocityPrefab.prefab similarity index 100% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer/Prefabs/VelocityPrefab.prefab rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/Prefabs/VelocityPrefab.prefab diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Prefabs/VelocityPrefab.prefab.meta b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Prefabs/VelocityPrefab.prefab.meta similarity index 100% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer/Prefabs/VelocityPrefab.prefab.meta rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/Prefabs/VelocityPrefab.prefab.meta diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/README.md b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/README.md similarity index 65% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer/README.md rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/README.md index 0ed5f6cf..5704d731 100644 --- a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/README.md +++ b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/README.md @@ -1,3 +1,3 @@ # Hand Visualizer Sample -Demonstrates driving meshes and free-floating debug-draw objects on an XR Origin by using `XRHandSubsystem`. +Demonstrates driving meshes and free-floating debug-draw objects on an XR Origin by using `XRHandSubsystem`. diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/README.md.meta b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/README.md.meta similarity index 100% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer/README.md.meta rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/README.md.meta diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Scripts.meta b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Scripts.meta similarity index 100% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer/Scripts.meta rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/Scripts.meta diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Scripts/HandProcessor.cs b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Scripts/HandProcessor.cs similarity index 99% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer/Scripts/HandProcessor.cs rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/Scripts/HandProcessor.cs index d22da74b..3c575bc2 100644 --- a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Scripts/HandProcessor.cs +++ b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Scripts/HandProcessor.cs @@ -99,7 +99,7 @@ namespace UnityEngine.XR.Hands.Samples.VisualizerSample currentLeftHandPosition = Vector3.Lerp(m_LastLeftHandPosition, currentLeftHandPosition, tweenAmt); m_LeftHandPose.position = currentLeftHandPosition; m_LeftHandPose.rotation = leftPose.rotation; - + leftHand.SetRootPose(m_LeftHandPose); subsystem.SetCorrespondingHand(leftHand); } @@ -116,7 +116,7 @@ namespace UnityEngine.XR.Hands.Samples.VisualizerSample currentRightHandPosition = Vector3.Lerp(m_LastRightHandPosition, currentRightHandPosition, tweenAmt); m_RightHandPose.position = currentRightHandPosition; m_RightHandPose.rotation = rightPose.rotation; - + rightHand.SetRootPose(m_RightHandPose); subsystem.SetCorrespondingHand(rightHand); } @@ -129,7 +129,7 @@ namespace UnityEngine.XR.Hands.Samples.VisualizerSample { var leftHand = subsystem.leftHand; var leftHandPose = leftHand.rootPose; - + var rightHand = subsystem.rightHand; var rightHandPose = rightHand.rootPose; diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Scripts/HandProcessor.cs.meta b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Scripts/HandProcessor.cs.meta similarity index 100% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer/Scripts/HandProcessor.cs.meta rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/Scripts/HandProcessor.cs.meta diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Scripts/HandVisualizer.cs b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Scripts/HandVisualizer.cs similarity index 98% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer/Scripts/HandVisualizer.cs rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/Scripts/HandVisualizer.cs index 5ecd3aac..37a556db 100644 --- a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Scripts/HandVisualizer.cs +++ b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Scripts/HandVisualizer.cs @@ -328,6 +328,7 @@ namespace UnityEngine.XR.Hands.Samples.VisualizerSample GameObject[] m_DrawJoints = new GameObject[XRHandJointID.EndMarker.ToIndex()]; GameObject[] m_VelocityParents = new GameObject[XRHandJointID.EndMarker.ToIndex()]; LineRenderer[] m_Lines = new LineRenderer[XRHandJointID.EndMarker.ToIndex()]; + JointVisualizer[] m_JointVisualizers = new JointVisualizer[XRHandJointID.EndMarker.ToIndex()]; static Vector3[] s_LinePointsReuse = new Vector3[2]; XRHandMeshController m_MeshController; @@ -358,6 +359,9 @@ namespace UnityEngine.XR.Hands.Samples.VisualizerSample m_Lines[jointIndex].startWidth = m_Lines[jointIndex].endWidth = k_LineWidth; s_LinePointsReuse[0] = s_LinePointsReuse[1] = jointDrivenTransform.position; m_Lines[jointIndex].SetPositions(s_LinePointsReuse); + + if (m_DrawJoints[jointIndex].TryGetComponent(out var jointVisualizer)) + m_JointVisualizers[jointIndex] = jointVisualizer; } var isSceneObject = meshPrefab.scene.IsValid(); @@ -519,6 +523,8 @@ namespace UnityEngine.XR.Hands.Samples.VisualizerSample return; var jointIndex = joint.id.ToIndex(); + m_JointVisualizers[jointIndex].NotifyTrackingState(joint.trackingState); + if (!joint.TryGetPose(out var pose)) return; diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Scripts/HandVisualizer.cs.meta b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Scripts/HandVisualizer.cs.meta similarity index 100% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer/Scripts/HandVisualizer.cs.meta rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/Scripts/HandVisualizer.cs.meta diff --git a/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Scripts/JointVisualizer.cs b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Scripts/JointVisualizer.cs new file mode 100644 index 00000000..d8b67e94 --- /dev/null +++ b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Scripts/JointVisualizer.cs @@ -0,0 +1,38 @@ +using UnityEngine; +using UnityEngine.XR.Hands.Processing; + +namespace UnityEngine.XR.Hands.Samples.VisualizerSample +{ + public class JointVisualizer : MonoBehaviour + { + [SerializeField] + GameObject m_JointVisual; + + [SerializeField] + Material m_HighFidelityJointMaterial; + + [SerializeField] + Material m_LowFidelityJointMaterial; + + bool m_HighFidelityJoint; + + Renderer m_JointRenderer; + + public void NotifyTrackingState(XRHandJointTrackingState jointTrackingState) + { + bool highFidelityJoint = (jointTrackingState & XRHandJointTrackingState.HighFidelityPose) == XRHandJointTrackingState.HighFidelityPose; + if (m_HighFidelityJoint == highFidelityJoint) + return; + + m_JointRenderer.material = highFidelityJoint ? m_HighFidelityJointMaterial : m_LowFidelityJointMaterial; + + m_HighFidelityJoint = highFidelityJoint; + } + + void Start() + { + if (m_JointVisual.TryGetComponent(out var jointRenderer)) + m_JointRenderer = jointRenderer; + } + } +} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/GrabTransformerRotationAxisLock.cs.meta b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Scripts/JointVisualizer.cs.meta similarity index 83% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/GrabTransformerRotationAxisLock.cs.meta rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/Scripts/JointVisualizer.cs.meta index bbb7e603..9f1035de 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/GrabTransformerRotationAxisLock.cs.meta +++ b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Scripts/JointVisualizer.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 24386a87b5e733943809081267792754 +guid: 6e1c395ff62a3a14dbeb293298bb46bf MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Unity.XR.Hands.Samples.VisualizerSample.asmdef b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Unity.XR.Hands.Samples.VisualizerSample.asmdef similarity index 100% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer/Unity.XR.Hands.Samples.VisualizerSample.asmdef rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/Unity.XR.Hands.Samples.VisualizerSample.asmdef diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Unity.XR.Hands.Samples.VisualizerSample.asmdef.meta b/Assets/Samples/XR Hands/1.5.0/HandVisualizer/Unity.XR.Hands.Samples.VisualizerSample.asmdef.meta similarity index 100% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer/Unity.XR.Hands.Samples.VisualizerSample.asmdef.meta rename to Assets/Samples/XR Hands/1.5.0/HandVisualizer/Unity.XR.Hands.Samples.VisualizerSample.asmdef.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/.sample.json b/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/.sample.json deleted file mode 100644 index a713927d..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/.sample.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "displayName": "Hands Interaction Demo", - "description": "Sample scene and other assets for hand-tracking integration with the XR Interaction Toolkit." -} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/FingerColorAffordanceTheme.asset b/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/FingerColorAffordanceTheme.asset deleted file mode 100644 index e425fecd..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/FingerColorAffordanceTheme.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:01154342071281e2feb5abb8c23e049fd7af7d6ed6a4098ac40802509d1602e3 -size 2630 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/HandEdgeColorAffordanceTheme.asset b/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/HandEdgeColorAffordanceTheme.asset deleted file mode 100644 index bfcf99c3..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/HandEdgeColorAffordanceTheme.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:10fb8722f33e396229a074dfa33ace29c45b93116674e99f2ab7279e5aa47ed4 -size 2604 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/InteractionColorAffordanceTheme.asset b/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/InteractionColorAffordanceTheme.asset deleted file mode 100644 index aec99823..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/InteractionColorAffordanceTheme.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e6eb72c270064614205d7ac297090f72e72b41f3427f81150490e6647f008b9a -size 2632 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/AudioAffordanceTheme.asset b/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/AudioAffordanceTheme.asset deleted file mode 100644 index 7fc642bb..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/AudioAffordanceTheme.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:19af6caba4f748599cf7dc222798d91de0e03a891fa037b8cb939a39a4758200 -size 1198 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/CapsuleScaleTheme.asset b/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/CapsuleScaleTheme.asset deleted file mode 100644 index 44bb3748..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/CapsuleScaleTheme.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8ebdb5c2844d7f3429970dc572d7f798d1b71e0cbda1a136662b166780cefcdd -size 2321 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/Chess/InteractionBlendShapeAffordanceTheme.asset b/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/Chess/InteractionBlendShapeAffordanceTheme.asset deleted file mode 100644 index 47437630..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/Chess/InteractionBlendShapeAffordanceTheme.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a83a40f37973133de8af989ddc6aef6393d0af05ae1ccc1bb78b0cbc51572a07 -size 1771 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/Chess/WhiteChessPieceColorTheme.asset b/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/Chess/WhiteChessPieceColorTheme.asset deleted file mode 100644 index 027f5b47..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/Chess/WhiteChessPieceColorTheme.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:14cc149a371d9b761490fcbadec4f799bc81fc6bfcd2ba5446c65eec0bc50ad7 -size 2291 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/InteractionLargeScaleAffordanceTheme.asset b/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/InteractionLargeScaleAffordanceTheme.asset deleted file mode 100644 index 1ee6dea5..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/InteractionLargeScaleAffordanceTheme.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f123ee64d342ca246ccee60a1a7c75a22dc45bb19450ba6076748acf35e87fd9 -size 1777 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/InteractionScaleAffordanceTheme.asset b/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/InteractionScaleAffordanceTheme.asset deleted file mode 100644 index ce5e72e1..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/InteractionScaleAffordanceTheme.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f57082ff897799724975396e8a22c648c9ce9883af71ac2dd8e422b4202dc6c0 -size 1771 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/PrimitivesBlue.mat b/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/PrimitivesBlue.mat deleted file mode 100644 index 83635f71..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/PrimitivesBlue.mat +++ /dev/null @@ -1,46 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 8 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: PrimitivesBlue - m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} - m_Parent: {fileID: 2100000, guid: a05114129e33f6a4ebf59935affa0661, type: 2} - m_ModifiedSerializedProperties: 0 - m_ValidKeywords: [] - m_InvalidKeywords: - - _GLOSSYREFLECTIONS_OFF - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: -1 - stringTagMap: - RenderType: Opaque - disabledShaderPasses: [] - m_LockedProperties: - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: [] - m_Ints: [] - m_Floats: [] - m_Colors: - - _BaseColor: {r: 0.14901961, g: 0.36862746, b: 0.78039217, a: 1} - - _Color: {r: 0.14901957, g: 0.36862743, b: 0.78039217, a: 1} - m_BuildTextureStacks: [] ---- !u!114 &85588075474967055 -MonoBehaviour: - m_ObjectHideFlags: 11 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} - m_Name: - m_EditorClassIdentifier: - version: 7 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/PrimitivesCoral.mat b/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/PrimitivesCoral.mat deleted file mode 100644 index 37f1ad31..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/PrimitivesCoral.mat +++ /dev/null @@ -1,46 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 8 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: PrimitivesCoral - m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} - m_Parent: {fileID: 2100000, guid: e2fab14359f78ac44b6fb07523f664d7, type: 2} - m_ModifiedSerializedProperties: 0 - m_ValidKeywords: [] - m_InvalidKeywords: - - _GLOSSYREFLECTIONS_OFF - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: -1 - stringTagMap: - RenderType: Opaque - disabledShaderPasses: [] - m_LockedProperties: - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: [] - m_Ints: [] - m_Floats: [] - m_Colors: - - _BaseColor: {r: 1, g: 0.69411767, b: 0.6666667, a: 1} - - _Color: {r: 1, g: 0.69411767, b: 0.6666667, a: 1} - m_BuildTextureStacks: [] ---- !u!114 &5864103573171651692 -MonoBehaviour: - m_ObjectHideFlags: 11 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} - m_Name: - m_EditorClassIdentifier: - version: 7 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Table Surface.mat b/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Table Surface.mat deleted file mode 100644 index 1edab8fe..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Table Surface.mat +++ /dev/null @@ -1,47 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 8 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: Table Surface - m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} - m_Parent: {fileID: 2100000, guid: 29c87041b300ced459bdbe474db25114, type: 2} - m_ModifiedSerializedProperties: 16 - m_ValidKeywords: [] - m_InvalidKeywords: - - _GLOSSYREFLECTIONS_OFF - - _MAPPING_LATITUDE_LONGITUDE_LAYOUT - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: -1 - stringTagMap: - RenderType: Opaque - disabledShaderPasses: [] - m_LockedProperties: - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: [] - m_Ints: [] - m_Floats: [] - m_Colors: - - _BaseColor: {r: 0.94509804, g: 1, b: 0.5803922, a: 1} - - _Color: {r: 0.945098, g: 1, b: 0.5803921, a: 1} - m_BuildTextureStacks: [] ---- !u!114 &7412609096850590555 -MonoBehaviour: - m_ObjectHideFlags: 11 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} - m_Name: - m_EditorClassIdentifier: - version: 7 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Chess.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Chess.meta deleted file mode 100644 index 38a973f1..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Chess.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: cc6da3b6c17dad04f924dbc96b4c8114 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/XR Interaction Hands Setup.prefab b/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/XR Interaction Hands Setup.prefab deleted file mode 100644 index e31c902b..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/XR Interaction Hands Setup.prefab +++ /dev/null @@ -1,282 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &865075385244835223 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5773256366622995465} - m_Layer: 0 - m_Name: XR Interaction Hands Setup - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5773256366622995465 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 865075385244835223} - 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: 4763085287912399982} - - {fileID: 4763085286836561809} - - {fileID: 4763085287379932445} - - {fileID: 8733093507751517968} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &4763085286836561815 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4763085286836561809} - - component: {fileID: 4763085286836561808} - 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!4 &4763085286836561809 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4763085286836561815} - 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: 5773256366622995465} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &4763085286836561808 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4763085286836561815} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 83e4e6cca11330d4088d729ab4fc9d9f, type: 3} - m_Name: - m_EditorClassIdentifier: - m_StartingHoverFilters: [] - m_StartingSelectFilters: [] ---- !u!1 &4763085287379932418 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4763085287379932445} - - component: {fileID: 4763085287379932444} - - component: {fileID: 4763085287379932446} - m_Layer: 0 - m_Name: EventSystem - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4763085287379932445 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4763085287379932418} - 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: 5773256366622995465} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &4763085287379932444 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4763085287379932418} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} - m_Name: - m_EditorClassIdentifier: - m_FirstSelected: {fileID: 0} - m_sendNavigationEvents: 1 - m_DragThreshold: 10 ---- !u!114 &4763085287379932446 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4763085287379932418} - 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: 1 - m_MaxTrackedDeviceRaycastDistance: 1000 - m_EnableXRInput: 1 - m_EnableMouseInput: 1 - m_EnableTouchInput: 1 - m_PointAction: {fileID: 2869410428622933342, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_LeftClickAction: {fileID: 1855836014308820768, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_MiddleClickAction: {fileID: -6289560987278519447, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_RightClickAction: {fileID: -2562941478296515153, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ScrollWheelAction: {fileID: 5825226938762934180, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_NavigateAction: {fileID: -7967456002180160679, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_SubmitAction: {fileID: 3994978066732806534, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_CancelAction: {fileID: 2387711382375263438, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_EnableBuiltinActionsAsFallback: 1 - m_EnableGamepadInput: 1 - m_EnableJoystickInput: 1 - m_HorizontalAxis: Horizontal - m_VerticalAxis: Vertical - m_SubmitButton: Submit - m_CancelButton: Cancel ---- !u!1 &4763085287912399980 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4763085287912399982} - - component: {fileID: 4763085287912399981} - 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 &4763085287912399982 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4763085287912399980} - 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: 5773256366622995465} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &4763085287912399981 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4763085287912399980} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 017c5e3933235514c9520e1dace2a4b2, type: 3} - m_Name: - m_EditorClassIdentifier: - m_ActionAssets: - - {fileID: -944628639613478452, guid: c348712bda248c246b8c49b3db54643f, type: 3} ---- !u!1001 &7492724527406118749 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 5773256366622995465} - m_Modifications: - - target: {fileID: 2218496723442559053, guid: d6878e1999eb4b44a9f5a263af86c185, type: 3} - propertyPath: m_RootOrder - value: 3 - objectReference: {fileID: 0} - - target: {fileID: 2218496723442559053, guid: d6878e1999eb4b44a9f5a263af86c185, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2218496723442559053, guid: d6878e1999eb4b44a9f5a263af86c185, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2218496723442559053, guid: d6878e1999eb4b44a9f5a263af86c185, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2218496723442559053, guid: d6878e1999eb4b44a9f5a263af86c185, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 2218496723442559053, guid: d6878e1999eb4b44a9f5a263af86c185, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2218496723442559053, guid: d6878e1999eb4b44a9f5a263af86c185, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2218496723442559053, guid: d6878e1999eb4b44a9f5a263af86c185, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2218496723442559053, guid: d6878e1999eb4b44a9f5a263af86c185, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2218496723442559053, guid: d6878e1999eb4b44a9f5a263af86c185, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2218496723442559053, guid: d6878e1999eb4b44a9f5a263af86c185, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2218496723442559054, guid: d6878e1999eb4b44a9f5a263af86c185, type: 3} - propertyPath: m_Name - value: XR Origin (XR Rig) - objectReference: {fileID: 0} - - target: {fileID: 3113582726751902587, guid: d6878e1999eb4b44a9f5a263af86c185, type: 3} - propertyPath: m_Origin - value: - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: d6878e1999eb4b44a9f5a263af86c185, type: 3} ---- !u!4 &8733093507751517968 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 2218496723442559053, guid: d6878e1999eb4b44a9f5a263af86c185, type: 3} - m_PrefabInstance: {fileID: 7492724527406118749} - m_PrefabAsset: {fileID: 0} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/HideObjectWhenRayInteractorBlocked.cs b/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/HideObjectWhenRayInteractorBlocked.cs deleted file mode 100644 index c0884083..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/HideObjectWhenRayInteractorBlocked.cs +++ /dev/null @@ -1,33 +0,0 @@ -namespace UnityEngine.XR.Interaction.Toolkit.Samples.Hands -{ - /// - /// Hides the specified GameObject when the associated XRRayInteractor is blocked by an interaction within its group. - /// - public class HideObjectWhenRayInteractorBlocked : MonoBehaviour - { - [SerializeField] - [Tooltip("The XRRayInteractor that this component monitors for blockages.")] - XRRayInteractor m_Interactor; - - [SerializeField] - [Tooltip("The GameObject to hide when the XRRayInteractor is blocked.")] - GameObject m_ObjectToHide; - - /// - /// See . - /// - void OnEnable() - { - if (m_Interactor == null || m_ObjectToHide == null) - enabled = false; - } - - /// - /// See . - /// - void Update() - { - m_ObjectToHide.SetActive(m_Interactor.isActiveAndEnabled && !m_Interactor.IsBlockedByInteractionWithinGroup()); - } - } -} \ No newline at end of file diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/PinchPointFollow.cs b/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/PinchPointFollow.cs deleted file mode 100644 index 6cf7b378..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/PinchPointFollow.cs +++ /dev/null @@ -1,112 +0,0 @@ -#if XR_HANDS_1_2_OR_NEWER -using Unity.XR.CoreUtils; -using Unity.XR.CoreUtils.Bindings; -using UnityEngine.XR.Hands; -using UnityEngine.XR.Interaction.Toolkit.Utilities.Tweenables.Primitives; -#endif - -namespace UnityEngine.XR.Interaction.Toolkit.Samples.Hands -{ - /// - /// A class that follows the pinch point between the thumb and index finger using XR Hand Tracking. - /// It updates its position to the midpoint between the thumb and index tip while optionally adjusting its rotation - /// to look at a specified target. The rotation towards the target can also be smoothly interpolated over time. - /// - public class PinchPointFollow : MonoBehaviour - { - [SerializeField] - [Tooltip("The XR Hand Tracking Events component that will be used to subscribe to hand tracking events.")] -#if XR_HANDS_1_2_OR_NEWER - XRHandTrackingEvents m_XRHandTrackingEvents; -#else - Object m_XRHandTrackingEvents; -#endif - - [SerializeField] - [Tooltip("The transform to match the rotation of.")] - Transform m_TargetRotation; - - [SerializeField] - [Tooltip("The transform will use the XRRayInteractor endpoint position to calculate the transform rotation.")] - XRRayInteractor m_RayInteractor; - - [SerializeField] - [Tooltip("How fast to match rotation (0 means no rotation smoothing.)")] - [Range(0f, 32f)] - float m_RotationSmoothingSpeed = 12f; - -#if XR_HANDS_1_2_OR_NEWER - bool m_HasRayInteractor; - bool m_HasTargetRotationTransform; - - OneEuroFilterVector3 m_OneEuroFilterVector3; - readonly QuaternionTweenableVariable m_QuaternionTweenableVariable = new QuaternionTweenableVariable(); - readonly BindingsGroup m_BindingsGroup = new BindingsGroup(); -#endif - - /// - /// See . - /// - void OnEnable() - { -#if XR_HANDS_1_2_OR_NEWER - if (m_XRHandTrackingEvents != null) - m_XRHandTrackingEvents.jointsUpdated.AddListener(OnJointsUpdated); - - m_OneEuroFilterVector3 = new OneEuroFilterVector3(transform.localPosition); - m_HasRayInteractor = m_RayInteractor != null; - m_HasTargetRotationTransform = m_TargetRotation != null; - m_BindingsGroup.AddBinding(m_QuaternionTweenableVariable.Subscribe(newValue => transform.rotation = newValue)); -#else - Debug.LogWarning("PinchPointFollow requires XR Hands (com.unity.xr.hands) 1.2.0 or newer. Disabling component.", this); - enabled = false; -#endif - } - - /// - /// See . - /// - void OnDisable() - { -#if XR_HANDS_1_2_OR_NEWER - m_BindingsGroup.Clear(); - if (m_XRHandTrackingEvents != null) - m_XRHandTrackingEvents.jointsUpdated.RemoveListener(OnJointsUpdated); -#endif - } - -#if XR_HANDS_1_2_OR_NEWER - void OnJointsUpdated(XRHandJointsUpdatedEventArgs args) - { - var thumbTip = args.hand.GetJoint(XRHandJointID.ThumbTip); - if (!thumbTip.TryGetPose(out var thumbTipPose)) - return; - - var indexTip = args.hand.GetJoint(XRHandJointID.IndexTip); - if (!indexTip.TryGetPose(out var indexTipPose)) - return; - - var targetPos = Vector3.Lerp(thumbTipPose.position, indexTipPose.position, 0.5f); - var filteredTargetPos = m_OneEuroFilterVector3.Filter(targetPos, Time.deltaTime); - - // Hand pose data is in local space relative to the xr origin. - transform.localPosition = filteredTargetPos; - - if (m_HasTargetRotationTransform && m_HasRayInteractor) - { - // Given that the ray endpoint is in worldspace, we need to use the worldspace transform of this point to determine the target rotation. - // This allows us to keep orientation consistent when moving the xr origin for locomotion. - var targetDir = (m_RayInteractor.rayEndPoint - transform.position).normalized; - var targetRot = Quaternion.LookRotation(targetDir); - - // If there aren't any major swings in rotation, follow the target rotation. - if (Vector3.Dot(m_TargetRotation.forward, targetDir) > 0.5f) - m_QuaternionTweenableVariable.target = targetRot; - } - - var tweenTarget = m_RotationSmoothingSpeed > 0f ? m_RotationSmoothingSpeed * Time.deltaTime : 1f; - m_QuaternionTweenableVariable.HandleTween(tweenTarget); - } -#endif - } -} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/.sample.json b/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/.sample.json deleted file mode 100644 index 4f89a74b..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/.sample.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "displayName": "Starter Assets", - "description": "Assets to streamline setup of behaviors, including a default set of input actions and presets for use with XR Interaction Toolkit behaviors that use the Input System." -} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoScene.unity b/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoScene.unity deleted file mode 100644 index 76e4e473..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoScene.unity +++ /dev/null @@ -1,10838 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!29 &1 -OcclusionCullingSettings: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_OcclusionBakeSettings: - smallestOccluder: 5 - smallestHole: 0.25 - backfaceThreshold: 100 - m_SceneGUID: 00000000000000000000000000000000 - m_OcclusionCullingData: {fileID: 0} ---- !u!104 &2 -RenderSettings: - m_ObjectHideFlags: 0 - serializedVersion: 9 - m_Fog: 0 - m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} - m_FogMode: 3 - m_FogDensity: 0.01 - m_LinearFogStart: 0 - m_LinearFogEnd: 300 - m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} - m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} - m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} - m_AmbientIntensity: 1 - m_AmbientMode: 0 - m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} - m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} - m_HaloStrength: 0.5 - m_FlareStrength: 1 - m_FlareFadeSpeed: 3 - m_HaloTexture: {fileID: 0} - m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} - m_DefaultReflectionMode: 0 - m_DefaultReflectionResolution: 128 - m_ReflectionBounces: 1 - m_ReflectionIntensity: 1 - m_CustomReflection: {fileID: 0} - m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1} - m_UseRadianceAmbientProbe: 0 ---- !u!157 &3 -LightmapSettings: - m_ObjectHideFlags: 0 - serializedVersion: 12 - m_GIWorkflowMode: 1 - m_GISettings: - serializedVersion: 2 - m_BounceScale: 1 - m_IndirectOutputScale: 1 - m_AlbedoBoost: 1 - m_EnvironmentLightingMode: 0 - m_EnableBakedLightmaps: 1 - m_EnableRealtimeLightmaps: 0 - m_LightmapEditorSettings: - serializedVersion: 12 - m_Resolution: 2 - m_BakeResolution: 40 - m_AtlasSize: 1024 - m_AO: 0 - m_AOMaxDistance: 1 - m_CompAOExponent: 1 - m_CompAOExponentDirect: 0 - m_ExtractAmbientOcclusion: 0 - m_Padding: 2 - m_LightmapParameters: {fileID: 0} - m_LightmapsBakeMode: 1 - m_TextureCompression: 1 - m_FinalGather: 0 - m_FinalGatherFiltering: 1 - m_FinalGatherRayCount: 256 - m_ReflectionCompression: 2 - m_MixedBakeMode: 2 - m_BakeBackend: 1 - m_PVRSampling: 1 - m_PVRDirectSampleCount: 32 - m_PVRSampleCount: 512 - m_PVRBounces: 2 - m_PVREnvironmentSampleCount: 256 - m_PVREnvironmentReferencePointCount: 2048 - m_PVRFilteringMode: 1 - m_PVRDenoiserTypeDirect: 1 - m_PVRDenoiserTypeIndirect: 1 - m_PVRDenoiserTypeAO: 1 - m_PVRFilterTypeDirect: 0 - m_PVRFilterTypeIndirect: 0 - m_PVRFilterTypeAO: 0 - m_PVREnvironmentMIS: 1 - m_PVRCulling: 1 - m_PVRFilteringGaussRadiusDirect: 1 - m_PVRFilteringGaussRadiusIndirect: 5 - m_PVRFilteringGaussRadiusAO: 2 - m_PVRFilteringAtrousPositionSigmaDirect: 0.5 - m_PVRFilteringAtrousPositionSigmaIndirect: 2 - m_PVRFilteringAtrousPositionSigmaAO: 1 - m_ExportTrainingData: 0 - m_TrainingDataDestination: TrainingData - m_LightProbeSampleCountMultiplier: 4 - m_LightingDataAsset: {fileID: 0} - m_LightingSettings: {fileID: 0} ---- !u!196 &4 -NavMeshSettings: - serializedVersion: 2 - m_ObjectHideFlags: 0 - m_BuildSettings: - serializedVersion: 2 - agentTypeID: 0 - agentRadius: 0.5 - agentHeight: 2 - agentSlope: 45 - agentClimb: 0.4 - ledgeDropHeight: 0 - maxJumpAcrossDistance: 0 - minRegionArea: 2 - manualCellSize: 0 - cellSize: 0.16666667 - manualTileSize: 0 - tileSize: 256 - accuratePlacement: 0 - maxJobWorkers: 0 - preserveTilesOutsideBounds: 0 - debug: - m_Flags: 0 - m_NavMeshData: {fileID: 0} ---- !u!1 &139655395 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 139655396} - - component: {fileID: 139655398} - - component: {fileID: 139655397} - m_Layer: 5 - m_Name: Panel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &139655396 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 139655395} - 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: 1714474116} - m_Father: {fileID: 1209329928} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0} - m_AnchorMax: {x: 0.5, y: 0} - m_AnchoredPosition: {x: 0, y: 25} - m_SizeDelta: {x: 150, y: 50} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &139655397 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 139655395} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 0.7490196} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &139655398 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 139655395} - m_CullTransparentMesh: 1 ---- !u!1 &144254102 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 144254103} - - component: {fileID: 144254105} - - component: {fileID: 144254104} - m_Layer: 5 - m_Name: Header Panel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &144254103 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 144254102} - 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: 1247873231} - m_Father: {fileID: 788111585} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -48.5} - m_SizeDelta: {x: 0, y: 98.63} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &144254104 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 144254102} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 0.7490196} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &144254105 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 144254102} - m_CullTransparentMesh: 1 ---- !u!1 &157733528 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 157733529} - - component: {fileID: 157733531} - - component: {fileID: 157733530} - m_Layer: 5 - m_Name: Panel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &157733529 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 157733528} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.000029802322} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 421848384} - m_Father: {fileID: 788111585} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0} - m_AnchorMax: {x: 0.5, y: 0} - m_AnchoredPosition: {x: -275, y: 50} - m_SizeDelta: {x: 250, y: 100} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &157733530 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 157733528} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 0.7490196} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &157733531 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 157733528} - m_CullTransparentMesh: 1 ---- !u!1001 &208985960 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 1565887663814566040, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} - propertyPath: m_Name - value: Teleportation Environment - objectReference: {fileID: 0} - - target: {fileID: 1565887663814566041, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} - propertyPath: m_RootOrder - value: 3 - objectReference: {fileID: 0} - - target: {fileID: 1565887663814566041, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1565887663814566041, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1565887663814566041, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1565887663814566041, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1565887663814566041, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1565887663814566041, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1565887663814566041, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1565887663814566041, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1565887663814566041, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1565887663814566041, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} ---- !u!1 &235184210 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 235184214} - - component: {fileID: 235184213} - - component: {fileID: 235184212} - - component: {fileID: 235184211} - m_Layer: 0 - m_Name: Grab Interactable Table - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!65 &235184211 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 235184210} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &235184212 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 235184210} - 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: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} - 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 &235184213 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 235184210} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &235184214 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 235184210} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 4, y: 0.625, z: -2.5} - m_LocalScale: {x: 0.4, y: 1, z: 1.85} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 439588100} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &336426667 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 336426668} - - component: {fileID: 336426670} - - component: {fileID: 336426669} - m_Layer: 5 - m_Name: Panel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &336426668 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 336426667} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.000029802322} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 196977305468683333} - m_Father: {fileID: 604367606304239380} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0} - m_AnchorMax: {x: 0.5, y: 0} - m_AnchoredPosition: {x: -250.00003, y: 35} - m_SizeDelta: {x: 200, y: 75} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &336426669 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 336426667} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 0.7490196} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &336426670 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 336426667} - m_CullTransparentMesh: 1 ---- !u!1 &421848383 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 421848384} - - component: {fileID: 421848387} - - component: {fileID: 421848386} - - component: {fileID: 421848385} - m_Layer: 5 - m_Name: Gaze Hover - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &421848384 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 421848383} - 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: 157733529} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.000091552734, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &421848385 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 421848383} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 18 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 1 - m_MaxSize: 50 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: Gaze Hover ---- !u!114 &421848386 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 421848383} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 0 - m_VerticalFit: 2 ---- !u!222 &421848387 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 421848383} - m_CullTransparentMesh: 0 ---- !u!1 &439588099 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 439588100} - m_Layer: 0 - m_Name: Demo Environment - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &439588100 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 439588099} - 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: 1815318737} - - {fileID: 604367606304239380} - - {fileID: 235184214} - - {fileID: 3807310296116640662} - - {fileID: 4581292472285887094} - - {fileID: 788111585} - - {fileID: 1579013953} - - {fileID: 1917198434} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &547229427 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 547229428} - m_Layer: 0 - m_Name: Gaze Interactables - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &547229428 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 547229427} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -1.5, y: 0.663, z: -4.5} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 4351758153949589637} - - {fileID: 4943412724412835364} - - {fileID: 4943412722798158840} - - {fileID: 1209329928} - m_Father: {fileID: 0} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &564796391 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 564796392} - - component: {fileID: 564796394} - - component: {fileID: 564796393} - m_Layer: 5 - m_Name: Panel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &564796392 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 564796391} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0.000029802322} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1021619524} - m_Father: {fileID: 604367606304239380} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0} - m_AnchorMax: {x: 0.5, y: 0} - m_AnchoredPosition: {x: 250.00003, y: 35} - m_SizeDelta: {x: 200, y: 75} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &564796393 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 564796391} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 0.7490196} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &564796394 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 564796391} - m_CullTransparentMesh: 1 ---- !u!1 &650025388 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 650025389} - - component: {fileID: 650025394} - - component: {fileID: 650025393} - - component: {fileID: 650025392} - - component: {fileID: 650025391} - - component: {fileID: 650025390} - m_Layer: 5 - m_Name: "\uF702UI Canvas" - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &650025389 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 650025388} - m_LocalRotation: {x: 0, y: 1, z: 0, w: 0} - m_LocalPosition: {x: 0, y: 0, z: 0.0638} - m_LocalScale: {x: 0.0021239999, y: 0.0021239999, z: 0.0021239999} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1936063056} - - {fileID: 810021790} - m_Father: {fileID: 1289056247} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0.0002, y: -0.0508} - m_SizeDelta: {x: 42.1, y: 20.3} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &650025390 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 650025388} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ba6ff5e7c92519444bc2a7ca46558963, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Text: {fileID: 810021791} ---- !u!114 &650025391 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 650025388} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 7951c64acb0fa62458bf30a60089fe2d, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 0 - m_CheckFor2DOcclusion: 0 - m_CheckFor3DOcclusion: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 55 - m_RaycastTriggerInteraction: 1 ---- !u!114 &650025392 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 650025388} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 55 ---- !u!114 &650025393 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 650025388} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 0 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 800, y: 600} - m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 0 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 10 - m_PresetInfoIsWorld: 1 ---- !u!223 &650025394 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 650025388} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 2 - m_Camera: {fileID: 0} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_AdditionalShaderChannelsFlag: 25 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 ---- !u!1 &788111584 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 788111585} - - component: {fileID: 788111590} - - component: {fileID: 788111589} - - component: {fileID: 788111588} - - component: {fileID: 788111587} - m_Layer: 5 - m_Name: Gaze Interactable Info - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &788111585 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 788111584} - m_LocalRotation: {x: 0, y: 1, z: 0, w: 0} - m_LocalPosition: {x: 0, y: 0, z: -5} - m_LocalScale: {x: 0.002, y: 0.002, z: 0.002} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 144254103} - - {fileID: 157733529} - - {fileID: 1740969851} - - {fileID: 1807497890} - m_Father: {fileID: 439588100} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: -1.5, y: 1.5} - m_SizeDelta: {x: 800, y: 200} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &788111587 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 788111584} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 7951c64acb0fa62458bf30a60089fe2d, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 0 - m_CheckFor2DOcclusion: 0 - m_CheckFor3DOcclusion: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RaycastTriggerInteraction: 1 ---- !u!114 &788111588 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 788111584} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!114 &788111589 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 788111584} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 0 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 800, y: 600} - m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 0 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 1 ---- !u!223 &788111590 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 788111584} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 2 - m_Camera: {fileID: 1731298971} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_AdditionalShaderChannelsFlag: 25 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 ---- !u!1 &810021789 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 810021790} - - component: {fileID: 810021792} - - component: {fileID: 810021791} - m_Layer: 5 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &810021790 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 810021789} - 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: 650025389} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: -10, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &810021791 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 810021789} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 18 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 300 - m_Alignment: 5 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: 0 ---- !u!222 &810021792 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 810021789} - m_CullTransparentMesh: 1 ---- !u!1 &874919884 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 874919885} - - component: {fileID: 874919887} - - component: {fileID: 874919886} - m_Layer: 5 - m_Name: Panel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &874919885 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 874919884} - 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: 1522956427} - m_Father: {fileID: 604367606304239380} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0} - m_AnchorMax: {x: 0.5, y: 0} - m_AnchoredPosition: {x: 0, y: 35} - m_SizeDelta: {x: 200, y: 75} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &874919886 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 874919884} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 0.7490196} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &874919887 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 874919884} - m_CullTransparentMesh: 1 ---- !u!1001 &876656115 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 732877344778758187, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 732877344778758187, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 732877344778758187, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 732877344778758187, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 732877344778758187, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1465720397298211355, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1465720397298211355, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1465720398002813458, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1465720398002813458, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1465720398002813458, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1465720398059456908, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1465720398059456908, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1465720398059456908, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1465720398059456908, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1477547282043262312, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1477547282043262312, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1477547282043262312, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1477547282043262312, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1956391703820887915, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1956391703820887915, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1956391703820887915, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1956391703820887915, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1962376703435983919, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1962376703435983919, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1962376703435983919, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2923970395470667645, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2923970395470667645, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2923970395470667645, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2923970395470667645, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3322978173798649548, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3322978173798649548, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3322978173798649548, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3322978173798649548, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3322978174125981243, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3322978174125981243, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3322978174125981243, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_SizeDelta.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3322978174125981243, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.x - value: 150 - objectReference: {fileID: 0} - - target: {fileID: 3322978174125981243, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3322978174681443215, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3322978174681443215, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3322978174681443215, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_SizeDelta.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3322978174681443215, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.x - value: 475 - objectReference: {fileID: 0} - - target: {fileID: 3322978174681443215, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3352765378411564996, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3352765378411564996, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3352765378411564996, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3352765378411564996, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3690213291364595752, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3690213291364595752, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3690213291364595752, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3690213291364595752, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4015128326712939850, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_Camera - value: - objectReference: {fileID: 1731298971} - - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_RootOrder - value: 6 - objectReference: {fileID: 0} - - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_SizeDelta.x - value: 1000 - objectReference: {fileID: 0} - - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_SizeDelta.y - value: 360 - objectReference: {fileID: 0} - - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_LocalPosition.z - value: -2.5 - objectReference: {fileID: 0} - - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_LocalRotation.w - value: 0.7071068 - objectReference: {fileID: 0} - - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_LocalRotation.y - value: -0.7071068 - objectReference: {fileID: 0} - - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.x - value: -4 - objectReference: {fileID: 0} - - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.y - value: 1.5 - objectReference: {fileID: 0} - - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: -90 - objectReference: {fileID: 0} - - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4015128326712939855, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_Name - value: UI Sample - objectReference: {fileID: 0} - - target: {fileID: 4220274215976610951, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4220274215976610951, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4220274215976610951, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4220274215976610951, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4220274215976610951, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4422659089949380333, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4422659089949380333, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4422659089949380333, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4422659089949380333, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4422659089949380333, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4422659090696076826, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4422659090696076826, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4422659090696076826, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4422659090696076826, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4422659090696076826, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4422659091188657070, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4422659091188657070, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4422659091188657070, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4422659091188657070, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4588051828473420344, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4588051828473420344, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4588051828473420344, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4588051828473420344, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4950580794031056704, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4950580794031056704, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4950580794031056704, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_SizeDelta.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4950580794031056704, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.x - value: 150 - objectReference: {fileID: 0} - - target: {fileID: 4950580794031056704, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5459145654789298736, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5459145654789298736, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5459145655105915303, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5459145655105915303, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5459145655105915303, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5459145655105915303, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5459145655158323769, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5459145655158323769, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5459145655158323769, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5684358024879033404, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5684358024879033404, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5849765079216124530, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_SizeDelta.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5849765079944474460, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_Size - value: 0.9999997 - objectReference: {fileID: 0} - - target: {fileID: 5849765080478431418, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5849765080478431418, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5849765080478431418, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5849765080480587862, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5849765080480587862, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5849765080480587862, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5849765080480587862, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5849765080850205986, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5849765080850205986, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5849765080850205986, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6546457552942104298, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6546457552942104298, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6546457552942104298, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8180815008627773159, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8180815008627773159, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8180815008627773159, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8180815008627773159, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8180815009374535184, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8180815009374535184, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8180815009374535184, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8180815009374535184, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8180815009888545700, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8180815009888545700, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8180815009888545700, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8180815009888545700, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8575284107106180950, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8575284107106180950, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8575284107106180950, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8575284107106180950, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8607500784391115102, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8607500784391115102, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8607500784391115102, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8607500784391115102, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} ---- !u!1001 &893438434 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 1014857019} - m_Modifications: - - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_LocalPosition.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_LocalPosition.y - value: 0.0768 - objectReference: {fileID: 0} - - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_LocalPosition.z - value: 0.091 - objectReference: {fileID: 0} - - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4922582553321831162, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_Name - value: Push Button - objectReference: {fileID: 0} - - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_SelectExited.m_PersistentCalls.m_Calls.Array.size - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.size - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_SelectExited.m_PersistentCalls.m_Calls.Array.data[0].m_Mode - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_Mode - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_SelectExited.m_PersistentCalls.m_Calls.Array.data[0].m_Target - value: - objectReference: {fileID: 1750799822} - - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_Target - value: - objectReference: {fileID: 1750799822} - - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_SelectExited.m_PersistentCalls.m_Calls.Array.data[0].m_CallState - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_CallState - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_SelectExited.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName - value: Stop - objectReference: {fileID: 0} - - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName - value: Play - objectReference: {fileID: 0} - - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_SelectExited.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName - value: UnityEngine.ParticleSystem, UnityEngine - objectReference: {fileID: 0} - - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName - value: UnityEngine.ParticleSystem, UnityEngine - objectReference: {fileID: 0} - - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_BoolArgument - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_SelectExited.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName - value: UnityEngine.Object, UnityEngine - objectReference: {fileID: 0} - - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName - value: UnityEngine.Object, UnityEngine - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} ---- !u!4 &893438435 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - m_PrefabInstance: {fileID: 893438434} - m_PrefabAsset: {fileID: 0} ---- !u!1 &967567311 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 967567312} - - component: {fileID: 967567315} - - component: {fileID: 967567314} - - component: {fileID: 967567313} - m_Layer: 5 - m_Name: Gaze Select/Auto Deselect - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &967567312 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 967567311} - 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: 1807497890} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0002746582, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &967567313 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 967567311} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 18 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 1 - m_MaxSize: 40 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: 'Gaze Select - - Auto Deselect - - Interactable override times' ---- !u!114 &967567314 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 967567311} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 0 - m_VerticalFit: 2 ---- !u!222 &967567315 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 967567311} - m_CullTransparentMesh: 0 ---- !u!1 &1014857018 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1014857019} - m_Layer: 0 - m_Name: Poke Interactions Sample - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1014857019 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1014857018} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 1.5, y: 1.13, z: -4.45} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 893438435} - - {fileID: 1270176778} - - {fileID: 1289056247} - m_Father: {fileID: 0} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1021619523 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1021619524} - - component: {fileID: 1021619527} - - component: {fileID: 1021619526} - - component: {fileID: 1021619525} - m_Layer: 5 - m_Name: Velocity-Tracked Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1021619524 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1021619523} - 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: 564796392} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0002746582, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1021619525 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1021619523} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 18 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 1 - m_MaxSize: 40 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: 'Velocity Tracked - - Movement' ---- !u!114 &1021619526 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1021619523} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 0 - m_VerticalFit: 2 ---- !u!222 &1021619527 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1021619523} - m_CullTransparentMesh: 0 ---- !u!1 &1202312658 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1202312659} - - component: {fileID: 1202312661} - - component: {fileID: 1202312660} - m_Layer: 5 - m_Name: Header Panel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1202312659 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1202312658} - 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: 196977306215183538} - m_Father: {fileID: 604367606304239380} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -48.5} - m_SizeDelta: {x: 0, y: 98.63} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1202312660 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1202312658} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 0.7490196} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1202312661 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1202312658} - m_CullTransparentMesh: 1 ---- !u!1 &1209329927 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1209329928} - - component: {fileID: 1209329933} - - component: {fileID: 1209329932} - - component: {fileID: 1209329931} - - component: {fileID: 1209329930} - m_Layer: 5 - m_Name: Gaze Select/Deselect Interactable Info - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &1209329928 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1209329927} - m_LocalRotation: {x: -0, y: 1, z: -0, w: 0} - m_LocalPosition: {x: 0, y: 0, z: 0.23999977} - m_LocalScale: {x: 0.002, y: 0.002, z: 0.002} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 139655396} - m_Father: {fileID: 547229428} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: -0.5, y: 0.4} - m_SizeDelta: {x: 150, y: 50} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1209329930 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1209329927} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 7951c64acb0fa62458bf30a60089fe2d, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 0 - m_CheckFor2DOcclusion: 0 - m_CheckFor3DOcclusion: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RaycastTriggerInteraction: 1 ---- !u!114 &1209329931 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1209329927} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!114 &1209329932 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1209329927} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 0 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 800, y: 600} - m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 0 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 1 ---- !u!223 &1209329933 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1209329927} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 2 - m_Camera: {fileID: 1731298971} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_AdditionalShaderChannelsFlag: 25 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 ---- !u!1 &1247873230 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1247873231} - - component: {fileID: 1247873233} - - component: {fileID: 1247873232} - m_Layer: 5 - m_Name: Header Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1247873231 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1247873230} - 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: 144254103} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -0.6850014} - m_SizeDelta: {x: -428, y: -65.13} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1247873232 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1247873230} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 24 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 2 - m_MaxSize: 40 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: Gaze Interactable Objects ---- !u!222 &1247873233 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1247873230} - m_CullTransparentMesh: 0 ---- !u!1001 &1270176777 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 1014857019} - m_Modifications: - - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_RootOrder - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_LocalPosition.x - value: 0.028 - objectReference: {fileID: 0} - - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_LocalPosition.y - value: 0.0768 - objectReference: {fileID: 0} - - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_LocalPosition.z - value: 0.091 - objectReference: {fileID: 0} - - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4922582553321831162, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_Name - value: Push Button - objectReference: {fileID: 0} - - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.size - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_Mode - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_Target - value: - objectReference: {fileID: 1270176780} - - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_CallState - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName - value: Play - objectReference: {fileID: 0} - - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName - value: UnityEngine.AudioSource, UnityEngine - objectReference: {fileID: 0} - - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgument - value: - objectReference: {fileID: 0} - - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName - value: UnityEngine.Object, UnityEngine - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} ---- !u!4 &1270176778 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - m_PrefabInstance: {fileID: 1270176777} - m_PrefabAsset: {fileID: 0} ---- !u!1 &1270176779 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 4922582553321831162, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - m_PrefabInstance: {fileID: 1270176777} - m_PrefabAsset: {fileID: 0} ---- !u!82 &1270176780 -AudioSource: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1270176779} - m_Enabled: 1 - serializedVersion: 4 - OutputAudioMixerGroup: {fileID: 0} - m_audioClip: {fileID: 8300000, guid: 16fba6d30ed741d4a9fdd6e79ee2f3ac, type: 3} - m_PlayOnAwake: 0 - 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_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_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 &1289056246 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 1014857019} - m_Modifications: - - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_RootOrder - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_LocalPosition.x - value: -0.5 - objectReference: {fileID: 0} - - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_LocalPosition.y - value: 0.0768 - objectReference: {fileID: 0} - - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_LocalPosition.z - value: 0.091 - objectReference: {fileID: 0} - - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4922582553321831162, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_Name - value: Push Button - objectReference: {fileID: 0} - - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.size - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_Mode - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_Target - value: - objectReference: {fileID: 650025390} - - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_CallState - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName - value: IncrementText - objectReference: {fileID: 0} - - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName - value: UnityEngine.XR.Interaction.Toolkit.Samples.StarterAssets.IncrementUIText, - Unity.XR.Interaction.Toolkit.Samples.StarterAssets - objectReference: {fileID: 0} - - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName - value: UnityEngine.Object, UnityEngine - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} ---- !u!4 &1289056247 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} - m_PrefabInstance: {fileID: 1289056246} - m_PrefabAsset: {fileID: 0} ---- !u!1 &1486677401 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1486677402} - - component: {fileID: 1486677405} - - component: {fileID: 1486677404} - - component: {fileID: 1486677403} - m_Layer: 5 - m_Name: Gaze Assisted - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1486677402 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1486677401} - 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: 1740969851} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1486677403 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1486677401} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 18 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 1 - m_MaxSize: 40 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: Gaze Assisted ---- !u!114 &1486677404 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1486677401} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 0 - m_VerticalFit: 2 ---- !u!222 &1486677405 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1486677401} - m_CullTransparentMesh: 0 ---- !u!1001 &1519520462 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 1060243933316379515, guid: 6821e1b7f44d8c44b8a2ba02f37309d5, type: 3} - propertyPath: m_Name - value: Interactables Sample - objectReference: {fileID: 0} - - target: {fileID: 2991896912978869755, guid: 6821e1b7f44d8c44b8a2ba02f37309d5, type: 3} - propertyPath: m_RootOrder - value: 5 - objectReference: {fileID: 0} - - target: {fileID: 2991896912978869755, guid: 6821e1b7f44d8c44b8a2ba02f37309d5, type: 3} - propertyPath: m_LocalPosition.x - value: 4 - objectReference: {fileID: 0} - - target: {fileID: 2991896912978869755, guid: 6821e1b7f44d8c44b8a2ba02f37309d5, type: 3} - propertyPath: m_LocalPosition.y - value: 0.663 - objectReference: {fileID: 0} - - target: {fileID: 2991896912978869755, guid: 6821e1b7f44d8c44b8a2ba02f37309d5, type: 3} - propertyPath: m_LocalPosition.z - value: -2.5 - objectReference: {fileID: 0} - - target: {fileID: 2991896912978869755, guid: 6821e1b7f44d8c44b8a2ba02f37309d5, type: 3} - propertyPath: m_LocalRotation.w - value: 0.7071068 - objectReference: {fileID: 0} - - target: {fileID: 2991896912978869755, guid: 6821e1b7f44d8c44b8a2ba02f37309d5, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2991896912978869755, guid: 6821e1b7f44d8c44b8a2ba02f37309d5, type: 3} - propertyPath: m_LocalRotation.y - value: -0.7071068 - objectReference: {fileID: 0} - - target: {fileID: 2991896912978869755, guid: 6821e1b7f44d8c44b8a2ba02f37309d5, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2991896912978869755, guid: 6821e1b7f44d8c44b8a2ba02f37309d5, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2991896912978869755, guid: 6821e1b7f44d8c44b8a2ba02f37309d5, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: -90 - objectReference: {fileID: 0} - - target: {fileID: 2991896912978869755, guid: 6821e1b7f44d8c44b8a2ba02f37309d5, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 6821e1b7f44d8c44b8a2ba02f37309d5, type: 3} ---- !u!1 &1522956426 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1522956427} - - component: {fileID: 1522956430} - - component: {fileID: 1522956429} - - component: {fileID: 1522956428} - m_Layer: 5 - m_Name: Instananeous Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1522956427 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1522956426} - 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: 874919885} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1522956428 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1522956426} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 18 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 1 - m_MaxSize: 40 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: 'Instantaneous - - Movement' ---- !u!114 &1522956429 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1522956426} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 0 - m_VerticalFit: 2 ---- !u!222 &1522956430 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1522956426} - m_CullTransparentMesh: 0 ---- !u!1 &1579013952 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1579013953} - - component: {fileID: 1579013956} - - component: {fileID: 1579013955} - - component: {fileID: 1579013954} - m_Layer: 0 - m_Name: Gaze Interactable Table - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1579013953 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1579013952} - m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068} - m_LocalPosition: {x: -1.5, y: 0.625, z: -4.5} - m_LocalScale: {x: 0.4, y: 1, z: 1.85} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 439588100} - m_RootOrder: 6 - m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} ---- !u!65 &1579013954 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1579013952} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &1579013955 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1579013952} - 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: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} - 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 &1579013956 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1579013952} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1589715509 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1589715510} - - component: {fileID: 1589715512} - - component: {fileID: 1589715511} - m_Layer: 5 - m_Name: Header Panel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1589715510 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1589715509} - 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: 1743632700} - m_Father: {fileID: 1917198434} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -48.5} - m_SizeDelta: {x: 0, y: 98.63} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1589715511 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1589715509} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 0.7490196} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1589715512 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1589715509} - m_CullTransparentMesh: 1 ---- !u!1 &1714474115 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1714474116} - - component: {fileID: 1714474119} - - component: {fileID: 1714474118} - - component: {fileID: 1714474117} - m_Layer: 5 - m_Name: Interactable State - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1714474116 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1714474115} - 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: 139655396} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: -33} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1714474117 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1714474115} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 16 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 1 - m_MaxSize: 40 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: Hovered ---- !u!114 &1714474118 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1714474115} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 0 - m_VerticalFit: 2 ---- !u!222 &1714474119 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1714474115} - m_CullTransparentMesh: 0 ---- !u!1001 &1731298970 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 2819856895474916288, guid: 895f6f3c2d334633b5800312285058d2, type: 3} - propertyPath: m_IsActive - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 3415145736139425353, guid: 895f6f3c2d334633b5800312285058d2, type: 3} - propertyPath: m_IsActive - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4134505312059479865, guid: 895f6f3c2d334633b5800312285058d2, type: 3} - propertyPath: m_RootOrder - value: 4 - objectReference: {fileID: 0} - - target: {fileID: 4134505312059479865, guid: 895f6f3c2d334633b5800312285058d2, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4134505312059479865, guid: 895f6f3c2d334633b5800312285058d2, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4134505312059479865, guid: 895f6f3c2d334633b5800312285058d2, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4134505312059479865, guid: 895f6f3c2d334633b5800312285058d2, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4134505312059479865, guid: 895f6f3c2d334633b5800312285058d2, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4134505312059479865, guid: 895f6f3c2d334633b5800312285058d2, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4134505312059479865, guid: 895f6f3c2d334633b5800312285058d2, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4134505312059479865, guid: 895f6f3c2d334633b5800312285058d2, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4134505312059479865, guid: 895f6f3c2d334633b5800312285058d2, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4134505312059479865, guid: 895f6f3c2d334633b5800312285058d2, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7313654230448209575, guid: 895f6f3c2d334633b5800312285058d2, type: 3} - propertyPath: m_Name - value: XR Interaction Setup - objectReference: {fileID: 0} - - target: {fileID: 7696548424635294051, guid: 895f6f3c2d334633b5800312285058d2, type: 3} - propertyPath: m_LocalPosition.y - value: 0.125 - objectReference: {fileID: 0} - - target: {fileID: 7696548424635294051, guid: 895f6f3c2d334633b5800312285058d2, type: 3} - propertyPath: m_LocalPosition.z - value: 2.93 - objectReference: {fileID: 0} - - target: {fileID: 7696548424635294051, guid: 895f6f3c2d334633b5800312285058d2, type: 3} - propertyPath: m_LocalRotation.w - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7696548424635294051, guid: 895f6f3c2d334633b5800312285058d2, type: 3} - propertyPath: m_LocalRotation.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 7696548424635294051, guid: 895f6f3c2d334633b5800312285058d2, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 180 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 895f6f3c2d334633b5800312285058d2, type: 3} ---- !u!20 &1731298971 stripped -Camera: - m_CorrespondingSourceObject: {fileID: 9014170783809206330, guid: 895f6f3c2d334633b5800312285058d2, type: 3} - m_PrefabInstance: {fileID: 1731298970} - m_PrefabAsset: {fileID: 0} ---- !u!1 &1740969850 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1740969851} - - component: {fileID: 1740969853} - - component: {fileID: 1740969852} - m_Layer: 5 - m_Name: Panel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1740969851 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1740969850} - 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: 1486677402} - m_Father: {fileID: 788111585} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0} - m_AnchorMax: {x: 0.5, y: 0} - m_AnchoredPosition: {x: 0, y: 50} - m_SizeDelta: {x: 275, y: 100} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1740969852 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1740969850} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 0.7490196} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1740969853 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1740969850} - m_CullTransparentMesh: 1 ---- !u!1 &1743632699 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1743632700} - - component: {fileID: 1743632702} - - component: {fileID: 1743632701} - m_Layer: 5 - m_Name: Header Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1743632700 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1743632699} - 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: 1589715510} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -0.6850014} - m_SizeDelta: {x: -400, y: -65.13} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1743632701 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1743632699} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 24 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 2 - m_MaxSize: 40 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: Climb Interactable Objects ---- !u!222 &1743632702 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1743632699} - m_CullTransparentMesh: 0 ---- !u!1 &1750799819 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1750799820} - - component: {fileID: 1750799822} - - component: {fileID: 1750799821} - m_Layer: 0 - m_Name: Particle System - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1750799820 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1750799819} - m_LocalRotation: {x: -0.7071068, y: -0, z: -0, w: 0.7071068} - m_LocalPosition: {x: 0.003, y: -0.01, z: -0.011} - m_LocalScale: {x: 0.1, y: 0.10000001, z: 0.10000001} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 893438435} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0} ---- !u!199 &1750799821 -ParticleSystemRenderer: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1750799819} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 0 - m_ReflectionProbeUsage: 0 - m_RayTracingMode: 0 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 10301, 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_RenderMode: 0 - m_MeshDistribution: 0 - m_SortMode: 0 - m_MinParticleSize: 0 - m_MaxParticleSize: 0.5 - m_CameraVelocityScale: 0 - m_VelocityScale: 0 - m_LengthScale: 2 - m_SortingFudge: 0 - m_NormalDirection: 1 - m_ShadowBias: 0 - m_RenderAlignment: 0 - m_Pivot: {x: 0, y: 0, z: 0} - m_Flip: {x: 0, y: 0, z: 0} - m_UseCustomVertexStreams: 0 - m_EnableGPUInstancing: 1 - m_ApplyActiveColorSpace: 1 - m_AllowRoll: 1 - m_FreeformStretching: 0 - m_RotateWithStretchDirection: 1 - m_VertexStreams: 00010304 - m_Mesh: {fileID: 0} - m_Mesh1: {fileID: 0} - m_Mesh2: {fileID: 0} - m_Mesh3: {fileID: 0} - m_MeshWeighting: 1 - m_MeshWeighting1: 1 - m_MeshWeighting2: 1 - m_MeshWeighting3: 1 - m_MaskInteraction: 0 ---- !u!198 &1750799822 -ParticleSystem: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1750799819} - serializedVersion: 8 - lengthInSec: 5 - simulationSpeed: 1 - stopAction: 0 - cullingMode: 0 - ringBufferMode: 0 - ringBufferLoopRange: {x: 0, y: 1} - emitterVelocityMode: 0 - looping: 1 - prewarm: 0 - playOnAwake: 0 - useUnscaledTime: 0 - autoRandomSeed: 1 - startDelay: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - moveWithTransform: 0 - moveWithCustomTransform: {fileID: 0} - scalingMode: 1 - randomSeed: 0 - InitialModule: - serializedVersion: 3 - enabled: 1 - startLifetime: - serializedVersion: 2 - minMaxState: 0 - scalar: 5 - minScalar: 5 - maxCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - startSpeed: - serializedVersion: 2 - minMaxState: 0 - scalar: 10 - minScalar: 5 - maxCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - startColor: - serializedVersion: 2 - minMaxState: 0 - minColor: {r: 1, g: 1, b: 1, a: 1} - maxColor: {r: 0.9622642, g: 0.19517623, b: 0.20951429, a: 1} - maxGradient: - 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 - minGradient: - 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 - startSize: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - startSizeY: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - startSizeZ: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - startRotationX: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - startRotationY: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - startRotation: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - randomizeRotationDirection: 0 - maxNumParticles: 1000 - customEmitterVelocity: {x: 0, y: 0, z: 0} - size3D: 0 - rotation3D: 0 - gravityModifier: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - ShapeModule: - serializedVersion: 6 - enabled: 1 - type: 4 - angle: 13.08 - length: 5 - boxThickness: {x: 0, y: 0, z: 0} - radiusThickness: 0 - donutRadius: 0.2 - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: 0, y: 0, z: 0} - m_Scale: {x: 1, y: 1, z: 1} - placementMode: 0 - m_MeshMaterialIndex: 0 - m_MeshNormalOffset: 0 - m_MeshSpawn: - mode: 0 - spread: 0 - speed: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - m_Mesh: {fileID: 0} - m_MeshRenderer: {fileID: 0} - m_SkinnedMeshRenderer: {fileID: 0} - m_Sprite: {fileID: 0} - m_SpriteRenderer: {fileID: 0} - m_UseMeshMaterialIndex: 0 - m_UseMeshColors: 1 - alignToDirection: 0 - m_Texture: {fileID: 0} - m_TextureClipChannel: 3 - m_TextureClipThreshold: 0 - m_TextureUVChannel: 0 - m_TextureColorAffectsParticles: 1 - m_TextureAlphaAffectsParticles: 1 - m_TextureBilinearFiltering: 0 - randomDirectionAmount: 0 - sphericalDirectionAmount: 0 - randomPositionAmount: 0 - radius: - value: 0.5 - mode: 0 - spread: 0 - speed: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - arc: - value: 360 - mode: 0 - spread: 0 - speed: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - EmissionModule: - enabled: 1 - serializedVersion: 4 - rateOverTime: - serializedVersion: 2 - minMaxState: 0 - scalar: 50 - minScalar: 10 - maxCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - rateOverDistance: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - m_BurstCount: 0 - m_Bursts: [] - SizeModule: - enabled: 1 - curve: - serializedVersion: 2 - minMaxState: 1 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0.1511612 - inSlope: 2 - outSlope: 2 - tangentMode: 0 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - - serializedVersion: 3 - time: 0.054507792 - value: 0.57502365 - inSlope: -2.1679857 - outSlope: -2.1679857 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.07063622 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - y: - serializedVersion: 2 - minMaxState: 1 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 1 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 1 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - z: - serializedVersion: 2 - minMaxState: 1 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 1 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 1 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - separateAxes: 0 - RotationModule: - enabled: 0 - x: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - y: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - curve: - serializedVersion: 2 - minMaxState: 0 - scalar: 0.7853982 - minScalar: 0.7853982 - maxCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - separateAxes: 0 - ColorModule: - enabled: 0 - gradient: - serializedVersion: 2 - minMaxState: 1 - minColor: {r: 1, g: 1, b: 1, a: 1} - maxColor: {r: 1, g: 1, b: 1, a: 1} - maxGradient: - 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 - minGradient: - 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 - UVModule: - serializedVersion: 2 - enabled: 0 - mode: 0 - timeMode: 0 - fps: 30 - frameOverTime: - serializedVersion: 2 - minMaxState: 1 - scalar: 0.9999 - minScalar: 0.9999 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 1 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 1 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - startFrame: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - speedRange: {x: 0, y: 1} - tilesX: 1 - tilesY: 1 - animationType: 0 - rowIndex: 0 - cycles: 1 - uvChannelMask: -1 - rowMode: 1 - sprites: - - sprite: {fileID: 0} - flipU: 0 - flipV: 0 - VelocityModule: - enabled: 0 - x: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - y: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - z: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - orbitalX: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - orbitalY: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - orbitalZ: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - orbitalOffsetX: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - orbitalOffsetY: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - orbitalOffsetZ: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - radial: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - speedModifier: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - inWorldSpace: 0 - InheritVelocityModule: - enabled: 0 - m_Mode: 0 - m_Curve: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - LifetimeByEmitterSpeedModule: - enabled: 0 - m_Curve: - serializedVersion: 2 - minMaxState: 1 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: -0.8 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0.2 - inSlope: -0.8 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - m_Range: {x: 0, y: 1} - ForceModule: - enabled: 1 - x: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - y: - serializedVersion: 2 - minMaxState: 0 - scalar: -9.8 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - z: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - inWorldSpace: 1 - randomizePerFrame: 0 - ExternalForcesModule: - serializedVersion: 2 - enabled: 0 - multiplierCurve: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - influenceFilter: 0 - influenceMask: - serializedVersion: 2 - m_Bits: 4294967295 - influenceList: [] - ClampVelocityModule: - enabled: 0 - x: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - y: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - z: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - magnitude: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - separateAxis: 0 - inWorldSpace: 0 - multiplyDragByParticleSize: 1 - multiplyDragByParticleVelocity: 1 - dampen: 0 - drag: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - NoiseModule: - enabled: 0 - strength: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - strengthY: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - strengthZ: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - separateAxes: 0 - frequency: 0.5 - damping: 1 - octaves: 1 - octaveMultiplier: 0.5 - octaveScale: 2 - quality: 2 - scrollSpeed: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - remap: - serializedVersion: 2 - minMaxState: 1 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: -1 - inSlope: 0 - outSlope: 2 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 2 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - remapY: - serializedVersion: 2 - minMaxState: 1 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: -1 - inSlope: 0 - outSlope: 2 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 2 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - remapZ: - serializedVersion: 2 - minMaxState: 1 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: -1 - inSlope: 0 - outSlope: 2 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 2 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - remapEnabled: 0 - positionAmount: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - rotationAmount: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - sizeAmount: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - SizeBySpeedModule: - enabled: 0 - curve: - serializedVersion: 2 - minMaxState: 1 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 1 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 1 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - y: - serializedVersion: 2 - minMaxState: 1 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 1 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 1 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - z: - serializedVersion: 2 - minMaxState: 1 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 1 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 1 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - range: {x: 0, y: 1} - separateAxes: 0 - RotationBySpeedModule: - enabled: 0 - x: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - y: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - curve: - serializedVersion: 2 - minMaxState: 0 - scalar: 0.7853982 - minScalar: 0.7853982 - maxCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - separateAxes: 0 - range: {x: 0, y: 1} - ColorBySpeedModule: - enabled: 0 - gradient: - serializedVersion: 2 - minMaxState: 1 - minColor: {r: 1, g: 1, b: 1, a: 1} - maxColor: {r: 1, g: 1, b: 1, a: 1} - maxGradient: - 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 - minGradient: - 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 - range: {x: 0, y: 1} - CollisionModule: - enabled: 0 - serializedVersion: 4 - type: 0 - collisionMode: 0 - colliderForce: 0 - multiplyColliderForceByParticleSize: 0 - multiplyColliderForceByParticleSpeed: 0 - multiplyColliderForceByCollisionAngle: 1 - m_Planes: [] - m_Dampen: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - m_Bounce: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - m_EnergyLossOnCollision: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minKillSpeed: 0 - maxKillSpeed: 10000 - radiusScale: 1 - collidesWith: - serializedVersion: 2 - m_Bits: 4294967295 - maxCollisionShapes: 256 - quality: 0 - voxelSize: 0.5 - collisionMessages: 0 - collidesWithDynamic: 1 - interiorCollisions: 0 - TriggerModule: - enabled: 0 - serializedVersion: 2 - inside: 1 - outside: 0 - enter: 0 - exit: 0 - colliderQueryMode: 0 - radiusScale: 1 - primitives: [] - SubModule: - serializedVersion: 2 - enabled: 0 - subEmitters: - - serializedVersion: 3 - emitter: {fileID: 0} - type: 0 - properties: 0 - emitProbability: 1 - LightsModule: - enabled: 0 - ratio: 0 - light: {fileID: 0} - randomDistribution: 1 - color: 1 - range: 1 - intensity: 1 - rangeCurve: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - intensityCurve: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - maxLights: 20 - TrailModule: - enabled: 0 - mode: 0 - ratio: 1 - lifetime: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minVertexDistance: 0.2 - textureMode: 0 - ribbonCount: 1 - shadowBias: 0.5 - worldSpace: 0 - dieWithParticles: 1 - sizeAffectsWidth: 1 - sizeAffectsLifetime: 0 - inheritParticleColor: 1 - generateLightingData: 0 - splitSubEmitterRibbons: 0 - attachRibbonsToTransform: 0 - colorOverLifetime: - serializedVersion: 2 - minMaxState: 0 - minColor: {r: 1, g: 1, b: 1, a: 1} - maxColor: {r: 1, g: 1, b: 1, a: 1} - maxGradient: - 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 - minGradient: - 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 - widthOverTrail: - serializedVersion: 2 - minMaxState: 0 - scalar: 1 - minScalar: 1 - maxCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - minCurve: - serializedVersion: 2 - 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: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - colorOverTrail: - serializedVersion: 2 - minMaxState: 0 - minColor: {r: 1, g: 1, b: 1, a: 1} - maxColor: {r: 1, g: 1, b: 1, a: 1} - maxGradient: - 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 - minGradient: - 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 - CustomDataModule: - enabled: 0 - mode0: 0 - vectorComponentCount0: 4 - color0: - serializedVersion: 2 - minMaxState: 0 - minColor: {r: 1, g: 1, b: 1, a: 1} - maxColor: {r: 1, g: 1, b: 1, a: 1} - maxGradient: - 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 - minGradient: - 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 - colorLabel0: Color - vector0_0: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - vectorLabel0_0: X - vector0_1: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - vectorLabel0_1: Y - vector0_2: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - vectorLabel0_2: Z - vector0_3: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - vectorLabel0_3: W - mode1: 0 - vectorComponentCount1: 4 - color1: - serializedVersion: 2 - minMaxState: 0 - minColor: {r: 1, g: 1, b: 1, a: 1} - maxColor: {r: 1, g: 1, b: 1, a: 1} - maxGradient: - 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 - minGradient: - 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 - colorLabel1: Color - vector1_0: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - vectorLabel1_0: X - vector1_1: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - vectorLabel1_1: Y - vector1_2: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - vectorLabel1_2: Z - vector1_3: - serializedVersion: 2 - minMaxState: 0 - scalar: 0 - minScalar: 0 - maxCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - minCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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 - vectorLabel1_3: W ---- !u!1 &1807497889 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1807497890} - - component: {fileID: 1807497892} - - component: {fileID: 1807497891} - m_Layer: 5 - m_Name: Panel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1807497890 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1807497889} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0.000029802322} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 967567312} - m_Father: {fileID: 788111585} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0} - m_AnchorMax: {x: 0.5, y: 0} - m_AnchoredPosition: {x: 275, y: 50} - m_SizeDelta: {x: 250, y: 100} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1807497891 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1807497889} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 0.7490196} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1807497892 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1807497889} - m_CullTransparentMesh: 1 ---- !u!1 &1815318735 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1815318737} - - component: {fileID: 1815318736} - m_Layer: 0 - m_Name: Directional Light - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!108 &1815318736 -Light: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1815318735} - m_Enabled: 1 - serializedVersion: 10 - m_Type: 1 - m_Shape: 0 - m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} - m_Intensity: 1 - m_Range: 10 - m_SpotAngle: 30 - m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 - m_Shadows: - m_Type: 2 - m_Resolution: -1 - m_CustomResolution: -1 - m_Strength: 1 - m_Bias: 0.05 - m_NormalBias: 0.4 - m_NearPlane: 0.2 - m_CullingMatrixOverride: - e00: 1 - e01: 0 - e02: 0 - e03: 0 - e10: 0 - e11: 1 - e12: 0 - e13: 0 - e20: 0 - e21: 0 - e22: 1 - e23: 0 - e30: 0 - e31: 0 - e32: 0 - e33: 1 - m_UseCullingMatrixOverride: 0 - m_Cookie: {fileID: 0} - m_DrawHalo: 0 - m_Flare: {fileID: 0} - m_RenderMode: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingLayerMask: 1 - m_Lightmapping: 4 - m_LightShadowCasterMode: 0 - m_AreaSize: {x: 1, y: 1} - m_BounceIntensity: 1 - m_ColorTemperature: 6570 - m_UseColorTemperature: 0 - m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} - m_UseBoundingSphereOverride: 0 - m_UseViewFrustumForShadowCasterCull: 1 - m_ShadowRadius: 0 - m_ShadowAngle: 0 ---- !u!4 &1815318737 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1815318735} - m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} - m_LocalPosition: {x: 0, y: 3, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 439588100} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} ---- !u!1 &1880968183 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1880968184} - - component: {fileID: 1880968186} - - component: {fileID: 1880968185} - m_Layer: 0 - m_Name: Sphere - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!4 &1880968184 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1880968183} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 4351758153949589637} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1880968185 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1880968183} - 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: 5561349426305759274, guid: 9e1dc1c14313460d872de39e35129b39, type: 3} - 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 &1880968186 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1880968183} - m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1917198433 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1917198434} - - component: {fileID: 1917198438} - - component: {fileID: 1917198437} - - component: {fileID: 1917198436} - - component: {fileID: 1917198435} - m_Layer: 5 - m_Name: Climb Interactable Info - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1917198434 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1917198433} - m_LocalRotation: {x: 0, y: -0.7071068, z: 0, w: 0.7071068} - m_LocalPosition: {x: 0, y: 0, z: 1.306} - m_LocalScale: {x: 0.002, y: 0.002, z: 0.002} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1589715510} - m_Father: {fileID: 439588100} - m_RootOrder: 7 - m_LocalEulerAnglesHint: {x: 0, y: -90, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: -2.867, y: 1.5} - m_SizeDelta: {x: 700, y: 200} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1917198435 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1917198433} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 7951c64acb0fa62458bf30a60089fe2d, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 0 - m_CheckFor2DOcclusion: 0 - m_CheckFor3DOcclusion: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RaycastTriggerInteraction: 1 ---- !u!114 &1917198436 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1917198433} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!114 &1917198437 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1917198433} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 0 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 800, y: 600} - m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 0 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 1 ---- !u!223 &1917198438 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1917198433} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 2 - m_Camera: {fileID: 1731298971} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_AdditionalShaderChannelsFlag: 25 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 ---- !u!1 &1936063055 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1936063056} - - component: {fileID: 1936063058} - - component: {fileID: 1936063057} - m_Layer: 5 - m_Name: Panel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1936063056 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1936063055} - 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: 650025389} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1936063057 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1936063055} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.16862746, g: 0.16862746, b: 0.16862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1936063058 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1936063055} - m_CullTransparentMesh: 1 ---- !u!1 &196977305468683332 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 196977305468683333} - - component: {fileID: 196977305468683336} - - component: {fileID: 196977305468683334} - - component: {fileID: 4934032446432824226} - m_Layer: 5 - m_Name: Kinematic Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &196977305468683333 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 196977305468683332} - 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: 336426668} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.000091552734, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &196977305468683334 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 196977305468683332} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 0 - m_VerticalFit: 2 ---- !u!222 &196977305468683336 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 196977305468683332} - m_CullTransparentMesh: 0 ---- !u!1 &196977306215183537 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 196977306215183538} - - component: {fileID: 196977306215183541} - - component: {fileID: 9108292829394508247} - m_Layer: 5 - m_Name: Header Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &196977306215183538 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 196977306215183537} - 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: 1202312659} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -0.6850014} - m_SizeDelta: {x: -428, y: -65.13} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &196977306215183541 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 196977306215183537} - m_CullTransparentMesh: 0 ---- !u!23 &304875268724588487 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1417002648429656558} - 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: 5561349426305759274, guid: 63e02ddb08ce42da868504e1333d48ae, type: 3} - 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!1 &604367606304239376 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 604367606304239380} - - component: {fileID: 604367606304239381} - - component: {fileID: 604367606304239378} - - component: {fileID: 604367606304239379} - - component: {fileID: 604367606304239383} - m_Layer: 5 - m_Name: Grab Interactable Info - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &604367606304239378 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 604367606304239376} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 0 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 800, y: 600} - m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 0 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 1 ---- !u!114 &604367606304239379 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 604367606304239376} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!224 &604367606304239380 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 604367606304239376} - m_LocalRotation: {x: -0, y: 0.7071068, z: -0, w: 0.7071068} - m_LocalPosition: {x: 0, y: 0, z: -2.5} - m_LocalScale: {x: 0.002, y: 0.002, z: 0.002} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1202312659} - - {fileID: 336426668} - - {fileID: 874919885} - - {fileID: 564796392} - m_Father: {fileID: 439588100} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 4.5, y: 1.5} - m_SizeDelta: {x: 700, y: 200} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!223 &604367606304239381 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 604367606304239376} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 2 - m_Camera: {fileID: 1731298971} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_AdditionalShaderChannelsFlag: 25 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 ---- !u!114 &604367606304239383 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 604367606304239376} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 7951c64acb0fa62458bf30a60089fe2d, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 0 - m_CheckFor2DOcclusion: 0 - m_CheckFor3DOcclusion: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RaycastTriggerInteraction: 1 ---- !u!64 &1139231440288762857 -MeshCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7733875956082356047} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 4 - m_Convex: 1 - m_CookingOptions: 30 - m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1417002648429656558 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4351758153949589637} - - component: {fileID: 4136355493345961344} - - component: {fileID: 304875268724588487} - - component: {fileID: 1417002648429656559} - - component: {fileID: 6720061550881514980} - m_Layer: 0 - m_Name: Gaze Hover Simple Interactable - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!65 &1417002648429656559 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1417002648429656558} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!114 &2719188128611660613 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7733875956082356047} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 8a35f6cfbfba9b548aaa00d52cfe8a50, 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: 1 - m_AllowGazeSelect: 0 - m_OverrideGazeTimeToSelect: 0 - m_GazeTimeToSelect: 2 - m_OverrideTimeToAutoDeselectGaze: 0 - m_TimeToAutoDeselectGaze: 2 - m_AllowGazeAssistance: 1 - m_FirstHoverEntered: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 8990637463419988326} - m_TargetAssemblyTypeName: UnityEngine.Renderer, UnityEngine - m_MethodName: set_material - m_Mode: 2 - m_Arguments: - m_ObjectArgument: {fileID: 5561349426305759274, guid: 9e1dc1c14313460d872de39e35129b39, type: 3} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Material, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - m_LastHoverExited: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 8990637463419988326} - m_TargetAssemblyTypeName: UnityEngine.Renderer, UnityEngine - m_MethodName: set_material - m_Mode: 2 - m_Arguments: - m_ObjectArgument: {fileID: 5561349426305759274, guid: 63e02ddb08ce42da868504e1333d48ae, type: 3} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Material, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - 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: [] ---- !u!114 &2719188129144207001 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7733875955549809299} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 8a35f6cfbfba9b548aaa00d52cfe8a50, 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: 1 - m_AllowGazeSelect: 1 - m_OverrideGazeTimeToSelect: 1 - m_GazeTimeToSelect: 2 - m_OverrideTimeToAutoDeselectGaze: 1 - m_TimeToAutoDeselectGaze: 4 - m_AllowGazeAssistance: 0 - m_FirstHoverEntered: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 8990637461805051066} - m_TargetAssemblyTypeName: UnityEngine.Renderer, UnityEngine - m_MethodName: set_material - m_Mode: 2 - m_Arguments: - m_ObjectArgument: {fileID: 5561349426305759274, guid: 9e1dc1c14313460d872de39e35129b39, type: 3} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Material, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - - m_Target: {fileID: 1209329927} - m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine - m_MethodName: SetActive - m_Mode: 6 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 1 - m_CallState: 2 - - m_Target: {fileID: 1714474117} - m_TargetAssemblyTypeName: UnityEngine.UI.Text, UnityEngine.UI - m_MethodName: set_text - m_Mode: 5 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: Hovered - m_BoolArgument: 1 - m_CallState: 2 - m_LastHoverExited: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 8990637461805051066} - m_TargetAssemblyTypeName: UnityEngine.Renderer, UnityEngine - m_MethodName: set_material - m_Mode: 2 - m_Arguments: - m_ObjectArgument: {fileID: 5561349426305759274, guid: 63e02ddb08ce42da868504e1333d48ae, type: 3} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Material, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - - m_Target: {fileID: 1209329927} - m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine - m_MethodName: SetActive - m_Mode: 6 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - m_HoverEntered: - m_PersistentCalls: - m_Calls: [] - m_HoverExited: - m_PersistentCalls: - m_Calls: [] - m_FirstSelectEntered: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 1714474117} - m_TargetAssemblyTypeName: UnityEngine.UI.Text, UnityEngine.UI - m_MethodName: set_text - m_Mode: 5 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: Selected - m_BoolArgument: 0 - m_CallState: 2 - m_LastSelectExited: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 1714474117} - m_TargetAssemblyTypeName: UnityEngine.UI.Text, UnityEngine.UI - m_MethodName: set_text - m_Mode: 5 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: Deselected - m_BoolArgument: 0 - m_CallState: 2 - - m_Target: {fileID: 8990637461805051066} - m_TargetAssemblyTypeName: UnityEngine.Renderer, UnityEngine - m_MethodName: set_material - m_Mode: 2 - m_Arguments: - m_ObjectArgument: {fileID: 5561349426305759274, guid: 63e02ddb08ce42da868504e1333d48ae, type: 3} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Material, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - 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: [] ---- !u!114 &3807310294900035020 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807310294900035022} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 0.7490196} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &3807310294900035021 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807310294900035022} - m_CullTransparentMesh: 1 ---- !u!1 &3807310294900035022 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3807310294900035023} - - component: {fileID: 3807310294900035021} - - component: {fileID: 3807310294900035020} - m_Layer: 5 - m_Name: Panel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &3807310294900035023 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807310294900035022} - 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: 3807310296080488667} - m_Father: {fileID: 3807310296116640662} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0} - m_AnchorMax: {x: 0.5, y: 0} - m_AnchoredPosition: {x: 0, y: 50} - m_SizeDelta: {x: 275, y: 100} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &3807310295319535098 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807310295319535103} - m_CullTransparentMesh: 1 ---- !u!224 &3807310295319535100 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807310295319535103} - 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: 3807310295681469693} - m_Father: {fileID: 3807310296116640662} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0} - m_AnchorMax: {x: 0.5, y: 0} - m_AnchoredPosition: {x: 275, y: 50} - m_SizeDelta: {x: 250, y: 100} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &3807310295319535101 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807310295319535103} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 0.7490196} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &3807310295319535103 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3807310295319535100} - - component: {fileID: 3807310295319535098} - - component: {fileID: 3807310295319535101} - m_Layer: 5 - m_Name: Panel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &3807310295418403514 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807310295418403519} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 0 - m_VerticalFit: 2 ---- !u!222 &3807310295418403515 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807310295418403519} - m_CullTransparentMesh: 0 ---- !u!224 &3807310295418403516 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807310295418403519} - 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: 3807310296483843619} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &3807310295418403517 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807310295418403519} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 18 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 1 - m_MaxSize: 50 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: Enable Particle System ---- !u!1 &3807310295418403519 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3807310295418403516} - - component: {fileID: 3807310295418403515} - - component: {fileID: 3807310295418403514} - - component: {fileID: 3807310295418403517} - m_Layer: 5 - m_Name: Enable Particle System - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &3807310295488059788 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807310295488059790} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 0.7490196} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &3807310295488059789 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807310295488059790} - m_CullTransparentMesh: 1 ---- !u!1 &3807310295488059790 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3807310295488059791} - - component: {fileID: 3807310295488059789} - - component: {fileID: 3807310295488059788} - m_Layer: 5 - m_Name: Header Panel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &3807310295488059791 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807310295488059790} - 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: 3807310295959509738} - m_Father: {fileID: 3807310296116640662} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -48.5} - m_SizeDelta: {x: 0, y: 98.63} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &3807310295681469688 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807310295681469692} - m_CullTransparentMesh: 0 ---- !u!114 &3807310295681469690 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807310295681469692} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 18 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 1 - m_MaxSize: 40 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: Increment UI Text ---- !u!114 &3807310295681469691 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807310295681469692} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 0 - m_VerticalFit: 2 ---- !u!1 &3807310295681469692 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3807310295681469693} - - component: {fileID: 3807310295681469688} - - component: {fileID: 3807310295681469691} - - component: {fileID: 3807310295681469690} - m_Layer: 5 - m_Name: Increment UI Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &3807310295681469693 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807310295681469692} - 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: 3807310295319535100} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &3807310295959509736 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807310295959509741} - m_CullTransparentMesh: 0 ---- !u!224 &3807310295959509738 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807310295959509741} - 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: 3807310295488059791} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -0.6850014} - m_SizeDelta: {x: -428, y: -65.13} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &3807310295959509739 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807310295959509741} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 24 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 2 - m_MaxSize: 40 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: Poke Interaction Examples ---- !u!1 &3807310295959509741 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3807310295959509738} - - component: {fileID: 3807310295959509736} - - component: {fileID: 3807310295959509739} - m_Layer: 5 - m_Name: Header Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!222 &3807310296080488662 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807310296080488666} - m_CullTransparentMesh: 0 ---- !u!114 &3807310296080488664 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807310296080488666} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 18 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 1 - m_MaxSize: 40 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: Play Sound ---- !u!114 &3807310296080488665 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807310296080488666} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 0 - m_VerticalFit: 2 ---- !u!1 &3807310296080488666 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3807310296080488667} - - component: {fileID: 3807310296080488662} - - component: {fileID: 3807310296080488665} - - component: {fileID: 3807310296080488664} - m_Layer: 5 - m_Name: Play Sound - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &3807310296080488667 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807310296080488666} - 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: 3807310294900035023} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!223 &3807310296116640658 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807310296116640665} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 2 - m_Camera: {fileID: 1731298971} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_AdditionalShaderChannelsFlag: 25 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 ---- !u!114 &3807310296116640660 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807310296116640665} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!114 &3807310296116640661 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807310296116640665} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 0 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 800, y: 600} - m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 0 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 1 ---- !u!224 &3807310296116640662 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807310296116640665} - m_LocalRotation: {x: 0, y: 1, z: 0, w: 0} - m_LocalPosition: {x: 0, y: 0, z: -5} - m_LocalScale: {x: 0.002, y: 0.002, z: 0.002} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 3807310295488059791} - - {fileID: 3807310296483843619} - - {fileID: 3807310294900035023} - - {fileID: 3807310295319535100} - m_Father: {fileID: 439588100} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 1.5, y: 1.5} - m_SizeDelta: {x: 800, y: 200} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &3807310296116640663 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807310296116640665} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 7951c64acb0fa62458bf30a60089fe2d, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 0 - m_CheckFor2DOcclusion: 0 - m_CheckFor3DOcclusion: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RaycastTriggerInteraction: 1 ---- !u!1 &3807310296116640665 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3807310296116640662} - - component: {fileID: 3807310296116640658} - - component: {fileID: 3807310296116640661} - - component: {fileID: 3807310296116640660} - - component: {fileID: 3807310296116640663} - m_Layer: 5 - m_Name: Poke Interactions Info - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &3807310296483843616 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807310296483843618} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 0.7490196} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &3807310296483843617 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807310296483843618} - m_CullTransparentMesh: 1 ---- !u!1 &3807310296483843618 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3807310296483843619} - - component: {fileID: 3807310296483843617} - - component: {fileID: 3807310296483843616} - m_Layer: 5 - m_Name: Panel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &3807310296483843619 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807310296483843618} - 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: 3807310295418403516} - m_Father: {fileID: 3807310296116640662} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0} - m_AnchorMax: {x: 0.5, y: 0} - m_AnchoredPosition: {x: -275, y: 50} - m_SizeDelta: {x: 250, y: 100} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1001 &3953970342977539823 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 3953970342314940649, guid: 2ea572d587ee60f44bd5baa3bc2d6503, type: 3} - propertyPath: m_RootOrder - value: 7 - objectReference: {fileID: 0} - - target: {fileID: 3953970342314940649, guid: 2ea572d587ee60f44bd5baa3bc2d6503, type: 3} - propertyPath: m_LocalPosition.x - value: -3.75 - objectReference: {fileID: 0} - - target: {fileID: 3953970342314940649, guid: 2ea572d587ee60f44bd5baa3bc2d6503, type: 3} - propertyPath: m_LocalPosition.y - value: 0.125 - objectReference: {fileID: 0} - - target: {fileID: 3953970342314940649, guid: 2ea572d587ee60f44bd5baa3bc2d6503, type: 3} - propertyPath: m_LocalPosition.z - value: 2.5 - objectReference: {fileID: 0} - - target: {fileID: 3953970342314940649, guid: 2ea572d587ee60f44bd5baa3bc2d6503, type: 3} - propertyPath: m_LocalRotation.w - value: 0.7071068 - objectReference: {fileID: 0} - - target: {fileID: 3953970342314940649, guid: 2ea572d587ee60f44bd5baa3bc2d6503, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3953970342314940649, guid: 2ea572d587ee60f44bd5baa3bc2d6503, type: 3} - propertyPath: m_LocalRotation.y - value: 0.7071068 - objectReference: {fileID: 0} - - target: {fileID: 3953970342314940649, guid: 2ea572d587ee60f44bd5baa3bc2d6503, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3953970342314940649, guid: 2ea572d587ee60f44bd5baa3bc2d6503, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3953970342314940649, guid: 2ea572d587ee60f44bd5baa3bc2d6503, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 90 - objectReference: {fileID: 0} - - target: {fileID: 3953970342314940649, guid: 2ea572d587ee60f44bd5baa3bc2d6503, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3953970342314940650, guid: 2ea572d587ee60f44bd5baa3bc2d6503, type: 3} - propertyPath: m_Name - value: Climb Sample - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 2ea572d587ee60f44bd5baa3bc2d6503, type: 3} ---- !u!33 &4136355493345961344 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1417002648429656558} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &4351758153949589637 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1417002648429656558} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.5, y: 0.58, z: 0} - m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1880968184} - m_Father: {fileID: 547229428} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &4581292472285887089 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4581292472285887094} - - component: {fileID: 4581292472285887093} - - component: {fileID: 4581292472285887092} - - component: {fileID: 4581292472285887095} - m_Layer: 0 - m_Name: Poke Interactions Table - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!23 &4581292472285887092 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4581292472285887089} - 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: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} - 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 &4581292472285887093 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4581292472285887089} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &4581292472285887094 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4581292472285887089} - m_LocalRotation: {x: -0, y: 0.7071068, z: -0, w: 0.7071068} - m_LocalPosition: {x: 1.5, y: 0.625, z: -4.4199996} - m_LocalScale: {x: 0.40000004, y: 1, z: 1.85} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 439588100} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} ---- !u!65 &4581292472285887095 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4581292472285887089} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &4726882081983558433 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7733875956082356047} - m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} ---- !u!33 &4726882083590108925 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7733875955549809299} - m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} ---- !u!114 &4934032446432824226 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 196977305468683332} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 18 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 1 - m_MaxSize: 50 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: 'Kinematic - - Movement' ---- !u!4 &4943412722798158840 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7733875955549809299} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.5, y: 0.58, z: 0} - m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 547229428} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!4 &4943412724412835364 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7733875956082356047} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0.58, z: 0} - m_LocalScale: {x: 0.2, y: 0.1, z: 0.2} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 547229428} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &6720061550881514980 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1417002648429656558} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 8a35f6cfbfba9b548aaa00d52cfe8a50, 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: 1 - m_AllowGazeSelect: 0 - m_OverrideGazeTimeToSelect: 0 - m_GazeTimeToSelect: 0 - m_OverrideTimeToAutoDeselectGaze: 0 - m_TimeToAutoDeselectGaze: 3 - m_AllowGazeAssistance: 0 - m_FirstHoverEntered: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 304875268724588487} - m_TargetAssemblyTypeName: UnityEngine.Renderer, UnityEngine - m_MethodName: set_material - m_Mode: 2 - m_Arguments: - m_ObjectArgument: {fileID: 5561349426305759274, guid: 9e1dc1c14313460d872de39e35129b39, type: 3} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Material, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - - m_Target: {fileID: 1880968183} - m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine - m_MethodName: SetActive - m_Mode: 6 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 1 - m_CallState: 2 - - m_Target: {fileID: 0} - m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine - m_MethodName: SetActive - m_Mode: 6 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 1 - m_CallState: 2 - m_LastHoverExited: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 304875268724588487} - m_TargetAssemblyTypeName: UnityEngine.Renderer, UnityEngine - m_MethodName: set_material - m_Mode: 2 - m_Arguments: - m_ObjectArgument: {fileID: 5561349426305759274, guid: 63e02ddb08ce42da868504e1333d48ae, type: 3} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Material, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - - m_Target: {fileID: 1880968183} - m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine - m_MethodName: SetActive - m_Mode: 6 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - m_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: [] ---- !u!1 &7733875955549809299 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4943412722798158840} - - component: {fileID: 4726882083590108925} - - component: {fileID: 8990637461805051066} - - component: {fileID: 7733875955549809300} - - component: {fileID: 2719188129144207001} - m_Layer: 0 - m_Name: Gaze Select/Deselect Simple Interactable - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!135 &7733875955549809300 -SphereCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7733875955549809299} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Radius: 0.5 - m_Center: {x: 0, y: 0, z: 0} ---- !u!1 &7733875956082356047 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4943412724412835364} - - component: {fileID: 4726882081983558433} - - component: {fileID: 8990637463419988326} - - component: {fileID: 1139231440288762857} - - component: {fileID: 2719188128611660613} - m_Layer: 0 - m_Name: Gaze Assisted Simple Interactable - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!23 &8990637461805051066 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7733875955549809299} - 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: 5561349426305759274, guid: 63e02ddb08ce42da868504e1333d48ae, type: 3} - 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!23 &8990637463419988326 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7733875956082356047} - 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: 5561349426305759274, guid: 63e02ddb08ce42da868504e1333d48ae, type: 3} - 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!114 &9108292829394508247 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 196977306215183537} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 24 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 2 - m_MaxSize: 40 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: Grab Interactable Objects diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/AffordanceThemes/InteractionColorAffordanceTheme.asset b/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/AffordanceThemes/InteractionColorAffordanceTheme.asset deleted file mode 100644 index 788c4471..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/AffordanceThemes/InteractionColorAffordanceTheme.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6653db802ddc18d5141074872dd16d45cb21f344b3b699de736bf58ef1dc4264 -size 2632 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Editor/Scripts/StarterAssetsSampleProjectValidation.cs b/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Editor/Scripts/StarterAssetsSampleProjectValidation.cs deleted file mode 100644 index fa427410..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Editor/Scripts/StarterAssetsSampleProjectValidation.cs +++ /dev/null @@ -1,76 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Unity.XR.CoreUtils.Editor; -using UnityEngine.XR.Interaction.Toolkit; - -namespace UnityEditor.XR.Interaction.Toolkit.Samples -{ - /// - /// Unity Editor class which registers Project Validation rules for the Starter Assets sample package. - /// - class StarterAssetsSampleProjectValidation - { - const string k_Category = "XR Interaction Toolkit"; - const string k_StarterAssetsSampleName = "Starter Assets"; - const string k_TeleportLayerName = "Teleport"; - const int k_TeleportLayerIndex = 31; - - static readonly BuildTargetGroup[] s_BuildTargetGroups = - ((BuildTargetGroup[])Enum.GetValues(typeof(BuildTargetGroup))).Distinct().ToArray(); - - static readonly List s_BuildValidationRules = new List(); - - [InitializeOnLoadMethod] - static void RegisterProjectValidationRules() - { - // In the Player Settings UI we have to delay the call one frame to let the settings provider get initialized - // since we need to access the settings asset to set the rule's non-delegate properties (FixItAutomatic). - EditorApplication.delayCall += AddRules; - } - - static void AddRules() - { - if (s_BuildValidationRules.Count == 0) - { - s_BuildValidationRules.Add( - new BuildValidationRule - { - Category = k_Category, - Message = $"[{k_StarterAssetsSampleName}] Interaction Layer {k_TeleportLayerIndex} should be set to '{k_TeleportLayerName}' for teleportation locomotion.", - FixItMessage = $"XR Interaction Toolkit samples reserve Interaction Layer {k_TeleportLayerIndex} for teleportation locomotion. Set Interaction Layer {k_TeleportLayerIndex} to '{k_TeleportLayerName}' to prevent conflicts.", - HelpText = "Please note Interaction Layers are unique to the XR Interaction Toolkit and can be found in Edit > Project Settings > XR Plug-in Management > XR Interaction Toolkit", - FixItAutomatic = InteractionLayerSettings.Instance.IsLayerEmpty(k_TeleportLayerIndex) || IsInteractionLayerTeleport(), - Error = false, - CheckPredicate = IsInteractionLayerTeleport, - FixIt = () => - { - if (InteractionLayerSettings.Instance.IsLayerEmpty(k_TeleportLayerIndex) || DisplayTeleportDialog()) - InteractionLayerSettings.Instance.SetLayerNameAt(k_TeleportLayerIndex, k_TeleportLayerName); - else - SettingsService.OpenProjectSettings(XRInteractionToolkitSettingsProvider.k_SettingsPath); - }, - }); - } - - foreach (var buildTargetGroup in s_BuildTargetGroups) - { - BuildValidator.AddRules(buildTargetGroup, s_BuildValidationRules); - } - } - - static bool IsInteractionLayerTeleport() - { - return string.Equals(InteractionLayerSettings.Instance.GetLayerNameAt(k_TeleportLayerIndex), k_TeleportLayerName, StringComparison.OrdinalIgnoreCase); - } - - static bool DisplayTeleportDialog() - { - return EditorUtility.DisplayDialog( - "Fixing Teleport Interaction Layer", - $"Interaction Layer {k_TeleportLayerIndex} for teleportation locomotion is currently set to '{InteractionLayerSettings.Instance.GetLayerNameAt(k_TeleportLayerIndex)}' instead of '{k_TeleportLayerName}'", - "Automatically Replace", - "Cancel"); - } - } -} \ No newline at end of file diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Models/XRControllerLeft.fbx b/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Models/XRControllerLeft.fbx deleted file mode 100644 index 60b81f37..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Models/XRControllerLeft.fbx +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:15a3a6081895394ba55b5564a8c96e0d6134c9d57e030ef24acd7d5ec2e215fc -size 214016 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Models/XRControllerRight.fbx b/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Models/XRControllerRight.fbx deleted file mode 100644 index 2c3efed3..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Models/XRControllerRight.fbx +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ad3f6aa2f60a8ba72d2d5d3ced96399922da6fe7c65c31acb374ae9e2acabaed -size 422656 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Interactors/Direct Interactor.prefab b/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Interactors/Direct Interactor.prefab deleted file mode 100644 index c994d2bf..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Interactors/Direct Interactor.prefab +++ /dev/null @@ -1,138 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &8841706926471734270 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6189354538098044173} - - component: {fileID: 664489801923019586} - - component: {fileID: 6059725000919627127} - m_Layer: 0 - m_Name: Direct Interactor - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6189354538098044173 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8841706926471734270} - 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: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &664489801923019586 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8841706926471734270} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4253f32900bcc4d499d675566142ded0, type: 3} - m_Name: - m_EditorClassIdentifier: - m_InteractionManager: {fileID: 0} - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 23 - m_InteractionLayers: - m_Bits: 1 - m_AttachTransform: {fileID: 0} - 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: 0 - m_PlayHapticsOnSelectEntered: 1 - m_HapticSelectEnterIntensity: 0.5 - m_HapticSelectEnterDuration: 0.1 - m_PlayHapticsOnSelectExited: 1 - m_HapticSelectExitIntensity: 0.5 - m_HapticSelectExitDuration: 0.1 - m_PlayHapticsOnSelectCanceled: 0 - m_HapticSelectCancelIntensity: 0 - m_HapticSelectCancelDuration: 0 - m_PlayHapticsOnHoverEntered: 1 - m_HapticHoverEnterIntensity: 0.25 - m_HapticHoverEnterDuration: 0.1 - m_PlayHapticsOnHoverExited: 1 - m_HapticHoverExitIntensity: 0.25 - m_HapticHoverExitDuration: 0.1 - m_PlayHapticsOnHoverCanceled: 0 - m_HapticHoverCancelIntensity: 0 - m_HapticHoverCancelDuration: 0 - m_AllowHoverHapticsWhileSelecting: 0 - m_ImproveAccuracyWithSphereCollider: 1 - m_PhysicsLayerMask: - serializedVersion: 2 - m_Bits: 1 - m_PhysicsTriggerInteraction: 1 ---- !u!135 &6059725000919627127 -SphereCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8841706926471734270} - m_Material: {fileID: 0} - m_IsTrigger: 1 - m_Enabled: 1 - serializedVersion: 2 - m_Radius: 0.1 - m_Center: {x: 0, y: 0, z: 0} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Interactors/Poke Interactor.prefab b/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Interactors/Poke Interactor.prefab deleted file mode 100644 index 617ac459..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Interactors/Poke Interactor.prefab +++ /dev/null @@ -1,269 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &1096232077998711156 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8259524632637961923} - - component: {fileID: 5061549556326891251} - - component: {fileID: 1925769544920504264} - m_Layer: 0 - m_Name: Poke Point - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8259524632637961923 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1096232077998711156} - m_LocalRotation: {x: 0.043619405, y: 0, z: 0, w: 0.9990483} - m_LocalPosition: {x: 0, y: -0.01, z: 0.025} - m_LocalScale: {x: 0.01, y: 0.01, z: 0.01} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 3652727254930583670} - m_Father: {fileID: 780270278251679399} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 5, y: 0, z: 0} ---- !u!33 &5061549556326891251 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1096232077998711156} - m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &1925769544920504264 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1096232077998711156} - 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: 670224309865224971, guid: 11cd62256b1d470f922b2c8e6446cc77, type: 3} - 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!1 &4125421792874400280 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 780270278251679399} - - component: {fileID: 2417358720014700305} - m_Layer: 0 - m_Name: Poke Interactor - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &780270278251679399 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4125421792874400280} - 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: 8259524632637961923} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &2417358720014700305 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4125421792874400280} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0924bcaa9eb50df458a783ae0e2b59f5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_InteractionManager: {fileID: 0} - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_InteractionLayers: - m_Bits: 4294967295 - m_AttachTransform: {fileID: 8259524632637961923} - 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_PokeDepth: 0.1 - m_PokeWidth: 0.0075 - m_PokeSelectWidth: 0.015 - m_PokeHoverRadius: 0.015 - m_PokeInteractionOffset: 0.005 - m_PhysicsLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_PhysicsTriggerInteraction: 1 - m_RequirePokeFilter: 1 - m_EnableUIInteraction: 1 - m_DebugVisualizationsEnabled: 0 - m_UIHoverEntered: - m_PersistentCalls: - m_Calls: [] - m_UIHoverExited: - m_PersistentCalls: - m_Calls: [] ---- !u!1 &7700498066419981941 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3652727254930583670} - - component: {fileID: 6633174523433423063} - - component: {fileID: 8692027818177823645} - m_Layer: 0 - m_Name: Cylinder - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3652727254930583670 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7700498066419981941} - m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068} - m_LocalPosition: {x: 0, y: -0.1, z: -4} - m_LocalScale: {x: 0.5, y: 3.6, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 8259524632637961923} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} ---- !u!33 &6633174523433423063 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7700498066419981941} - m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &8692027818177823645 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7700498066419981941} - 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: 5561349426305759274, guid: 9e1dc1c14313460d872de39e35129b39, type: 3} - 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} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Teleport/Directional Teleport Reticle.prefab b/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Teleport/Directional Teleport Reticle.prefab deleted file mode 100644 index 21191aff..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Teleport/Directional Teleport Reticle.prefab +++ /dev/null @@ -1,183 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &8748868027195207512 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8568544637412148623} - m_Layer: 0 - m_Name: Directional Teleport Reticle - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8568544637412148623 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8748868027195207512} - 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: 7034613628462190461} - - {fileID: 8604691383457356503} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &7355872082156136598 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 8568544637412148623} - m_Modifications: - - target: {fileID: -8679921383154817045, guid: be2911572dc3afa448d24b4e97edc5f1, type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: be2911572dc3afa448d24b4e97edc5f1, type: 3} - propertyPath: m_LocalScale.x - value: 0.50000024 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: be2911572dc3afa448d24b4e97edc5f1, type: 3} - propertyPath: m_LocalScale.y - value: 0.5000001 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: be2911572dc3afa448d24b4e97edc5f1, type: 3} - propertyPath: m_LocalScale.z - value: 0.24999999 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: be2911572dc3afa448d24b4e97edc5f1, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: be2911572dc3afa448d24b4e97edc5f1, type: 3} - propertyPath: m_LocalPosition.y - value: 0.01999997 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: be2911572dc3afa448d24b4e97edc5f1, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: be2911572dc3afa448d24b4e97edc5f1, type: 3} - propertyPath: m_LocalRotation.w - value: 0.7071068 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: be2911572dc3afa448d24b4e97edc5f1, type: 3} - propertyPath: m_LocalRotation.x - value: 0.7071068 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: be2911572dc3afa448d24b4e97edc5f1, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: be2911572dc3afa448d24b4e97edc5f1, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: be2911572dc3afa448d24b4e97edc5f1, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 90 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: be2911572dc3afa448d24b4e97edc5f1, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: be2911572dc3afa448d24b4e97edc5f1, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 919132149155446097, guid: be2911572dc3afa448d24b4e97edc5f1, type: 3} - propertyPath: m_Name - value: Reticle_Torus - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: be2911572dc3afa448d24b4e97edc5f1, type: 3} ---- !u!4 &7034613628462190461 stripped -Transform: - m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: be2911572dc3afa448d24b4e97edc5f1, type: 3} - m_PrefabInstance: {fileID: 7355872082156136598} - m_PrefabAsset: {fileID: 0} ---- !u!1001 &8133703530275568956 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 8568544637412148623} - m_Modifications: - - target: {fileID: -8679921383154817045, guid: ab3a79eba4de4be0ad5fead9fb858190, type: 3} - propertyPath: m_RootOrder - value: 1 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ab3a79eba4de4be0ad5fead9fb858190, type: 3} - propertyPath: m_LocalScale.x - value: 0.25 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ab3a79eba4de4be0ad5fead9fb858190, type: 3} - propertyPath: m_LocalScale.y - value: 0.25 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ab3a79eba4de4be0ad5fead9fb858190, type: 3} - propertyPath: m_LocalScale.z - value: 0.15 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ab3a79eba4de4be0ad5fead9fb858190, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ab3a79eba4de4be0ad5fead9fb858190, type: 3} - propertyPath: m_LocalPosition.y - value: 0.02 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ab3a79eba4de4be0ad5fead9fb858190, type: 3} - propertyPath: m_LocalPosition.z - value: 0.4 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ab3a79eba4de4be0ad5fead9fb858190, type: 3} - propertyPath: m_LocalRotation.w - value: -0.27059805 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ab3a79eba4de4be0ad5fead9fb858190, type: 3} - propertyPath: m_LocalRotation.x - value: -0.27059805 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ab3a79eba4de4be0ad5fead9fb858190, type: 3} - propertyPath: m_LocalRotation.y - value: 0.6532815 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ab3a79eba4de4be0ad5fead9fb858190, type: 3} - propertyPath: m_LocalRotation.z - value: -0.6532815 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ab3a79eba4de4be0ad5fead9fb858190, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 90 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ab3a79eba4de4be0ad5fead9fb858190, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 180 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ab3a79eba4de4be0ad5fead9fb858190, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: -45 - objectReference: {fileID: 0} - - target: {fileID: 919132149155446097, guid: ab3a79eba4de4be0ad5fead9fb858190, type: 3} - propertyPath: m_Name - value: Primitive_Wedge - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: ab3a79eba4de4be0ad5fead9fb858190, type: 3} ---- !u!4 &8604691383457356503 stripped -Transform: - m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: ab3a79eba4de4be0ad5fead9fb858190, type: 3} - m_PrefabInstance: {fileID: 8133703530275568956} - m_PrefabAsset: {fileID: 0} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/XR Interaction Setup.prefab b/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/XR Interaction Setup.prefab deleted file mode 100644 index cfc174cb..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/XR Interaction Setup.prefab +++ /dev/null @@ -1,559 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &3127728406573987378 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3127728406573987373} - - component: {fileID: 3127728406573987372} - - component: {fileID: 3127728406573987374} - m_Layer: 0 - m_Name: EventSystem - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3127728406573987373 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3127728406573987378} - 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: 4134505312059479865} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &3127728406573987372 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3127728406573987378} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} - m_Name: - m_EditorClassIdentifier: - m_FirstSelected: {fileID: 0} - m_sendNavigationEvents: 1 - m_DragThreshold: 10 ---- !u!114 &3127728406573987374 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3127728406573987378} - 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: 1 - m_MaxTrackedDeviceRaycastDistance: 1000 - m_EnableXRInput: 1 - m_EnableMouseInput: 1 - m_EnableTouchInput: 1 - m_PointAction: {fileID: 2869410428622933342, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_LeftClickAction: {fileID: 1855836014308820768, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_MiddleClickAction: {fileID: -6289560987278519447, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_RightClickAction: {fileID: -2562941478296515153, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ScrollWheelAction: {fileID: 5825226938762934180, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_NavigateAction: {fileID: -7967456002180160679, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_SubmitAction: {fileID: 3994978066732806534, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_CancelAction: {fileID: 2387711382375263438, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_EnableBuiltinActionsAsFallback: 1 - m_EnableGamepadInput: 1 - m_EnableJoystickInput: 1 - m_HorizontalAxis: Horizontal - m_VerticalAxis: Vertical - m_SubmitButton: Submit - m_CancelButton: Cancel ---- !u!1 &3127728407087826087 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3127728407087826081} - - component: {fileID: 3127728407087826080} - 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!4 &3127728407087826081 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3127728407087826087} - 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: 4134505312059479865} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &3127728407087826080 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3127728407087826087} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 83e4e6cca11330d4088d729ab4fc9d9f, type: 3} - m_Name: - m_EditorClassIdentifier: - m_StartingHoverFilters: [] - m_StartingSelectFilters: [] ---- !u!1 &3127728408163665756 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3127728408163665758} - - component: {fileID: 3127728408163665757} - 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 &3127728408163665758 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3127728408163665756} - 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: 4134505312059479865} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &3127728408163665757 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3127728408163665756} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 017c5e3933235514c9520e1dace2a4b2, type: 3} - m_Name: - m_EditorClassIdentifier: - m_ActionAssets: - - {fileID: -944628639613478452, guid: c348712bda248c246b8c49b3db54643f, type: 3} ---- !u!1 &7313654230448209575 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4134505312059479865} - m_Layer: 0 - m_Name: XR Interaction Setup - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4134505312059479865 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7313654230448209575} - 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: 3127728408163665758} - - {fileID: 3127728407087826081} - - {fileID: 3127728406573987373} - - {fileID: 7696548424635294051} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &2181405618368934381 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 9014170783809206335} - m_Modifications: - - target: {fileID: 8429981633443581377, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_Name - value: TunnelingVignette - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.size - value: 5 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[0].m_Enabled - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[1].m_Enabled - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[2].m_Enabled - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[3].m_Enabled - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[4].m_Enabled - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[0].m_LocomotionProvider - value: - objectReference: {fileID: 2728902658200667494} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[1].m_LocomotionProvider - value: - objectReference: {fileID: 9168142743249570444} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[2].m_LocomotionProvider - value: - objectReference: {fileID: 7002313976673130572} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[3].m_LocomotionProvider - value: - objectReference: {fileID: 7303196168416792226} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[4].m_LocomotionProvider - value: - objectReference: {fileID: 3656114934633903323} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[0].m_OverrideParameters.m_EaseInTime - value: 0.3 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[1].m_OverrideParameters.m_EaseInTime - value: 0.3 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[2].m_OverrideParameters.m_EaseInTime - value: 0.3 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[3].m_OverrideParameters.m_EaseInTime - value: 0.3 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[4].m_OverrideParameters.m_EaseInTime - value: 0.3 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[0].m_OverrideParameters.m_EaseOutTime - value: 0.3 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[1].m_OverrideParameters.m_EaseOutTime - value: 0.3 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[2].m_OverrideParameters.m_EaseOutTime - value: 0.3 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[3].m_OverrideParameters.m_EaseOutTime - value: 0.3 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[4].m_OverrideParameters.m_EaseOutTime - value: 0.3 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[0].m_OverrideParameters.m_ApertureSize - value: 0.7 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[1].m_OverrideParameters.m_ApertureSize - value: 0.7 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[2].m_OverrideParameters.m_ApertureSize - value: 0.7 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[3].m_OverrideParameters.m_ApertureSize - value: 0.7 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[4].m_OverrideParameters.m_ApertureSize - value: 0.7 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[0].m_OverrideParameters.m_VignetteColor.a - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[1].m_OverrideParameters.m_VignetteColor.a - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[2].m_OverrideParameters.m_VignetteColor.a - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[3].m_OverrideParameters.m_VignetteColor.a - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[4].m_OverrideParameters.m_VignetteColor.a - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[0].m_OverrideParameters.m_FeatheringEffect - value: 0.2 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[1].m_OverrideParameters.m_FeatheringEffect - value: 0.2 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[2].m_OverrideParameters.m_FeatheringEffect - value: 0.2 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[3].m_OverrideParameters.m_FeatheringEffect - value: 0.2 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[4].m_OverrideParameters.m_FeatheringEffect - value: 0.2 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[0].m_OverrideParameters.m_VignetteColorBlend.a - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[1].m_OverrideParameters.m_VignetteColorBlend.a - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[2].m_OverrideParameters.m_VignetteColorBlend.a - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[3].m_OverrideParameters.m_VignetteColorBlend.a - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[4].m_OverrideParameters.m_VignetteColorBlend.a - value: 1 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} ---- !u!1001 &9014170785273859917 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 4134505312059479865} - m_Modifications: - - target: {fileID: 1717954561962503725, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - propertyPath: m_Name - value: XR Origin (XR Rig) - objectReference: {fileID: 0} - - target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - propertyPath: m_RootOrder - value: 3 - objectReference: {fileID: 0} - - target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} ---- !u!114 &2728902658200667494 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 6397299583031462443, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - m_PrefabInstance: {fileID: 9014170785273859917} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2213c36610e3b1c4bbf886810ed9db12, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &3656114934633903323 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 5739245880472075158, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - m_PrefabInstance: {fileID: 9014170785273859917} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 496880615cd240be960d436c1c8ae570, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &7002313976673130572 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 2032798983271290625, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - m_PrefabInstance: {fileID: 9014170785273859917} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 8b94c4c83dec6a94fbaebf543478259e, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &7303196168416792226 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 1748222016861356527, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - m_PrefabInstance: {fileID: 9014170785273859917} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 01f69dc1cb084aa42b2f2f8cd87bc770, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!4 &7696548424635294051 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - m_PrefabInstance: {fileID: 9014170785273859917} - m_PrefabAsset: {fileID: 0} ---- !u!4 &9014170783809206335 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 1767192434, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - m_PrefabInstance: {fileID: 9014170785273859917} - m_PrefabAsset: {fileID: 0} ---- !u!114 &9168142743249570444 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 153982007679157697, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - m_PrefabInstance: {fileID: 9014170785273859917} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9b1e8c997df241c1a67045eeac79b41b, type: 3} - m_Name: - m_EditorClassIdentifier: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Continuous Move.preset.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Continuous Move.preset.meta deleted file mode 100644 index 6ec78be4..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Continuous Move.preset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 91f9da00cfdac5d49955df2d2d820b9c -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Continuous Turn.preset b/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Continuous Turn.preset deleted file mode 100644 index 3badcea7..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Continuous Turn.preset +++ /dev/null @@ -1,115 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!181963792 &2655988077585873504 -Preset: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: XRI Default Continuous Turn - m_TargetType: - m_NativeTypeID: 114 - m_ManagedTypePPtr: {fileID: 11500000, guid: 919e39492806b334982b6b84c90dd927, type: 3} - m_ManagedTypeFallback: - m_Properties: - - target: {fileID: 0} - propertyPath: m_Enabled - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_EditorHideFlags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_EditorClassIdentifier - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_System - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TurnSpeed - value: 60 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_LeftHandTurnAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_LeftHandTurnAction.m_Action.m_Name - value: Left Hand Turn - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_LeftHandTurnAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_LeftHandTurnAction.m_Action.m_ExpectedControlType - value: Vector2 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_LeftHandTurnAction.m_Action.m_Id - value: b9ac2485-f305-451c-9106-d1d25cc235dc - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_LeftHandTurnAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_LeftHandTurnAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_LeftHandTurnAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_LeftHandTurnAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_LeftHandTurnAction.m_Reference - value: - objectReference: {fileID: 1010738217276881514, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_RightHandTurnAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RightHandTurnAction.m_Action.m_Name - value: Right Hand Turn - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RightHandTurnAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RightHandTurnAction.m_Action.m_ExpectedControlType - value: Vector2 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RightHandTurnAction.m_Action.m_Id - value: 93119ec4-ae3b-41c0-8fb4-7ff4c5e6f732 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RightHandTurnAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RightHandTurnAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RightHandTurnAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RightHandTurnAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RightHandTurnAction.m_Reference - value: - objectReference: {fileID: -6493913391331992944, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ExcludedProperties: [] diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Continuous Turn.preset.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Continuous Turn.preset.meta deleted file mode 100644 index a7e16263..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Continuous Turn.preset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 0caad3af14f9a414dbdf25ed41e5aa47 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Gaze Controller.preset b/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Gaze Controller.preset deleted file mode 100644 index 975cede3..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Gaze Controller.preset +++ /dev/null @@ -1,747 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!181963792 &2655988077585873504 -Preset: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: XRI Default Gaze Controller - m_TargetType: - m_NativeTypeID: 114 - m_ManagedTypePPtr: {fileID: 11500000, guid: caff514de9b15ad48ab85dcff5508221, type: 3} - m_ManagedTypeFallback: - m_Properties: - - target: {fileID: 0} - propertyPath: m_Enabled - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_EditorHideFlags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_EditorClassIdentifier - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UpdateTrackingType - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_EnableInputTracking - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_EnableInputActions - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ModelPrefab - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ModelParent - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_Model - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_AnimateModel - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ModelSelectTransition - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ModelDeSelectTransition - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PositionAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PositionAction.m_Action.m_Name - value: Position - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PositionAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PositionAction.m_Action.m_ExpectedControlType - value: Vector3 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PositionAction.m_Action.m_Id - value: c5c11aa1-bde1-4a3a-a80e-886509abbc16 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PositionAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PositionAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PositionAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PositionAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PositionAction.m_Reference - value: - objectReference: {fileID: 3220680263695665919, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_RotationAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotationAction.m_Action.m_Name - value: Rotation - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotationAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotationAction.m_Action.m_ExpectedControlType - value: Quaternion - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotationAction.m_Action.m_Id - value: 49d34eac-625a-45e4-99f1-520d9a91587d - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotationAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotationAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotationAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotationAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotationAction.m_Reference - value: - objectReference: {fileID: -5930349909990434036, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_IsTrackedAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_IsTrackedAction.m_Action.m_Name - value: Is Tracked - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_IsTrackedAction.m_Action.m_Type - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_IsTrackedAction.m_Action.m_ExpectedControlType - value: Button - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_IsTrackedAction.m_Action.m_Id - value: 5c0d8bf3-8c9a-43da-89cf-8d09230caf0e - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_IsTrackedAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_IsTrackedAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_IsTrackedAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_IsTrackedAction.m_Action.m_Flags - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_IsTrackedAction.m_Reference - value: - objectReference: {fileID: -831106814531524825, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_TrackingStateAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TrackingStateAction.m_Action.m_Name - value: Tracking State - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TrackingStateAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TrackingStateAction.m_Action.m_ExpectedControlType - value: Integer - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TrackingStateAction.m_Action.m_Id - value: 776eea05-891d-47cc-ba9d-8353541bbc61 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TrackingStateAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TrackingStateAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TrackingStateAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TrackingStateAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TrackingStateAction.m_Reference - value: - objectReference: {fileID: 2069149553511882089, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_SelectAction.m_UseReference - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectAction.m_Action.m_Name - value: Select - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectAction.m_Action.m_Type - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectAction.m_Action.m_ExpectedControlType - value: Button - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectAction.m_Action.m_Id - value: d90b6a89-0f2d-4711-b5e3-6f709d46a3e9 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectAction.m_Reference - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectActionValue.m_UseReference - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectActionValue.m_Action.m_Name - value: Select Action Value - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectActionValue.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectActionValue.m_Action.m_ExpectedControlType - value: Axis - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectActionValue.m_Action.m_Id - value: 982fe616-81e7-4cea-8b1c-0fc18677699d - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectActionValue.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectActionValue.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectActionValue.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectActionValue.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectActionValue.m_Reference - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateAction.m_UseReference - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateAction.m_Action.m_Name - value: Activate - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateAction.m_Action.m_Type - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateAction.m_Action.m_ExpectedControlType - value: Button - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateAction.m_Action.m_Id - value: 19b691c8-8354-453a-818d-9ab6fc719aa7 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateAction.m_Reference - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateActionValue.m_UseReference - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateActionValue.m_Action.m_Name - value: Activate Action Value - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateActionValue.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateActionValue.m_Action.m_ExpectedControlType - value: Axis - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateActionValue.m_Action.m_Id - value: 8f68251c-035b-44ae-9665-8d736bde8dbe - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateActionValue.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateActionValue.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateActionValue.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateActionValue.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateActionValue.m_Reference - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressAction.m_UseReference - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressAction.m_Action.m_Name - value: UI Press - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressAction.m_Action.m_Type - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressAction.m_Action.m_ExpectedControlType - value: Button - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressAction.m_Action.m_Id - value: cdf9e438-d5dd-488a-b24c-92607b3cf39e - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressAction.m_Reference - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressActionValue.m_UseReference - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressActionValue.m_Action.m_Name - value: UI Press Action Value - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressActionValue.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressActionValue.m_Action.m_ExpectedControlType - value: Axis - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressActionValue.m_Action.m_Id - value: d4ffb96f-9b0b-4d82-93a2-b7bd82d288c9 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressActionValue.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressActionValue.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressActionValue.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressActionValue.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressActionValue.m_Reference - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIScrollAction.m_UseReference - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIScrollAction.m_Action.m_Name - value: UI Scroll - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIScrollAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIScrollAction.m_Action.m_ExpectedControlType - value: Vector2 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIScrollAction.m_Action.m_Id - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIScrollAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIScrollAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIScrollAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIScrollAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIScrollAction.m_Reference - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_HapticDeviceAction.m_UseReference - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_HapticDeviceAction.m_Action.m_Name - value: Haptic Device - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_HapticDeviceAction.m_Action.m_Type - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_HapticDeviceAction.m_Action.m_ExpectedControlType - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_HapticDeviceAction.m_Action.m_Id - value: 9b83662a-0fd2-4aee-aae5-c6634d0fbafc - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_HapticDeviceAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_HapticDeviceAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_HapticDeviceAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_HapticDeviceAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_HapticDeviceAction.m_Reference - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotateAnchorAction.m_UseReference - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotateAnchorAction.m_Action.m_Name - value: Rotate Anchor - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotateAnchorAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotateAnchorAction.m_Action.m_ExpectedControlType - value: Vector2 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotateAnchorAction.m_Action.m_Id - value: 4cae4fad-cc16-4684-8fec-1ba47667d275 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotateAnchorAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotateAnchorAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotateAnchorAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotateAnchorAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotateAnchorAction.m_Reference - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DirectionalAnchorRotationAction.m_UseReference - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DirectionalAnchorRotationAction.m_Action.m_Name - value: Directional Anchor Rotation - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DirectionalAnchorRotationAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DirectionalAnchorRotationAction.m_Action.m_ExpectedControlType - value: Vector2 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DirectionalAnchorRotationAction.m_Action.m_Id - value: f58ccfc7-633b-46cf-9164-6dfafd85bf99 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DirectionalAnchorRotationAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DirectionalAnchorRotationAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DirectionalAnchorRotationAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DirectionalAnchorRotationAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DirectionalAnchorRotationAction.m_Reference - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TranslateAnchorAction.m_UseReference - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TranslateAnchorAction.m_Action.m_Name - value: Translate Anchor - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TranslateAnchorAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TranslateAnchorAction.m_Action.m_ExpectedControlType - value: Vector2 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TranslateAnchorAction.m_Action.m_Id - value: 83996765-f9ca-47e0-969e-b8fa763170db - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TranslateAnchorAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TranslateAnchorAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TranslateAnchorAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TranslateAnchorAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TranslateAnchorAction.m_Reference - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleToggleAction.m_UseReference - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleToggleAction.m_Action.m_Name - value: Scale Toggle - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleToggleAction.m_Action.m_Type - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleToggleAction.m_Action.m_ExpectedControlType - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleToggleAction.m_Action.m_Id - value: c491f7d4-d5f5-485e-8ebe-d323ea5e8eee - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleToggleAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleToggleAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleToggleAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleToggleAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleToggleAction.m_Reference - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleDeltaAction.m_UseReference - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleDeltaAction.m_Action.m_Name - value: Scale Delta - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleDeltaAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleDeltaAction.m_Action.m_ExpectedControlType - value: Vector2 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleDeltaAction.m_Action.m_Id - value: 702606e7-26dd-4ff2-8e26-59078e8cafee - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleDeltaAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleDeltaAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleDeltaAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleDeltaAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleDeltaAction.m_Reference - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ButtonPressPoint - value: 0.5 - objectReference: {fileID: 0} - m_ExcludedProperties: [] diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Left Controller.preset b/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Left Controller.preset deleted file mode 100644 index 6489b29f..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Left Controller.preset +++ /dev/null @@ -1,747 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!181963792 &2655988077585873504 -Preset: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: XRI Default Left Controller - m_TargetType: - m_NativeTypeID: 114 - m_ManagedTypePPtr: {fileID: 11500000, guid: caff514de9b15ad48ab85dcff5508221, type: 3} - m_ManagedTypeFallback: - m_Properties: - - target: {fileID: 0} - propertyPath: m_Enabled - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_EditorHideFlags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_EditorClassIdentifier - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UpdateTrackingType - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_EnableInputTracking - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_EnableInputActions - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ModelPrefab - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ModelParent - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_Model - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_AnimateModel - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ModelSelectTransition - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ModelDeSelectTransition - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PositionAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PositionAction.m_Action.m_Name - value: Position - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PositionAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PositionAction.m_Action.m_ExpectedControlType - value: Vector3 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PositionAction.m_Action.m_Id - value: 8b170a9b-132e-486d-947e-6a244d4362ea - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PositionAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PositionAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PositionAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PositionAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PositionAction.m_Reference - value: - objectReference: {fileID: -2024308242397127297, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_RotationAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotationAction.m_Action.m_Name - value: Rotation - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotationAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotationAction.m_Action.m_ExpectedControlType - value: Quaternion - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotationAction.m_Action.m_Id - value: 080819c2-8547-4beb-8522-e6356be16fb1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotationAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotationAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotationAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotationAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotationAction.m_Reference - value: - objectReference: {fileID: 8248158260566104461, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_IsTrackedAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_IsTrackedAction.m_Action.m_Name - value: Is Tracked - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_IsTrackedAction.m_Action.m_Type - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_IsTrackedAction.m_Action.m_ExpectedControlType - value: Button - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_IsTrackedAction.m_Action.m_Id - value: 22c1da5c-d38f-4253-a25c-fe94205f2ec5 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_IsTrackedAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_IsTrackedAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_IsTrackedAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_IsTrackedAction.m_Action.m_Flags - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_IsTrackedAction.m_Reference - value: - objectReference: {fileID: 840156964685210860, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_TrackingStateAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TrackingStateAction.m_Action.m_Name - value: Tracking State - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TrackingStateAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TrackingStateAction.m_Action.m_ExpectedControlType - value: Integer - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TrackingStateAction.m_Action.m_Id - value: f3874727-df53-4207-8cd4-6248164663d7 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TrackingStateAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TrackingStateAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TrackingStateAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TrackingStateAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TrackingStateAction.m_Reference - value: - objectReference: {fileID: 684395432459739428, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_SelectAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectAction.m_Action.m_Name - value: Select - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectAction.m_Action.m_Type - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectAction.m_Action.m_ExpectedControlType - value: Button - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectAction.m_Action.m_Id - value: 8e000d1c-13a4-4cc0-ad37-f2e125874399 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectAction.m_Reference - value: - objectReference: {fileID: -6131295136447488360, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_SelectActionValue.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectActionValue.m_Action.m_Name - value: Select Action Value - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectActionValue.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectActionValue.m_Action.m_ExpectedControlType - value: Axis - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectActionValue.m_Action.m_Id - value: e015d020-ed5c-40b6-b968-fa9881521f0e - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectActionValue.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectActionValue.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectActionValue.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectActionValue.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectActionValue.m_Reference - value: - objectReference: {fileID: 6558622148059887818, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_ActivateAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateAction.m_Action.m_Name - value: Activate - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateAction.m_Action.m_Type - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateAction.m_Action.m_ExpectedControlType - value: Button - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateAction.m_Action.m_Id - value: 3995f9f4-6aa7-409a-80d2-5f7ea1464fde - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateAction.m_Reference - value: - objectReference: {fileID: -5982496924579745919, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_ActivateActionValue.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateActionValue.m_Action.m_Name - value: Activate Action Value - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateActionValue.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateActionValue.m_Action.m_ExpectedControlType - value: Axis - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateActionValue.m_Action.m_Id - value: 492aea1c-7d58-4cb0-8e3c-257d2f651c04 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateActionValue.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateActionValue.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateActionValue.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateActionValue.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateActionValue.m_Reference - value: - objectReference: {fileID: -4289430672226363583, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_UIPressAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressAction.m_Action.m_Name - value: UI Press - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressAction.m_Action.m_Type - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressAction.m_Action.m_ExpectedControlType - value: Button - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressAction.m_Action.m_Id - value: db89d01c-df6f-4954-b868-103dd5bdb514 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressAction.m_Reference - value: - objectReference: {fileID: -6395602842196007441, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_UIPressActionValue.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressActionValue.m_Action.m_Name - value: UI Press Action Value - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressActionValue.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressActionValue.m_Action.m_ExpectedControlType - value: Axis - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressActionValue.m_Action.m_Id - value: 6258f0cd-e000-49ea-b3b6-7c930f12c390 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressActionValue.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressActionValue.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressActionValue.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressActionValue.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressActionValue.m_Reference - value: - objectReference: {fileID: 71106601250685021, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_UIScrollAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIScrollAction.m_Action.m_Name - value: UI Scroll - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIScrollAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIScrollAction.m_Action.m_ExpectedControlType - value: Vector2 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIScrollAction.m_Action.m_Id - value: b74fcfe3-d94d-4bf1-960a-364568ffe66b - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIScrollAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIScrollAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIScrollAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIScrollAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIScrollAction.m_Reference - value: - objectReference: {fileID: 2464016903823916871, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_HapticDeviceAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_HapticDeviceAction.m_Action.m_Name - value: Haptic Device - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_HapticDeviceAction.m_Action.m_Type - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_HapticDeviceAction.m_Action.m_ExpectedControlType - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_HapticDeviceAction.m_Action.m_Id - value: 3e09b626-c80d-40ec-9592-eb3fe89c2038 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_HapticDeviceAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_HapticDeviceAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_HapticDeviceAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_HapticDeviceAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_HapticDeviceAction.m_Reference - value: - objectReference: {fileID: -8785819595477538065, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_RotateAnchorAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotateAnchorAction.m_Action.m_Name - value: Rotate Anchor - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotateAnchorAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotateAnchorAction.m_Action.m_ExpectedControlType - value: Vector2 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotateAnchorAction.m_Action.m_Id - value: 3dca8766-e652-4e78-8406-420aa73ba338 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotateAnchorAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotateAnchorAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotateAnchorAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotateAnchorAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotateAnchorAction.m_Reference - value: - objectReference: {fileID: -7363382999065477798, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_DirectionalAnchorRotationAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DirectionalAnchorRotationAction.m_Action.m_Name - value: Directional Anchor Rotation - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DirectionalAnchorRotationAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DirectionalAnchorRotationAction.m_Action.m_ExpectedControlType - value: Vector2 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DirectionalAnchorRotationAction.m_Action.m_Id - value: 7d323aae-15a7-4c32-a2b9-0653cb108725 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DirectionalAnchorRotationAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DirectionalAnchorRotationAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DirectionalAnchorRotationAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DirectionalAnchorRotationAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DirectionalAnchorRotationAction.m_Reference - value: - objectReference: {fileID: -8811388872089202044, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_TranslateAnchorAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TranslateAnchorAction.m_Action.m_Name - value: Translate Anchor - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TranslateAnchorAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TranslateAnchorAction.m_Action.m_ExpectedControlType - value: Vector2 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TranslateAnchorAction.m_Action.m_Id - value: e873605e-6a95-4389-8fbe-39069340ba92 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TranslateAnchorAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TranslateAnchorAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TranslateAnchorAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TranslateAnchorAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TranslateAnchorAction.m_Reference - value: - objectReference: {fileID: 7779212132400271959, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_ScaleToggleAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleToggleAction.m_Action.m_Name - value: Scale Toggle - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleToggleAction.m_Action.m_Type - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleToggleAction.m_Action.m_ExpectedControlType - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleToggleAction.m_Action.m_Id - value: f154653e-fb1f-4aa0-b5a4-b7541ef2cad9 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleToggleAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleToggleAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleToggleAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleToggleAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleToggleAction.m_Reference - value: - objectReference: {fileID: -335775248641796371, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_ScaleDeltaAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleDeltaAction.m_Action.m_Name - value: Scale Delta - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleDeltaAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleDeltaAction.m_Action.m_ExpectedControlType - value: Vector2 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleDeltaAction.m_Action.m_Id - value: a45a321f-4e2e-479e-a3ab-da25a505e44e - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleDeltaAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleDeltaAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleDeltaAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleDeltaAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleDeltaAction.m_Reference - value: - objectReference: {fileID: -1636515391019944688, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_ButtonPressPoint - value: 0.5 - objectReference: {fileID: 0} - m_ExcludedProperties: [] diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Left Controller.preset.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Left Controller.preset.meta deleted file mode 100644 index 569f8bbc..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Left Controller.preset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: ffd8268f7307a0c48a067dad4a8fe060 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Left Grab Move.preset b/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Left Grab Move.preset deleted file mode 100644 index 40817339..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Left Grab Move.preset +++ /dev/null @@ -1,103 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!181963792 &2655988077585873504 -Preset: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: XRI Default Left Grab Move - m_TargetType: - m_NativeTypeID: 114 - m_ManagedTypePPtr: {fileID: 11500000, guid: 8b94c4c83dec6a94fbaebf543478259e, type: 3} - m_ManagedTypeFallback: - m_Properties: - - target: {fileID: 0} - propertyPath: m_Enabled - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_EditorHideFlags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_EditorClassIdentifier - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_System - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_EnableFreeXMovement - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_EnableFreeYMovement - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_EnableFreeZMovement - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UseGravity - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_GravityApplicationMode - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ControllerTransform - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_EnableMoveWhileSelecting - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_MoveFactor - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_GrabMoveAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_GrabMoveAction.m_Action.m_Name - value: Grab Move - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_GrabMoveAction.m_Action.m_Type - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_GrabMoveAction.m_Action.m_ExpectedControlType - value: Button - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_GrabMoveAction.m_Action.m_Id - value: 35be39bb-16ac-4214-8350-769ed84fbd11 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_GrabMoveAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_GrabMoveAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_GrabMoveAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_GrabMoveAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_GrabMoveAction.m_Reference - value: - objectReference: {fileID: -3742484312079769484, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ExcludedProperties: [] diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Right Controller.preset b/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Right Controller.preset deleted file mode 100644 index 65f91052..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Right Controller.preset +++ /dev/null @@ -1,747 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!181963792 &2655988077585873504 -Preset: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: XRI Default Right Controller - m_TargetType: - m_NativeTypeID: 114 - m_ManagedTypePPtr: {fileID: 11500000, guid: caff514de9b15ad48ab85dcff5508221, type: 3} - m_ManagedTypeFallback: - m_Properties: - - target: {fileID: 0} - propertyPath: m_Enabled - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_EditorHideFlags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_EditorClassIdentifier - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UpdateTrackingType - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_EnableInputTracking - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_EnableInputActions - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ModelPrefab - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ModelParent - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_Model - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_AnimateModel - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ModelSelectTransition - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ModelDeSelectTransition - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PositionAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PositionAction.m_Action.m_Name - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PositionAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PositionAction.m_Action.m_ExpectedControlType - value: Vector3 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PositionAction.m_Action.m_Id - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PositionAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PositionAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PositionAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PositionAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PositionAction.m_Reference - value: - objectReference: {fileID: -3326005586356538449, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_RotationAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotationAction.m_Action.m_Name - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotationAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotationAction.m_Action.m_ExpectedControlType - value: Quaternion - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotationAction.m_Action.m_Id - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotationAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotationAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotationAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotationAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotationAction.m_Reference - value: - objectReference: {fileID: 5101698808175986029, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_IsTrackedAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_IsTrackedAction.m_Action.m_Name - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_IsTrackedAction.m_Action.m_Type - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_IsTrackedAction.m_Action.m_ExpectedControlType - value: Button - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_IsTrackedAction.m_Action.m_Id - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_IsTrackedAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_IsTrackedAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_IsTrackedAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_IsTrackedAction.m_Action.m_Flags - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_IsTrackedAction.m_Reference - value: - objectReference: {fileID: -7044516463258014562, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_TrackingStateAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TrackingStateAction.m_Action.m_Name - value: Tracking State - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TrackingStateAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TrackingStateAction.m_Action.m_ExpectedControlType - value: Integer - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TrackingStateAction.m_Action.m_Id - value: 008dba4e-870a-43fb-9a1f-1a7bc3ecec0c - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TrackingStateAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TrackingStateAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TrackingStateAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TrackingStateAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TrackingStateAction.m_Reference - value: - objectReference: {fileID: -1277054153949319361, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_SelectAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectAction.m_Action.m_Name - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectAction.m_Action.m_Type - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectAction.m_Action.m_ExpectedControlType - value: Button - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectAction.m_Action.m_Id - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectAction.m_Reference - value: - objectReference: {fileID: 187161793506945269, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_SelectActionValue.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectActionValue.m_Action.m_Name - value: Select Action Value - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectActionValue.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectActionValue.m_Action.m_ExpectedControlType - value: Axis - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectActionValue.m_Action.m_Id - value: 6b1e5826-d74e-452e-ab31-5d6eae6f407e - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectActionValue.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectActionValue.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectActionValue.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectActionValue.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_SelectActionValue.m_Reference - value: - objectReference: {fileID: -1758520528963094988, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_ActivateAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateAction.m_Action.m_Name - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateAction.m_Action.m_Type - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateAction.m_Action.m_ExpectedControlType - value: Button - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateAction.m_Action.m_Id - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateAction.m_Reference - value: - objectReference: {fileID: 83097790271614945, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_ActivateActionValue.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateActionValue.m_Action.m_Name - value: Activate Action Value - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateActionValue.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateActionValue.m_Action.m_ExpectedControlType - value: Axis - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateActionValue.m_Action.m_Id - value: 98d3d870-d1c9-4fbe-9790-8d0c2cb9ffc0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateActionValue.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateActionValue.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateActionValue.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateActionValue.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ActivateActionValue.m_Reference - value: - objectReference: {fileID: 7904272356298805229, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_UIPressAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressAction.m_Action.m_Name - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressAction.m_Action.m_Type - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressAction.m_Action.m_ExpectedControlType - value: Button - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressAction.m_Action.m_Id - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressAction.m_Reference - value: - objectReference: {fileID: 3279264004350380116, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_UIPressActionValue.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressActionValue.m_Action.m_Name - value: UI Press Action Value - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressActionValue.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressActionValue.m_Action.m_ExpectedControlType - value: Axis - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressActionValue.m_Action.m_Id - value: bf4ab5bd-3648-4de6-a1f6-8e879b2612c2 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressActionValue.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressActionValue.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressActionValue.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressActionValue.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIPressActionValue.m_Reference - value: - objectReference: {fileID: -5908353012961274365, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_UIScrollAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIScrollAction.m_Action.m_Name - value: UI Scroll - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIScrollAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIScrollAction.m_Action.m_ExpectedControlType - value: Vector2 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIScrollAction.m_Action.m_Id - value: a6c0ac1e-4065-4abc-ac84-e81172fbfdd4 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIScrollAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIScrollAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIScrollAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIScrollAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UIScrollAction.m_Reference - value: - objectReference: {fileID: -6756787485274679044, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_HapticDeviceAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_HapticDeviceAction.m_Action.m_Name - value: Haptic Device - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_HapticDeviceAction.m_Action.m_Type - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_HapticDeviceAction.m_Action.m_ExpectedControlType - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_HapticDeviceAction.m_Action.m_Id - value: 59ea1b94-e9f8-4049-ab97-5920b11143a5 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_HapticDeviceAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_HapticDeviceAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_HapticDeviceAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_HapticDeviceAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_HapticDeviceAction.m_Reference - value: - objectReference: {fileID: -8222252007134549311, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_RotateAnchorAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotateAnchorAction.m_Action.m_Name - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotateAnchorAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotateAnchorAction.m_Action.m_ExpectedControlType - value: Vector2 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotateAnchorAction.m_Action.m_Id - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotateAnchorAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotateAnchorAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotateAnchorAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotateAnchorAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_RotateAnchorAction.m_Reference - value: - objectReference: {fileID: -5913262927076077117, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_DirectionalAnchorRotationAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DirectionalAnchorRotationAction.m_Action.m_Name - value: Directional Anchor Rotation - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DirectionalAnchorRotationAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DirectionalAnchorRotationAction.m_Action.m_ExpectedControlType - value: Vector2 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DirectionalAnchorRotationAction.m_Action.m_Id - value: 72b93609-c58e-411b-a958-c221860f8269 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DirectionalAnchorRotationAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DirectionalAnchorRotationAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DirectionalAnchorRotationAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DirectionalAnchorRotationAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DirectionalAnchorRotationAction.m_Reference - value: - objectReference: {fileID: -440298646266941818, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_TranslateAnchorAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TranslateAnchorAction.m_Action.m_Name - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TranslateAnchorAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TranslateAnchorAction.m_Action.m_ExpectedControlType - value: Vector2 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TranslateAnchorAction.m_Action.m_Id - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TranslateAnchorAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TranslateAnchorAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TranslateAnchorAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TranslateAnchorAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TranslateAnchorAction.m_Reference - value: - objectReference: {fileID: 875253871413052681, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_ScaleToggleAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleToggleAction.m_Action.m_Name - value: Scale Toggle - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleToggleAction.m_Action.m_Type - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleToggleAction.m_Action.m_ExpectedControlType - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleToggleAction.m_Action.m_Id - value: 0ec63ab1-52db-4370-be3a-274ee310dae9 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleToggleAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleToggleAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleToggleAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleToggleAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleToggleAction.m_Reference - value: - objectReference: {fileID: -2524354804938687746, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_ScaleDeltaAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleDeltaAction.m_Action.m_Name - value: Scale Delta - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleDeltaAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleDeltaAction.m_Action.m_ExpectedControlType - value: Vector2 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleDeltaAction.m_Action.m_Id - value: 693cabdd-8776-492d-8641-2f6adc511d4c - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleDeltaAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleDeltaAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleDeltaAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleDeltaAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScaleDeltaAction.m_Reference - value: - objectReference: {fileID: -6447266317303757838, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_ButtonPressPoint - value: 0.5 - objectReference: {fileID: 0} - m_ExcludedProperties: [] diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Right Controller.preset.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Right Controller.preset.meta deleted file mode 100644 index 82b2e982..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Right Controller.preset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 1421ad86ff3787b4dae70fe9e699a25f -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Right Grab Move.preset b/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Right Grab Move.preset deleted file mode 100644 index 5992ed80..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Right Grab Move.preset +++ /dev/null @@ -1,103 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!181963792 &2655988077585873504 -Preset: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: XRI Default Right Grab Move - m_TargetType: - m_NativeTypeID: 114 - m_ManagedTypePPtr: {fileID: 11500000, guid: 8b94c4c83dec6a94fbaebf543478259e, type: 3} - m_ManagedTypeFallback: - m_Properties: - - target: {fileID: 0} - propertyPath: m_Enabled - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_EditorHideFlags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_EditorClassIdentifier - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_System - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_EnableFreeXMovement - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_EnableFreeYMovement - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_EnableFreeZMovement - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UseGravity - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_GravityApplicationMode - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ControllerTransform - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_EnableMoveWhileSelecting - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_MoveFactor - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_GrabMoveAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_GrabMoveAction.m_Action.m_Name - value: Grab Move - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_GrabMoveAction.m_Action.m_Type - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_GrabMoveAction.m_Action.m_ExpectedControlType - value: Button - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_GrabMoveAction.m_Action.m_Id - value: e4bae209-d3e4-46d5-b781-79850736a98d - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_GrabMoveAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_GrabMoveAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_GrabMoveAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_GrabMoveAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_GrabMoveAction.m_Reference - value: - objectReference: {fileID: 15759602096507913, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ExcludedProperties: [] diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default XR Screen Space Controller.preset b/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default XR Screen Space Controller.preset deleted file mode 100644 index b2a1485b..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default XR Screen Space Controller.preset +++ /dev/null @@ -1,435 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!181963792 &2655988077585873504 -Preset: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: XRI Default XR Screen Space Controller - m_TargetType: - m_NativeTypeID: 114 - m_ManagedTypePPtr: {fileID: 11500000, guid: b7e4c509417774e7e8a8784a2739de68, type: 3} - m_ManagedTypeFallback: - m_Properties: - - target: {fileID: 0} - propertyPath: m_Enabled - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_EditorHideFlags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_EditorClassIdentifier - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_UpdateTrackingType - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_EnableInputTracking - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_EnableInputActions - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ModelPrefab - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ModelParent - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_Model - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_AnimateModel - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ModelSelectTransition - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ModelDeSelectTransition - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_EnableTouchscreenGestureInputController - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TapStartPositionAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TapStartPositionAction.m_Action.m_Name - value: Tap Start Position - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TapStartPositionAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TapStartPositionAction.m_Action.m_ExpectedControlType - value: Vector2 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TapStartPositionAction.m_Action.m_Id - value: 92224516-b7ff-4476-bcee-ac90d78580f7 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TapStartPositionAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TapStartPositionAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TapStartPositionAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TapStartPositionAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TapStartPositionAction.m_Reference - value: - objectReference: {fileID: 2494954584338170553, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_DragCurrentPositionAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DragCurrentPositionAction.m_Action.m_Name - value: Drag Current Position - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DragCurrentPositionAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DragCurrentPositionAction.m_Action.m_ExpectedControlType - value: Vector2 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DragCurrentPositionAction.m_Action.m_Id - value: f1e3548b-3ed6-4e99-a0a4-be61acca187a - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DragCurrentPositionAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DragCurrentPositionAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DragCurrentPositionAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DragCurrentPositionAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DragCurrentPositionAction.m_Reference - value: - objectReference: {fileID: -7530398834462728267, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_DragDeltaAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DragDeltaAction.m_Action.m_Name - value: Drag Delta - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DragDeltaAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DragDeltaAction.m_Action.m_ExpectedControlType - value: Vector2 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DragDeltaAction.m_Action.m_Id - value: 225cbc26-23a5-4084-9eca-ef3b0aedf80f - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DragDeltaAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DragDeltaAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DragDeltaAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DragDeltaAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DragDeltaAction.m_Reference - value: - objectReference: {fileID: -3603844561257126198, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_PinchStartPositionAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PinchStartPositionAction.m_Action.m_Name - value: Pinch Start Position - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PinchStartPositionAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PinchStartPositionAction.m_Action.m_ExpectedControlType - value: Vector2 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PinchStartPositionAction.m_Action.m_Id - value: 23bda604-799e-4d5c-a28c-a7aa89ae7d7e - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PinchStartPositionAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PinchStartPositionAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PinchStartPositionAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PinchStartPositionAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PinchStartPositionAction.m_Reference - value: - objectReference: {fileID: 9070054806217310167, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_PinchGapAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PinchGapAction.m_Action.m_Name - value: Pinch Gap - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PinchGapAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PinchGapAction.m_Action.m_ExpectedControlType - value: Axis - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PinchGapAction.m_Action.m_Id - value: ef16b2f3-a8bb-40e9-8e11-29c3c7fffcde - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PinchGapAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PinchGapAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PinchGapAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PinchGapAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PinchGapAction.m_Reference - value: - objectReference: {fileID: 3166769696172522120, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_PinchGapDeltaAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PinchGapDeltaAction.m_Action.m_Name - value: Pinch Gap Delta - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PinchGapDeltaAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PinchGapDeltaAction.m_Action.m_ExpectedControlType - value: Axis - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PinchGapDeltaAction.m_Action.m_Id - value: 818c3483-a72e-402c-b79d-eed7878ec7fd - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PinchGapDeltaAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PinchGapDeltaAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PinchGapDeltaAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PinchGapDeltaAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_PinchGapDeltaAction.m_Reference - value: - objectReference: {fileID: -5112888916153672211, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_TwistStartPositionAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TwistStartPositionAction.m_Action.m_Name - value: Twist Start Position - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TwistStartPositionAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TwistStartPositionAction.m_Action.m_ExpectedControlType - value: Vector2 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TwistStartPositionAction.m_Action.m_Id - value: abd8efdb-6861-4448-8ad7-061bf538d6ec - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TwistStartPositionAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TwistStartPositionAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TwistStartPositionAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TwistStartPositionAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TwistStartPositionAction.m_Reference - value: - objectReference: {fileID: -1941033212670429761, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_TwistDeltaRotationAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TwistDeltaRotationAction.m_Action.m_Name - value: Twist Delta Rotation - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TwistDeltaRotationAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TwistDeltaRotationAction.m_Action.m_ExpectedControlType - value: Axis - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TwistDeltaRotationAction.m_Action.m_Id - value: 8c4e1c5a-020b-4b79-b1a9-11c167503b70 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TwistDeltaRotationAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TwistDeltaRotationAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TwistDeltaRotationAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TwistDeltaRotationAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_TwistDeltaRotationAction.m_Reference - value: - objectReference: {fileID: -8156239294363760665, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_ScreenTouchCountAction.m_UseReference - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScreenTouchCountAction.m_Action.m_Name - value: Screen Touch Count - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScreenTouchCountAction.m_Action.m_Type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScreenTouchCountAction.m_Action.m_ExpectedControlType - value: Integer - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScreenTouchCountAction.m_Action.m_Id - value: 909c4e64-82b6-4d74-9913-2d58aff78cad - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScreenTouchCountAction.m_Action.m_Processors - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScreenTouchCountAction.m_Action.m_Interactions - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScreenTouchCountAction.m_Action.m_SingletonActionBindings.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScreenTouchCountAction.m_Action.m_Flags - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ScreenTouchCountAction.m_Reference - value: - objectReference: {fileID: 4162966010302970412, guid: c348712bda248c246b8c49b3db54643f, type: 3} - - target: {fileID: 0} - propertyPath: m_ControllerCamera - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_BlockInteractionsWithScreenSpaceUI - value: 1 - objectReference: {fileID: 0} - m_ExcludedProperties: [] diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator.meta deleted file mode 100644 index af974dba..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: dfe493d171654d142909b6fcb3c57fe8 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/.sample.json b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/.sample.json deleted file mode 100644 index afea4c84..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/.sample.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "displayName": "XR Device Simulator", - "description": "Assets related to the simulation of XR HMD and controllers." -} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures.meta deleted file mode 100644 index 0b7f5fa7..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 6e328aec6ff17084fb147d5b790becee -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Fist Expression Capture.asset b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Fist Expression Capture.asset deleted file mode 100644 index 2e5efbf6..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Fist Expression Capture.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3857c082dd0bdd0b37a12b84b334e67f31e724ec1f18aac6c23b09200e12c5f1 -size 6583 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Grab Expression Capture.asset b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Grab Expression Capture.asset deleted file mode 100644 index d34aa5b0..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Grab Expression Capture.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d8e9d9df655c2811e70056ccf04881b72d3390515d51095713199d7b973c6352 -size 7306 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Open Expression Capture.asset b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Open Expression Capture.asset deleted file mode 100644 index b8ffcefe..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Open Expression Capture.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c8e5b515f6a9f88dd211b7494c5fd13d140801445d3863cb5b097a2da7379f9f -size 7377 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Pinch Expression Capture.asset b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Pinch Expression Capture.asset deleted file mode 100644 index 2f8a535d..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Pinch Expression Capture.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b70d7a9d3c1afcd148712630252b8b7b0e6d4d0bdf20b74f060ba57d1f0bab11 -size 7262 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Poke Expression Capture.asset b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Poke Expression Capture.asset deleted file mode 100644 index 66a7af17..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Poke Expression Capture.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6645406e810ad0c85338a4f7cd77f0f692e8a0b08b7b46226821a3597e99ca43 -size 7409 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Poke Expression Capture.asset.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Poke Expression Capture.asset.meta deleted file mode 100644 index 64925109..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Poke Expression Capture.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 95c319715e9d2644da8ae09af8ccfee6 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Resting Expression Capture.asset b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Resting Expression Capture.asset deleted file mode 100644 index 5af83d24..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Resting Expression Capture.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1547bc633571bca88fac1c392bd992a6e8d0c2edabd6d44ad0462b806d643fce -size 6585 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Resting Expression Capture.asset.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Resting Expression Capture.asset.meta deleted file mode 100644 index 59b633fa..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Resting Expression Capture.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 5be099e6e6012c244bb41881b6c0ea07 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Thumb Expression Capture.asset b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Thumb Expression Capture.asset deleted file mode 100644 index 03e6ded1..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Thumb Expression Capture.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:018c506eee803a09d700782f649c853fa360f6dd9d12ac7eb36a942194e52f9c -size 7305 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Thumb Expression Capture.asset.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Thumb Expression Capture.asset.meta deleted file mode 100644 index 8b4d49a5..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Thumb Expression Capture.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 9d8c9c84da35a7c4c89efd57343c1df8 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Scripts.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Scripts.meta deleted file mode 100644 index 88f3c967..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Scripts.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 000d1a33d8d2f8445bb24d7d483fc34d -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Scripts/XRDeviceSimulatorControllerUI.cs b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Scripts/XRDeviceSimulatorControllerUI.cs deleted file mode 100644 index 748eeced..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Scripts/XRDeviceSimulatorControllerUI.cs +++ /dev/null @@ -1,253 +0,0 @@ -using UnityEngine.InputSystem; -using UnityEngine.UI; -using UnityEngine.XR.Interaction.Toolkit.Inputs.Simulation; - -namespace UnityEngine.XR.Interaction.Toolkit.Samples.DeviceSimulator -{ - [RequireComponent(typeof(XRDeviceSimulatorUI))] - class XRDeviceSimulatorControllerUI : MonoBehaviour - { - [Header("General")] - - [SerializeField] - Image m_ControllerImage; - - [SerializeField] - Image m_ControllerOverlayImage; - - [Header("Primary Button")] - - [SerializeField] - Image m_PrimaryButtonImage; - - [SerializeField] - Text m_PrimaryButtonText; - - [SerializeField] - Image m_PrimaryButtonIcon; - - [Header("Secondary Button")] - - [SerializeField] - Image m_SecondaryButtonImage; - - [SerializeField] - Text m_SecondaryButtonText; - - [SerializeField] - Image m_SecondaryButtonIcon; - - [Header("Trigger")] - - [SerializeField] - Image m_TriggerButtonImage; - - [SerializeField] - Text m_TriggerButtonText; - - [SerializeField] - Image m_TriggerButtonIcon; - - [Header("Grip")] - - [SerializeField] - Image m_GripButtonImage; - - [SerializeField] - Text m_GripButtonText; - - [SerializeField] - Image m_GripButtonIcon; - - [Header("Thumbstick")] - - [SerializeField] - Image m_ThumbstickButtonImage; - - [SerializeField] - Text m_ThumbstickButtonText; - - [SerializeField] - Image m_ThumbstickButtonIcon; - - [Header("Menu")] - - [SerializeField] - Image m_MenuButtonImage; - - [SerializeField] - Text m_MenuButtonText; - - [SerializeField] - Image m_MenuButtonIcon; - - XRDeviceSimulatorUI m_MainUIManager; - - bool m_PrimaryButtonActivated; - bool m_SecondaryButtonActivated; - bool m_TriggerActivated; - bool m_GripActivated; - bool m_MenuActivated; - bool m_XAxisTranslateActivated; - bool m_YAxisTranslateActivated; - - protected void Awake() - { - m_MainUIManager = GetComponent(); - } - - internal void Initialize(XRDeviceSimulator simulator) - { - m_PrimaryButtonText.text = simulator.primaryButtonAction.action.controls[0].displayName; - m_SecondaryButtonText.text = simulator.secondaryButtonAction.action.controls[0].displayName; - m_GripButtonText.text = simulator.gripAction.action.controls[0].displayName; - m_TriggerButtonText.text = simulator.triggerAction.action.controls[0].displayName; - m_MenuButtonText.text = simulator.menuAction.action.controls[0].displayName; - - var disabledImgColor = m_MainUIManager.disabledColor; - m_ThumbstickButtonImage.color = disabledImgColor; - m_ControllerImage.color = m_MainUIManager.disabledDeviceColor; - m_ControllerOverlayImage.color = disabledImgColor; - } - - internal void SetAsActiveController(bool active, XRDeviceSimulator simulator, bool isRestingHand = false) - { - var controls = isRestingHand ? - simulator.restingHandAxis2DAction.action.controls : - simulator.axis2DAction.action.controls; - - m_ThumbstickButtonText.text = $"{controls[0].displayName}, {controls[1].displayName}, {controls[2].displayName}, {controls[3].displayName}"; - - UpdateButtonVisuals(active, m_PrimaryButtonIcon, m_PrimaryButtonText, simulator.primaryButtonAction.action.controls[0]); - UpdateButtonVisuals(active, m_SecondaryButtonIcon, m_SecondaryButtonText, simulator.secondaryButtonAction.action.controls[0]); - UpdateButtonVisuals(active, m_TriggerButtonIcon, m_TriggerButtonText, simulator.triggerAction.action.controls[0]); - UpdateButtonVisuals(active, m_GripButtonIcon, m_GripButtonText, simulator.gripAction.action.controls[0]); - UpdateButtonVisuals(active, m_MenuButtonIcon, m_MenuButtonText, simulator.menuAction.action.controls[0]); - UpdateButtonVisuals(active || isRestingHand, m_ThumbstickButtonIcon, m_ThumbstickButtonText, simulator.axis2DAction.action.controls[0]); - - if (active) - { - UpdateButtonColor(m_PrimaryButtonImage, m_PrimaryButtonActivated); - UpdateButtonColor(m_SecondaryButtonImage, m_SecondaryButtonActivated); - UpdateButtonColor(m_TriggerButtonImage, m_TriggerActivated); - UpdateButtonColor(m_GripButtonImage, m_GripActivated); - UpdateButtonColor(m_MenuButtonImage, m_MenuActivated); - UpdateButtonColor(m_ThumbstickButtonImage, m_XAxisTranslateActivated || m_YAxisTranslateActivated); - - m_ControllerImage.color = m_MainUIManager.deviceColor; - m_ControllerOverlayImage.color = m_MainUIManager.enabledColor; - } - else - { - UpdateDisableControllerButton(m_PrimaryButtonActivated, m_PrimaryButtonImage, m_PrimaryButtonIcon, m_PrimaryButtonText); - UpdateDisableControllerButton(m_SecondaryButtonActivated, m_SecondaryButtonImage, m_SecondaryButtonIcon, m_SecondaryButtonText); - UpdateDisableControllerButton(m_TriggerActivated, m_TriggerButtonImage, m_TriggerButtonIcon, m_TriggerButtonText); - UpdateDisableControllerButton(m_GripActivated, m_GripButtonImage, m_GripButtonIcon, m_GripButtonText); - UpdateDisableControllerButton(m_MenuActivated, m_MenuButtonImage, m_MenuButtonIcon, m_MenuButtonText); - - if (!isRestingHand) - UpdateDisableControllerButton(m_XAxisTranslateActivated || m_YAxisTranslateActivated, m_ThumbstickButtonImage, m_ThumbstickButtonIcon, m_ThumbstickButtonText); - else - m_ThumbstickButtonImage.color = m_MainUIManager.buttonColor; - - m_ControllerImage.color = m_MainUIManager.disabledDeviceColor; - m_ControllerOverlayImage.color = m_MainUIManager.disabledColor; - } - } - - // This function keeps the button selected color active if the key if hold when the controller is disabled. - // Other buttons are disabled to avoid adding extra noise. - void UpdateDisableControllerButton(bool active, Image button, Image buttonIcon, Text buttonText) - { - if(active) - { - var tmpColor = m_MainUIManager.selectedColor; - tmpColor.a = 0.5f; - button.color = tmpColor; - buttonText.gameObject.SetActive(true); - buttonIcon.gameObject.SetActive(true); - } - else - { - button.color = m_MainUIManager.disabledButtonColor; - buttonText.gameObject.SetActive(false); - buttonIcon.gameObject.SetActive(false); - } - } - - void UpdateButtonVisuals(bool active, Image buttonIcon, Text buttonText, InputControl control) - { - buttonText.gameObject.SetActive(active); - buttonIcon.gameObject.SetActive(active); - - var color = active ? m_MainUIManager.enabledColor : m_MainUIManager.disabledColor; - buttonText.color = color; - buttonIcon.color = color; - - buttonIcon.transform.localScale = Vector3.one; - buttonIcon.sprite = m_MainUIManager.GetInputIcon(control); - switch (control.name) - { - case "leftButton": - buttonText.text = "L Mouse"; - buttonIcon.color = Color.white; - buttonIcon.transform.localScale = new Vector3(-1f, 1f, 1f); - break; - case "rightButton": - buttonText.text = "R Mouse"; - buttonIcon.color = Color.white; - break; - default: - buttonIcon.sprite = m_MainUIManager.keyboardSprite; - break; - } - } - - void UpdateButtonColor(Image image, bool activated) - { - image.color = activated ? m_MainUIManager.selectedColor : m_MainUIManager.buttonColor; - } - - internal void OnPrimaryButton(bool activated) - { - m_PrimaryButtonActivated = activated; - UpdateButtonColor(m_PrimaryButtonImage, activated); - } - - internal void OnSecondaryButton(bool activated) - { - m_SecondaryButtonActivated = activated; - UpdateButtonColor(m_SecondaryButtonImage, activated); - } - - internal void OnTrigger(bool activated) - { - m_TriggerActivated = activated; - UpdateButtonColor(m_TriggerButtonImage, activated); - } - - internal void OnGrip(bool activated) - { - m_GripActivated = activated; - UpdateButtonColor(m_GripButtonImage, activated); - } - - internal void OnMenu(bool activated) - { - m_MenuActivated = activated; - UpdateButtonColor(m_MenuButtonImage, activated); - } - - internal void OnXAxisTranslatePerformed(bool activated) - { - m_XAxisTranslateActivated = activated; - UpdateButtonColor(m_ThumbstickButtonImage, activated); - } - - internal void OnZAxisTranslatePerformed(bool activated) - { - m_YAxisTranslateActivated = activated; - UpdateButtonColor(m_ThumbstickButtonImage, activated); - } - } -} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Scripts/XRDeviceSimulatorHandsUI.cs b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Scripts/XRDeviceSimulatorHandsUI.cs deleted file mode 100644 index 657199c7..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Scripts/XRDeviceSimulatorHandsUI.cs +++ /dev/null @@ -1,182 +0,0 @@ -using System; -using System.Collections.Generic; -using UnityEngine.InputSystem; -using UnityEngine.UI; -using UnityEngine.XR.Interaction.Toolkit.Inputs.Simulation; - -namespace UnityEngine.XR.Interaction.Toolkit.Samples.DeviceSimulator -{ - [RequireComponent(typeof(XRDeviceSimulatorUI))] - class XRDeviceSimulatorHandsUI : MonoBehaviour - { - [Serializable] - class HandExpressionUI - { - [SerializeField] - Sprite m_Sprite; - [SerializeField] - Image m_ButtonImage; - [SerializeField] - Image m_Icon; - [SerializeField] - Text m_BindText; - [SerializeField] - Text m_TitleText; - - InputAction m_Action; - - public Sprite sprite - { - get => m_Sprite; - set => m_Sprite = value; - } - - public void Initialize(InputAction action, string name, Sprite icon) - { - m_Action = action; - m_BindText.text = m_Action.controls[0].displayName; - m_TitleText.text = $"[{name}]"; - if (icon != null) - m_Sprite = icon; - } - - public void UpdateButtonVisuals(bool active, XRDeviceSimulatorUI uiManager) - { - UpdateButtonActive(active); - - Color color = active ? uiManager.enabledColor : uiManager.disabledColor; - m_BindText.color = color; - m_TitleText.color = color; - m_Icon.color = color; - - m_Icon.transform.localScale = Vector3.one; - m_Icon.sprite = uiManager.GetInputIcon(m_Action?.controls[0]); - } - - public void SetButtonColor(Color color) - { - m_ButtonImage.color = color; - } - - public void UpdateButtonActive(bool active) - { - m_BindText.gameObject.SetActive(active); - m_TitleText.gameObject.SetActive(active); - m_Icon.gameObject.SetActive(active); - } - } - - [Header("General")] - - [SerializeField] - Image m_HandImage; - - [SerializeField] - Sprite m_HandDefaultSprite; - - [SerializeField] - List m_Expressions = new List(); - - XRDeviceSimulatorUI m_MainUIManager; - HandExpressionUI m_ActiveExpression; - - protected void Awake() - { - m_MainUIManager = GetComponent(); - } - - internal void Initialize(XRDeviceSimulator simulator) - { - for (var index = 0; index < simulator.simulatedHandExpressions.Count; ++index) - { - var simulatedExpression = simulator.simulatedHandExpressions[index]; - if (index >= m_Expressions.Count) - { - Debug.LogWarning("The Device Simulator has more expressions than the UI can display.", this); - } - else - { - m_Expressions[index].Initialize(simulatedExpression.toggleAction, simulatedExpression.name, simulatedExpression.icon); - } - } - - m_HandImage.color = m_MainUIManager.disabledDeviceColor; - } - - internal void SetActive(bool active, XRDeviceSimulator simulator) - { - foreach (var expression in m_Expressions) - { - expression.UpdateButtonVisuals(active, m_MainUIManager); - } - - if (active) - { - foreach (var expression in m_Expressions) - { - var isActiveExpression = m_ActiveExpression == expression; - expression.SetButtonColor(isActiveExpression ? m_MainUIManager.selectedColor : m_MainUIManager.buttonColor); - } - - m_HandImage.color = m_MainUIManager.deviceColor; - } - else - { - var disabledSelectedColor = m_MainUIManager.selectedColor; - disabledSelectedColor.a = 0.5f; - foreach (var expression in m_Expressions) - { - var isActiveExpression = m_ActiveExpression == expression; - expression.SetButtonColor(isActiveExpression ? disabledSelectedColor : m_MainUIManager.disabledButtonColor); - expression.UpdateButtonActive(isActiveExpression); - } - - m_HandImage.color = m_MainUIManager.disabledDeviceColor; - } - } - - internal void ToggleExpression(XRDeviceSimulator.SimulatedHandExpression simulatedExpression, XRDeviceSimulator simulator) - { - // The index of the hand expression corresponds 1:1 with the index of the UI button - var index = simulator.simulatedHandExpressions.IndexOf(simulatedExpression); - if (index >= m_Expressions.Count) - { - Debug.LogWarning("The Device Simulator has more expressions than the UI can display.", this); - } - else if (index < 0) - { - Debug.LogError($"The Device Simulator tried to toggle {simulatedExpression.name} but it was not found in the list of simulated hand expressions, the UI can not be updated.", this); - } - else - { - ToggleExpression(m_Expressions[index]); - } - } - - void ToggleExpression(HandExpressionUI expression) - { - if (m_ActiveExpression == expression) - { - SetExpressionActiveStatus(false, expression); - m_ActiveExpression = null; - m_HandImage.sprite = m_HandDefaultSprite; - } - else - { - if (m_ActiveExpression != null) - SetExpressionActiveStatus(false, m_ActiveExpression); - - SetExpressionActiveStatus(true, expression); - m_ActiveExpression = expression; - } - } - - void SetExpressionActiveStatus(bool isActive, HandExpressionUI expression) - { - expression.SetButtonColor(isActive ? m_MainUIManager.selectedColor : m_MainUIManager.buttonColor); - if (isActive) - m_HandImage.sprite = expression.sprite; - } - } -} - diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Scripts/XRDeviceSimulatorUI.cs b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Scripts/XRDeviceSimulatorUI.cs deleted file mode 100644 index b32c2123..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Scripts/XRDeviceSimulatorUI.cs +++ /dev/null @@ -1,1165 +0,0 @@ -using System; -using UnityEngine.InputSystem; -using UnityEngine.Serialization; -using UnityEngine.UI; -using UnityEngine.XR.Interaction.Toolkit.Inputs.Simulation; - -#if UNITY_EDITOR -using UnityEditor; -#endif - -namespace UnityEngine.XR.Interaction.Toolkit.Samples.DeviceSimulator -{ - class XRDeviceSimulatorUI : MonoBehaviour - { - XRDeviceSimulator m_Simulator; - - const string k_MouseDeviceType = "Mouse"; - const string k_TranslateLookText = "Move"; - const string k_RotateLookText = "Look"; - -#if UNITY_EDITOR - const string k_MenuOpenStateKey = "XRI." + nameof(XRDeviceSimulatorUI) + ".MenuOpenState"; -#endif - [SerializeField] - [HideInInspector] - bool m_IsMenuOpen = true; - - bool isMenuOpen - { - get - { -#if UNITY_EDITOR - m_IsMenuOpen = EditorPrefs.GetBool(k_MenuOpenStateKey, m_IsMenuOpen); -#endif - return m_IsMenuOpen; - } - - set - { - m_IsMenuOpen = value; -#if UNITY_EDITOR - EditorPrefs.SetBool(k_MenuOpenStateKey, m_IsMenuOpen); -#endif - } - } - - [Header("Open/Close Panels")] - - [SerializeField] - GameObject m_XRDeviceSimulatorMainPanel; - [SerializeField] - GameObject m_XRDeviceSimulatorCollapsedPanel; - - [Header("Sprites")] - - [SerializeField] - Sprite m_HmdSpriteDark; - [SerializeField] - Sprite m_HmdSpriteLight; - - [SerializeField] - Sprite m_KeyboardSprite; - internal Sprite keyboardSprite => m_KeyboardSprite; - - [SerializeField] - Sprite m_MouseSprite; - internal Sprite mouseSprite => m_MouseSprite; - - [SerializeField] - Sprite m_RMouseSpriteDark; - internal Sprite rMouseSpriteDark => m_RMouseSpriteDark; - - [SerializeField] - Sprite m_RMouseSpriteLight; - internal Sprite rMouseSpriteLight => m_RMouseSpriteLight; - - [HideInInspector] - [SerializeField] - Sprite m_RMouseSprite; - internal Sprite rMouseSprite - { - get - { -#if !UNITY_EDITOR - if (m_RMouseSprite == null) - m_RMouseSprite = m_RMouseSpriteDark; -#endif - return m_RMouseSprite; - } - } - - [SerializeField] - Sprite m_RoundedRectangle; - - [Header("General")] - - [SerializeField] - Text m_CycleDevicesText; - - [SerializeField] - Text m_CurrentSelectedDeviceText; - - [Header("Headset Device")] - - [SerializeField] - Image m_HeadsetImage; - - [Space] - - [SerializeField] - Image m_HeadsetMoveButton; - - [SerializeField] - Image m_HeadsetMoveButtonIcon; - - [SerializeField] - Text m_HeadsetMoveButtonText; - - [SerializeField] - Image m_HeadsetMoveValueIcon; - - [SerializeField] - Text m_HeadsetMoveValueText; - - [Space] - - [SerializeField] - Image m_HeadsetLookButton; - - [SerializeField] - Text m_HeadsetLookButtonText; - - [SerializeField] - Image m_HeadsetLookValueIcon; - - [SerializeField] - Text m_HeadsetLookValueText; - - [Space] - - [SerializeField] - [FormerlySerializedAs("m_ShowCursorButton")] - Image m_CursorLockButton; - - [SerializeField] - [FormerlySerializedAs("m_ShowCursorValueText")] - Text m_CursorLockValueText; - - [Space] - - [SerializeField] - Text m_MouseModeButtonText; - - [SerializeField] - Text m_MouseModeValueText; - - [Space] - - [SerializeField] - Image m_HeadsetSelectedButton; - - [SerializeField] - Text m_HeadsetSelectedValueText; - - [Header("Controllers")] - - [SerializeField] - Image m_ControllerSelectedButton; - - [SerializeField] - Image m_ControllerSelectedIcon; - - [SerializeField] - Text m_ControllerSelectedText; - - [SerializeField] - Text m_ControllersSelectedValueText; - - [SerializeField] - CanvasGroup m_ControllersCanvasGroup; - - [Header("Left Controller")] - - [SerializeField] - XRDeviceSimulatorControllerUI m_LeftController; - - [SerializeField] - Text m_LeftControllerButtonText; - - [Header("Right Controller")] - - [SerializeField] - XRDeviceSimulatorControllerUI m_RightController; - - [SerializeField] - Text m_RightControllerButtonText; - - [Header("Hands")] - - [SerializeField] - Image m_HandsSelectedButton; - - [SerializeField] - Image m_HandsSelectedIcon; - - [SerializeField] - Text m_HandsSelectedText; - - [SerializeField] - Image m_HandsSelectedValueIcon; - - [SerializeField] - Text m_HandsSelectedValueText; - - [SerializeField] - CanvasGroup m_HandsCanvasGroup; - - [Header("Left Hand")] - - [SerializeField] - XRDeviceSimulatorHandsUI m_LeftHand; - - [SerializeField] - Text m_LeftHandButtonText; - - [Header("Right Hand")] - - [SerializeField] - XRDeviceSimulatorHandsUI m_RightHand; - - [SerializeField] - Text m_RightHandButtonText; - - static readonly Color k_EnabledColorDark = new Color(0xC4 / 255f, 0xC4 / 255f, 0xC4 / 255f); - static readonly Color k_EnabledColorLight = new Color(0x55/255f, 0x55/255f, 0x55/255f); - [HideInInspector] - [SerializeField] - Color m_EnabledColor = Color.clear; - internal Color enabledColor - { - get - { -#if !UNITY_EDITOR - if (m_EnabledColor == Color.clear) - m_EnabledColor = k_EnabledColorDark; -#endif - return m_EnabledColor; - } - } - - static readonly Color k_DisabledColorDark = new Color(0xC4 / 255f, 0xC4 / 255f, 0xC4 / 255f, 0.5f); - static readonly Color k_DisabledColorLight = new Color(0x55/255f, 0x55/255f, 0x55/255f, 0.5f); - [HideInInspector] - [SerializeField] - Color m_DisabledColor = Color.clear; - internal Color disabledColor - { - get - { -#if !UNITY_EDITOR - if (m_DisabledColor == Color.clear) - m_DisabledColor = k_DisabledColorDark; -#endif - return m_DisabledColor; - } - } - - static readonly Color k_ButtonColorDark = new Color(0x55 / 255f, 0x55 / 255f, 0x55 / 255f); - static readonly Color k_ButtonColorLight = new Color(0xE4/255f, 0xE4/255f, 0xE4/255f); - [HideInInspector] - [SerializeField] - Color m_ButtonColor = Color.clear; - internal Color buttonColor - { - get - { -#if !UNITY_EDITOR - if (m_ButtonColor == Color.clear) - m_ButtonColor = k_ButtonColorDark; -#endif - return m_ButtonColor; - } - } - - static readonly Color k_DisabledButtonColorDark = new Color(0x55 / 255f, 0x55 / 255f, 0x55 / 255f, 0.5f); - static readonly Color k_DisabledButtonColorLight = new Color(0xE4 / 255f, 0xE4 / 255f, 0xE4 / 255f, 0.5f); - [HideInInspector] - [SerializeField] - Color m_DisabledButtonColor = Color.clear; - internal Color disabledButtonColor - { - get - { -#if !UNITY_EDITOR - if (m_DisabledButtonColor == Color.clear) - m_DisabledButtonColor = k_DisabledButtonColorDark; -#endif - return m_DisabledButtonColor; - } - } - - static readonly Color k_SelectedColorDark = new Color(0x4F / 255f, 0x65 / 255f, 0x7F / 255f); - static readonly Color k_SelectedColorLight = new Color(0x96/255f, 0xC3/255f, 0xFB/255f); - [HideInInspector] - [SerializeField] - Color m_SelectedColor = Color.clear; - internal Color selectedColor - { - get - { -#if !UNITY_EDITOR - if (m_SelectedColor == Color.clear) - m_SelectedColor = k_SelectedColorDark; -#endif - return m_SelectedColor; - } - } - - static readonly Color k_BackgroundColorDark = Color.black; - static readonly Color k_BackgroundColorLight = new Color(0xB6/255f, 0xB6/255f, 0xB6/255f); - [HideInInspector] - [SerializeField] - Color m_BackgroundColor = Color.clear; - internal Color backgroundColor - { - get - { -#if !UNITY_EDITOR - if (m_BackgroundColor == Color.clear) - m_BackgroundColor = k_BackgroundColorDark; -#endif - return m_BackgroundColor; - } - } - - static readonly Color k_DeviceColorDark = new Color(0x6E / 255f, 0x6E / 255f, 0x6E / 255f); - static readonly Color k_DeviceColorLight = new Color(0xE4 / 255f, 0xE4 / 255f, 0xE4 / 255f); - [HideInInspector] - [SerializeField] - Color m_DeviceColor = Color.clear; - internal Color deviceColor - { - get - { -#if !UNITY_EDITOR - if (m_DeviceColor == Color.clear) - m_DeviceColor = k_DeviceColorDark; -#endif - return m_DeviceColor; - } - } - - static readonly Color k_DisabledDeviceColorDark = new Color(0x58 / 255f, 0x58 / 255f, 0x58 / 255f); - static readonly Color k_DisabledDeviceColorLight = new Color(0xA2 / 255f, 0xA2 / 255f, 0xA2 / 255f, 0.5f); - [HideInInspector] - [SerializeField] - Color m_DisabledDeviceColor = Color.clear; - internal Color disabledDeviceColor - { - get - { -#if !UNITY_EDITOR - if (m_DisabledDeviceColor == Color.clear) - m_DisabledDeviceColor = k_DisabledDeviceColorDark; -#endif - return m_DisabledDeviceColor; - } - } - - - // Handles 2 axis activation for 1 UI Button - bool m_XAxisActivated; - bool m_ZAxisActivated; - - /// - /// See . - /// - protected void Start() - { - var simulator = GetComponentInParent(); - if (simulator != null) - Initialize(simulator); - } - - /// - /// See . - /// - protected void OnDestroy() - { - if (m_Simulator != null) - { - Unsubscribe(m_Simulator.manipulateLeftAction, OnManipulateLeftAction); - Unsubscribe(m_Simulator.manipulateRightAction, OnManipulateRightAction); - Unsubscribe(m_Simulator.toggleManipulateLeftAction, OnToggleManipulateLeftAction); - Unsubscribe(m_Simulator.toggleManipulateRightAction, OnToggleManipulateRightAction); - Unsubscribe(m_Simulator.toggleManipulateBodyAction, OnToggleManipulateBodyAction); - Unsubscribe(m_Simulator.manipulateHeadAction, OnManipulateHeadAction); - Unsubscribe(m_Simulator.handControllerModeAction, OnHandControllerModeAction); - Unsubscribe(m_Simulator.cycleDevicesAction, OnCycleDevicesAction); - Unsubscribe(m_Simulator.stopManipulationAction, OnStopManipulationAction); - Unsubscribe(m_Simulator.toggleMouseTransformationModeAction, OnToggleMouseTransformationModeAction); - Unsubscribe(m_Simulator.negateModeAction, OnNegateModeAction); - Unsubscribe(m_Simulator.toggleCursorLockAction, OnToggleCursorLockAction); - Unsubscribe(m_Simulator.keyboardXTranslateAction, OnKeyboardXTranslateAction); - Unsubscribe(m_Simulator.keyboardYTranslateAction, OnKeyboardYTranslateAction); - Unsubscribe(m_Simulator.keyboardZTranslateAction, OnKeyboardZTranslateAction); - Unsubscribe(m_Simulator.restingHandAxis2DAction, OnRestingHandAxis2DAction); - Unsubscribe(m_Simulator.gripAction, OnGripAction); - Unsubscribe(m_Simulator.triggerAction, OnTriggerAction); - Unsubscribe(m_Simulator.menuAction, OnMenuAction); - Unsubscribe(m_Simulator.primaryButtonAction, OnPrimaryButtonAction); - Unsubscribe(m_Simulator.secondaryButtonAction, OnSecondaryButtonAction); -#if XR_HANDS_1_1_OR_NEWER - foreach (var simulatedExpression in m_Simulator.simulatedHandExpressions) - { - simulatedExpression.performed -= OnHandExpressionAction; - } -#endif - - } - } - - void Initialize(XRDeviceSimulator simulator) - { - m_Simulator = simulator; - InitColorTheme(); - Initialize(); - // Start with the headset enabled - OnSetMouseMode(); - OnActivateHeadsetDevice(); - } - - void InitColorTheme() - { -#if UNITY_EDITOR - var isEditorPro = EditorGUIUtility.isProSkin; - m_EnabledColor = isEditorPro ? k_EnabledColorDark : k_EnabledColorLight; - m_DisabledColor = isEditorPro ? k_DisabledColorDark : k_DisabledColorLight; - m_ButtonColor = isEditorPro ? k_ButtonColorDark : k_ButtonColorLight; - m_DisabledButtonColor = isEditorPro ? k_DisabledButtonColorDark : k_DisabledButtonColorLight; - m_SelectedColor = isEditorPro ? k_SelectedColorDark : k_SelectedColorLight; - m_BackgroundColor = isEditorPro ? k_BackgroundColorDark : k_BackgroundColorLight; - m_DeviceColor = isEditorPro ? k_DeviceColorDark : k_DeviceColorLight; - m_DisabledDeviceColor = isEditorPro ? k_DisabledDeviceColorDark : k_DisabledDeviceColorLight; - m_HeadsetImage.sprite = isEditorPro ? m_HmdSpriteDark : m_HmdSpriteLight; - m_RMouseSprite = isEditorPro ? m_RMouseSpriteDark : m_RMouseSpriteLight; -#endif - } - - void Initialize() - { - var bckgrdAlpha = m_XRDeviceSimulatorMainPanel.GetComponent().color.a; - - foreach (var image in GetComponentsInChildren(true)) - image.color = image.sprite == null || image.sprite == m_RoundedRectangle ? buttonColor : enabledColor; - - - foreach (var text in GetComponentsInChildren(true)) - text.color = enabledColor; - - m_HeadsetImage.color = Color.white; - - var bckgrdColor = backgroundColor; - bckgrdColor.a = bckgrdAlpha; - m_XRDeviceSimulatorMainPanel.GetComponent().color = bckgrdColor; - m_XRDeviceSimulatorCollapsedPanel.GetComponent().color = bckgrdColor; - - m_CycleDevicesText.text = m_Simulator.cycleDevicesAction.action.controls[0].displayName; - - // Headset - var toggleManipulateBodyActionControl = m_Simulator.toggleManipulateBodyAction.action.controls[0]; - m_HeadsetSelectedValueText.text = $"{toggleManipulateBodyActionControl.displayName}"; - - var ctrlsBinding1 = m_Simulator.axis2DAction.action.controls; - var ctrlsBinding2 = m_Simulator.keyboardYTranslateAction.action.controls; - m_HeadsetMoveValueText.text = $"{ctrlsBinding1[0].displayName},{ctrlsBinding1[1].displayName},{ctrlsBinding1[2].displayName},{ctrlsBinding1[3].displayName} + " + - $"{ctrlsBinding2[0].displayName},{ctrlsBinding2[1].displayName}"; - - m_CursorLockValueText.text = m_Simulator.toggleCursorLockAction.action.controls[0].displayName; - m_CursorLockButton.color = Cursor.lockState == CursorLockMode.Locked ? selectedColor : buttonColor; - - m_HeadsetLookButtonText.text = m_Simulator.mouseTransformationMode == XRDeviceSimulator.TransformationMode.Translate ? k_TranslateLookText : k_RotateLookText; - m_MouseModeValueText.text = m_Simulator.toggleMouseTransformationModeAction.action.controls[0].displayName; - - var manipulateHeadActionControl = m_Simulator.manipulateHeadAction.action.controls[0]; - m_HeadsetLookValueIcon.sprite = GetInputIcon(manipulateHeadActionControl); - if (manipulateHeadActionControl.name.Equals("leftButton") || manipulateHeadActionControl.name.Equals("rightButton")) - { - m_HeadsetLookValueIcon.color = Color.white; - - // If the binding is using the left button, mirror the MouseR image - if (manipulateHeadActionControl.name.Equals("leftButton")) - m_HeadsetLookValueIcon.transform.localScale = new Vector3(-1f, 1f, 1f); - } - m_HeadsetLookValueText.text = manipulateHeadActionControl.device.name == k_MouseDeviceType ? k_MouseDeviceType : manipulateHeadActionControl.displayName; - - m_LeftController.Initialize(m_Simulator); - m_RightController.Initialize(m_Simulator); - var toggleSlashHoldLeftText = $"{m_Simulator.toggleManipulateLeftAction.action.controls[0].displayName} / {m_Simulator.manipulateLeftAction.action.controls[0].displayName} [Hold]"; - var toggleSlashHoldRightText = $"{m_Simulator.toggleManipulateRightAction.action.controls[0].displayName} / {m_Simulator.manipulateRightAction.action.controls[0].displayName} [Hold]"; - m_LeftControllerButtonText.text = toggleSlashHoldLeftText; - m_RightControllerButtonText.text = toggleSlashHoldRightText; - - m_LeftHand.Initialize(m_Simulator); - m_RightHand.Initialize(m_Simulator); - m_LeftHandButtonText.text = toggleSlashHoldLeftText; - m_RightHandButtonText.text = toggleSlashHoldRightText; - - UpdateDeviceInputMethod(); - - HandsSetActive(false); - -#if XR_HANDS_1_1_OR_NEWER - m_HandsSelectedValueIcon.color = enabledColor; - m_HandsSelectedValueText.color = enabledColor; -#else - m_HandsSelectedValueIcon.color = disabledColor; - m_HandsSelectedValueText.color = disabledColor; -#endif - - m_HeadsetMoveButtonIcon.color = enabledColor; - - // Update OnDestroy with corresponding Unsubscribe call when adding here - Subscribe(m_Simulator.manipulateLeftAction, OnManipulateLeftAction); - Subscribe(m_Simulator.manipulateRightAction, OnManipulateRightAction); - Subscribe(m_Simulator.toggleManipulateLeftAction, OnToggleManipulateLeftAction); - Subscribe(m_Simulator.toggleManipulateRightAction, OnToggleManipulateRightAction); - Subscribe(m_Simulator.toggleManipulateBodyAction, OnToggleManipulateBodyAction); - Subscribe(m_Simulator.manipulateHeadAction, OnManipulateHeadAction); - Subscribe(m_Simulator.handControllerModeAction, OnHandControllerModeAction); - Subscribe(m_Simulator.cycleDevicesAction, OnCycleDevicesAction); - Subscribe(m_Simulator.stopManipulationAction, OnStopManipulationAction); - Subscribe(m_Simulator.toggleMouseTransformationModeAction, OnToggleMouseTransformationModeAction); - Subscribe(m_Simulator.negateModeAction, OnNegateModeAction); - Subscribe(m_Simulator.toggleCursorLockAction, OnToggleCursorLockAction); - Subscribe(m_Simulator.keyboardXTranslateAction, OnKeyboardXTranslateAction); - Subscribe(m_Simulator.keyboardYTranslateAction, OnKeyboardYTranslateAction); - Subscribe(m_Simulator.keyboardZTranslateAction, OnKeyboardZTranslateAction); - Subscribe(m_Simulator.restingHandAxis2DAction, OnRestingHandAxis2DAction); - Subscribe(m_Simulator.gripAction, OnGripAction); - Subscribe(m_Simulator.triggerAction, OnTriggerAction); - Subscribe(m_Simulator.menuAction, OnMenuAction); - Subscribe(m_Simulator.primaryButtonAction, OnPrimaryButtonAction); - Subscribe(m_Simulator.secondaryButtonAction, OnSecondaryButtonAction); -#if XR_HANDS_1_1_OR_NEWER - foreach (var simulatedExpression in m_Simulator.simulatedHandExpressions) - { - simulatedExpression.performed += OnHandExpressionAction; - } -#endif - - m_XRDeviceSimulatorMainPanel.SetActive(isMenuOpen); - m_XRDeviceSimulatorCollapsedPanel.SetActive(!isMenuOpen); - } - - void UpdateDeviceInputMethod() - { - var toggleManipulateText = $"{m_Simulator.toggleManipulateLeftAction.action.controls[0].displayName}, {m_Simulator.toggleManipulateRightAction.action.controls[0].displayName} [Toggle]"; -#if XR_HANDS_1_1_OR_NEWER - var modeChangeText = m_Simulator.handControllerModeAction != null ? $"{m_Simulator.handControllerModeAction.action.controls[0].displayName}" : string.Empty; -#else - var modeChangeText = string.Empty; -#endif - - m_ControllersSelectedValueText.text = m_Simulator.deviceMode == XRDeviceSimulator.DeviceMode.Controller ? toggleManipulateText : modeChangeText; - m_HandsSelectedValueText.text = m_Simulator.deviceMode == XRDeviceSimulator.DeviceMode.Hand ? toggleManipulateText : modeChangeText; - - var modeColor = m_Simulator.deviceMode == XRDeviceSimulator.DeviceMode.Controller ? enabledColor : disabledColor; - m_ControllerSelectedIcon.color = modeColor; - m_ControllerSelectedText.color = modeColor; - - modeColor = m_Simulator.deviceMode == XRDeviceSimulator.DeviceMode.Hand ? enabledColor : disabledColor; - m_HandsSelectedIcon.color = modeColor; - m_HandsSelectedText.color = modeColor; - } - - internal Sprite GetInputIcon(InputControl control) - { - if (control == null) - return null; - - var icon = keyboardSprite; - if (control.device.name == k_MouseDeviceType) - { - switch (control.name) - { - case "leftButton": - case "rightButton": - icon = rMouseSprite; - break; - default: - icon = mouseSprite; - break; - } - } - - return icon; - } - - /// - /// Hides the simulator UI panel when called while displaying the simulator button. - /// - public void OnClickCloseSimulatorUIPanel() - { - isMenuOpen = false; - m_XRDeviceSimulatorMainPanel.SetActive(false); - m_XRDeviceSimulatorCollapsedPanel.SetActive(true); - } - - /// - /// Displays the simulator UI panel when called while hiding the simulator button. - /// - public void OnClickOpenSimulatorUIPanel() - { - isMenuOpen = true; - m_XRDeviceSimulatorMainPanel.SetActive(true); - m_XRDeviceSimulatorCollapsedPanel.SetActive(false); - } - - void OnActivateLeftDevice() - { - if (m_Simulator.deviceMode == XRDeviceSimulator.DeviceMode.Controller) - OnActivateLeftController(); - else if (m_Simulator.deviceMode == XRDeviceSimulator.DeviceMode.Hand) - OnActivateLeftHand(); - } - - void OnActivateRightDevice() - { - if (m_Simulator.deviceMode == XRDeviceSimulator.DeviceMode.Controller) - OnActivateRightController(); - else if (m_Simulator.deviceMode == XRDeviceSimulator.DeviceMode.Hand) - OnActivateRightHand(); - } - - void OnActivateBothDevices() - { - if (m_Simulator.deviceMode == XRDeviceSimulator.DeviceMode.Controller) - OnActivateBothControllers(); - else if (m_Simulator.deviceMode == XRDeviceSimulator.DeviceMode.Hand) - OnActivateBothHands(); - } - - /// - /// Sets the Left Controller device as active to receive input. - /// - void OnActivateLeftController() - { - m_CurrentSelectedDeviceText.text = "Left Controller"; - OnActivateController(m_LeftController); - } - - /// - /// Sets the Right Controller device as active to receive input. - /// - void OnActivateRightController() - { - m_CurrentSelectedDeviceText.text = "Right Controller"; - OnActivateController(m_RightController); - } - - void OnActivateController(XRDeviceSimulatorControllerUI controller) - { - ControllersSetActive(true); - PushCurrentButtonState(controller); - controller.SetAsActiveController(true, m_Simulator); - var other = controller == m_LeftController ? m_RightController : m_LeftController; - other.SetAsActiveController(false, m_Simulator, true); - - HeadDeviceSetActive(false); - HandsSetActive(false); - } - - /// - /// Sets both Left & Right Controller devices as active to receive input. - /// - void OnActivateBothControllers() - { - ControllersSetActive(true); - m_CurrentSelectedDeviceText.text = "Left & Right Controllers"; - PushCurrentButtonState(m_LeftController); - PushCurrentButtonState(m_RightController); - m_LeftController.SetAsActiveController(true, m_Simulator); - m_RightController.SetAsActiveController(true, m_Simulator); - - HeadDeviceSetActive(false); - HandsSetActive(false); - } - - void PushCurrentButtonState(XRDeviceSimulatorControllerUI controller) - { - controller.OnGrip(m_Simulator.gripAction.action.inProgress); - controller.OnTrigger(m_Simulator.triggerAction.action.inProgress); - controller.OnMenu(m_Simulator.menuAction.action.inProgress); - controller.OnPrimaryButton(m_Simulator.primaryButtonAction.action.inProgress); - controller.OnSecondaryButton(m_Simulator.secondaryButtonAction.action.inProgress); - controller.OnXAxisTranslatePerformed(m_Simulator.keyboardXTranslateAction.action.inProgress); - controller.OnZAxisTranslatePerformed(m_Simulator.keyboardZTranslateAction.action.inProgress); - } - - /// - /// Sets the Left Hand device as active to receive input. - /// - void OnActivateLeftHand() - { - m_CurrentSelectedDeviceText.text = "Left Hand"; - OnActivateHand(m_LeftHand); - } - - /// - /// Sets the Right Hand device as active to receive input. - /// - void OnActivateRightHand() - { - m_CurrentSelectedDeviceText.text = "Right Hand"; - OnActivateHand(m_RightHand); - } - - void OnActivateHand(XRDeviceSimulatorHandsUI hand) - { - HandsSetActive(true); - hand.SetActive(true, m_Simulator); - XRDeviceSimulatorHandsUI otherHand = hand == m_LeftHand ? m_RightHand : m_LeftHand; - otherHand.SetActive(false, m_Simulator); - - HeadDeviceSetActive(false); - ControllersSetActive(false); - } - - /// - /// Sets both Left & Right Hand devices as active to receive input. - /// - void OnActivateBothHands() - { - HandsSetActive(true); - m_CurrentSelectedDeviceText.text = "Left & Right Hands"; - m_LeftHand.SetActive(true, m_Simulator); - m_RightHand.SetActive(true, m_Simulator); - - HeadDeviceSetActive(false); - ControllersSetActive(false); - } - - /// - /// Sets the headset device as active to receive input. - /// - void OnActivateHeadsetDevice(bool activated = true) - { - m_LeftController.SetAsActiveController(false, m_Simulator); - m_RightController.SetAsActiveController(false, m_Simulator); - - m_LeftHand.SetActive(false, m_Simulator); - m_RightHand.SetActive(false, m_Simulator); - - m_CurrentSelectedDeviceText.text = activated ? "Head Mounted Display (HMD)" : "None"; - m_HeadsetImage.gameObject.SetActive(activated); - - HeadDeviceSetActive(activated); - - if (m_Simulator.manipulatingFPS) - { - ControllersSetActive(false, m_Simulator.deviceMode == XRDeviceSimulator.DeviceMode.Controller); - HandsSetActive(false, m_Simulator.deviceMode == XRDeviceSimulator.DeviceMode.Hand); - } - else - { - HandsSetActive(false, Mathf.Approximately(m_HandsCanvasGroup.alpha, 1f)); - ControllersSetActive(false, Mathf.Approximately(m_ControllersCanvasGroup.alpha, 1f)); - } - } - - /// - /// Updates all the UI associated the the Headset. - /// - /// Whether the headset is the active device or not. - void HeadDeviceSetActive(bool active) - { - m_HeadsetImage.gameObject.SetActive(active); - m_HeadsetSelectedButton.color = active ? selectedColor : buttonColor; - - var currentColor = active ? enabledColor : disabledColor; - m_HeadsetMoveButtonIcon.color = currentColor; - m_HeadsetMoveButtonText.color = currentColor; - m_HeadsetMoveValueIcon.color = currentColor; - m_HeadsetMoveValueText.color = currentColor; - - m_HeadsetMoveButton.color = active ? buttonColor : disabledButtonColor; - } - - void HandsSetActive(bool isActive, bool showCanvasGroup = false) - { - m_HandsCanvasGroup.alpha = isActive || showCanvasGroup ? 1f : 0f; - -#if XR_HANDS_1_1_OR_NEWER - m_HandsSelectedButton.color = isActive ? selectedColor : buttonColor; -#else - m_HandsSelectedButton.color = disabledButtonColor; -#endif - } - - void ControllersSetActive(bool isActive, bool showCanvasGroup = false) - { - m_ControllersCanvasGroup.alpha = isActive || showCanvasGroup ? 1f : 0f; - m_ControllerSelectedButton.color = isActive ? selectedColor : buttonColor; - } - - static void Subscribe(InputActionReference reference, Action performedOrCanceled) - { - var action = reference != null ? reference.action : null; - if (action != null && performedOrCanceled != null) - { - action.performed += performedOrCanceled; - action.canceled += performedOrCanceled; - } - } - - static void Unsubscribe(InputActionReference reference, Action performedOrCanceled) - { - var action = reference != null ? reference.action : null; - if (action != null && performedOrCanceled != null) - { - action.performed -= performedOrCanceled; - action.canceled -= performedOrCanceled; - } - } - - void OnManipulateLeftAction(InputAction.CallbackContext context) - { - if (context.phase.IsInProgress()) - { - if (m_Simulator.manipulatingLeftDevice && m_Simulator.manipulatingRightDevice) - OnActivateBothDevices(); - else if (m_Simulator.manipulatingLeftDevice) - OnActivateLeftDevice(); - } - else - { - if (m_Simulator.manipulatingRightDevice) - OnActivateRightDevice(); - else - OnActivateHeadsetDevice(m_Simulator.manipulatingFPS); - } - } - - void OnManipulateRightAction(InputAction.CallbackContext context) - { - if (context.phase.IsInProgress()) - { - if (m_Simulator.manipulatingLeftDevice && m_Simulator.manipulatingRightDevice) - OnActivateBothDevices(); - else if (m_Simulator.manipulatingRightDevice) - OnActivateRightDevice(); - } - else - { - if (m_Simulator.manipulatingLeftDevice) - OnActivateLeftDevice(); - else - OnActivateHeadsetDevice(m_Simulator.manipulatingFPS); - } - } - - void OnToggleManipulateLeftAction(InputAction.CallbackContext context) - { - if (context.phase.IsInProgress()) - { - if (m_Simulator.manipulatingLeftDevice) - OnActivateLeftDevice(); - else - OnActivateHeadsetDevice(); - } - } - - void OnToggleManipulateRightAction(InputAction.CallbackContext context) - { - if (context.phase.IsInProgress()) - { - if (m_Simulator.manipulatingRightDevice) - OnActivateRightDevice(); - else - OnActivateHeadsetDevice(); - } - } - - void OnToggleManipulateBodyAction(InputAction.CallbackContext context) - { - if (context.phase.IsInProgress()) - { - OnActivateHeadsetDevice(); - } - } - - void OnManipulateHeadAction(InputAction.CallbackContext context) - { - var isInProgress = context.phase.IsInProgress(); - var noDevices = !m_Simulator.manipulatingLeftDevice && !m_Simulator.manipulatingRightDevice; - if (isInProgress) - { - if (m_Simulator.manipulatingFPS || noDevices) - OnActivateHeadsetDevice(); - } - else if (noDevices) - { - OnActivateHeadsetDevice(m_Simulator.manipulatingFPS); - } - - m_HeadsetLookButton.color = isInProgress ? selectedColor : buttonColor; - } - - void OnHandControllerModeAction(InputAction.CallbackContext context) - { -#if XR_HANDS_1_1_OR_NEWER - if (context.phase.IsInProgress()) - { - if (m_Simulator.manipulatingLeftDevice && m_Simulator.manipulatingRightDevice) - OnActivateBothDevices(); - else if (m_Simulator.manipulatingLeftDevice) - OnActivateLeftDevice(); - else if (m_Simulator.manipulatingRightDevice) - OnActivateRightDevice(); - else if (m_Simulator.manipulatingFPS) - OnActivateHeadsetDevice(); - else - { - ControllersSetActive(false, m_Simulator.deviceMode == XRDeviceSimulator.DeviceMode.Controller); - HandsSetActive(false, m_Simulator.deviceMode == XRDeviceSimulator.DeviceMode.Hand); - } - } - - UpdateDeviceInputMethod(); -#endif - } - - void OnCycleDevicesAction(InputAction.CallbackContext context) - { - if (context.phase.IsInProgress()) - { - if (m_Simulator.manipulatingFPS) - OnActivateHeadsetDevice(); - - if (m_Simulator.manipulatingLeftDevice) - OnActivateLeftDevice(); - - if (m_Simulator.manipulatingRightDevice) - OnActivateRightDevice(); - } - } - - void OnStopManipulationAction(InputAction.CallbackContext context) - { - if (context.phase.IsInProgress()) - OnActivateHeadsetDevice(m_Simulator.manipulatingFPS); - } - - void OnToggleMouseTransformationModeAction(InputAction.CallbackContext context) - { - if (context.phase.IsInProgress()) - OnSetMouseMode(); - } - - void OnNegateModeAction(InputAction.CallbackContext context) - { - OnSetMouseMode(); - } - - void OnToggleCursorLockAction(InputAction.CallbackContext context) - { - if (context.phase.IsInProgress()) - OnCursorLockChanged(); - } - - void OnKeyboardXTranslateAction(InputAction.CallbackContext context) - { - OnXAxisTranslatePerformed(context.phase.IsInProgress(), false); - } - - void OnKeyboardYTranslateAction(InputAction.CallbackContext context) - { - OnYAxisTranslatePerformed(context.phase.IsInProgress()); - } - - void OnKeyboardZTranslateAction(InputAction.CallbackContext context) - { - OnZAxisTranslatePerformed(context.phase.IsInProgress(), false); - } - - void OnRestingHandAxis2DAction(InputAction.CallbackContext context) - { - var restingHandAxis2DInput = Vector2.ClampMagnitude(context.ReadValue(), 1f); - if (context.phase.IsInProgress()) - { - if (restingHandAxis2DInput.x != 0f) - OnXAxisTranslatePerformed(true, true); - if (restingHandAxis2DInput.y != 0f) - OnZAxisTranslatePerformed(true, true); - } - else - { - if (restingHandAxis2DInput.x == 0f) - OnXAxisTranslatePerformed(false, true); - if (restingHandAxis2DInput.y == 0f) - OnZAxisTranslatePerformed(false, true); - } - } - - void OnGripAction(InputAction.CallbackContext context) - { - OnGripPerformed(context.phase.IsInProgress()); - } - - void OnTriggerAction(InputAction.CallbackContext context) - { - OnTriggerPerformed(context.phase.IsInProgress()); - } - - void OnMenuAction(InputAction.CallbackContext context) - { - OnMenuPerformed(context.phase.IsInProgress()); - } - - void OnPrimaryButtonAction(InputAction.CallbackContext context) - { - OnPrimaryButtonPerformed(context.phase.IsInProgress()); - } - - void OnSecondaryButtonAction(InputAction.CallbackContext context) - { - OnSecondaryButtonPerformed(context.phase.IsInProgress()); - } - - void OnHandExpressionAction(XRDeviceSimulator.SimulatedHandExpression simulatedExpression, InputAction.CallbackContext context) - { - if (context.phase.IsInProgress()) - { - if (m_Simulator.manipulatingLeftHand) - m_LeftHand.ToggleExpression(simulatedExpression, m_Simulator); - - if (m_Simulator.manipulatingRightHand) - m_RightHand.ToggleExpression(simulatedExpression, m_Simulator); - } - } - - void OnSetMouseMode() - { - // Translate/Rotate - m_MouseModeButtonText.text = m_Simulator.negateMode - ? XRDeviceSimulator.Negate(m_Simulator.mouseTransformationMode).ToString() - : m_Simulator.mouseTransformationMode.ToString(); - // Move/Look - m_HeadsetLookButtonText.text = - m_Simulator.mouseTransformationMode == XRDeviceSimulator.TransformationMode.Translate - ? k_TranslateLookText - : k_RotateLookText; - } - - void OnCursorLockChanged() - { - m_CursorLockButton.color = Cursor.lockState == CursorLockMode.Locked ? selectedColor : buttonColor; - } - - // x-axis [A-D] - void OnXAxisTranslatePerformed(bool activated, bool restingHand) - { - var active = activated; - if (!restingHand) - { - m_XAxisActivated = activated; - active |= m_ZAxisActivated; - } - - if (m_Simulator.manipulatingLeftController) - { - var lController = restingHand ? m_RightController : m_LeftController; - lController.OnXAxisTranslatePerformed(active); - } - - if (m_Simulator.manipulatingRightController) - { - var rController = restingHand ? m_LeftController : m_RightController; - rController.OnXAxisTranslatePerformed(active); - } - - if (m_Simulator.manipulatingFPS) - m_HeadsetMoveButton.color = active ? selectedColor : buttonColor; - } - - // y-axis [Q-E] - void OnYAxisTranslatePerformed(bool activated) - { - if (m_Simulator.manipulatingFPS) - m_HeadsetMoveButton.color = activated ? selectedColor : buttonColor; - } - - // z-axis [W-S] - void OnZAxisTranslatePerformed(bool activated, bool restingHand) - { - var active = activated; - if (!restingHand) - { - m_ZAxisActivated = activated; - active |= m_XAxisActivated; - } - - if (m_Simulator.manipulatingLeftController) - { - var lController = restingHand ? m_RightController : m_LeftController; - lController.OnZAxisTranslatePerformed(active); - } - - if (m_Simulator.manipulatingRightController) - { - var rController = restingHand ? m_LeftController : m_RightController; - rController.OnZAxisTranslatePerformed(active); - } - - if (m_Simulator.manipulatingFPS) - m_HeadsetMoveButton.color = active ? selectedColor : buttonColor; - } - - void OnMenuPerformed(bool activated) - { - if (m_Simulator.manipulatingLeftController) - m_LeftController.OnMenu(activated); - - if (m_Simulator.manipulatingRightController) - m_RightController.OnMenu(activated); - } - - void OnGripPerformed(bool activated) - { - if (m_Simulator.manipulatingLeftController) - m_LeftController.OnGrip(activated); - - if (m_Simulator.manipulatingRightController) - m_RightController.OnGrip(activated); - } - - void OnTriggerPerformed(bool activated) - { - if (m_Simulator.manipulatingLeftController) - m_LeftController.OnTrigger(activated); - - if (m_Simulator.manipulatingRightController) - m_RightController.OnTrigger(activated); - } - - void OnPrimaryButtonPerformed(bool activated) - { - if (m_Simulator.manipulatingLeftController) - m_LeftController.OnPrimaryButton(activated); - - if (m_Simulator.manipulatingRightController) - m_RightController.OnPrimaryButton(activated); - } - - void OnSecondaryButtonPerformed(bool activated) - { - if (m_Simulator.manipulatingLeftController) - m_LeftController.OnSecondaryButton(activated); - - if (m_Simulator.manipulatingRightController) - m_RightController.OnSecondaryButton(activated); - } - } -} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI.meta deleted file mode 100644 index 24e50c11..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 1713155dc4dd14e65b554e9690db4a5b -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice.meta deleted file mode 100644 index bd6a3be6..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: f797978be572d4bbe98809565eb58099 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/ControllerLeft.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/ControllerLeft.png deleted file mode 100644 index 78b6389a..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/ControllerLeft.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:79d00128f31818a7a1213100d500d91e36e363c1fb49b6f08b4eb0709d6dca8e -size 25129 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/ControllerLeft.png.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/ControllerLeft.png.meta deleted file mode 100644 index a10c7b1c..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/ControllerLeft.png.meta +++ /dev/null @@ -1,159 +0,0 @@ -fileFormatVersion: 2 -guid: 10abf1be8eef148d4aa4b96b2af7a9f0 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 12 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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: 1 - wrapV: 1 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - 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: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - cookieLightType: 1 - 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: iPhone - 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: WebGL - 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: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/ControllerOverlayLinesLeft.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/ControllerOverlayLinesLeft.png deleted file mode 100644 index 59b99f96..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/ControllerOverlayLinesLeft.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c0527b4f6c8df5f45ebcaf313f2e3d6fcde7951bd99d12df4cd03e3b70e2f200 -size 10158 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/ControllerOverlayLinesLeft.png.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/ControllerOverlayLinesLeft.png.meta deleted file mode 100644 index 2728bbbe..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/ControllerOverlayLinesLeft.png.meta +++ /dev/null @@ -1,159 +0,0 @@ -fileFormatVersion: 2 -guid: cd4fe4c19a40743a6896069a50a394ec -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 12 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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: 1 - wrapV: 1 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - 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: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - cookieLightType: 1 - 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: iPhone - 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: WebGL - 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: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/ControllerOverlayLinesRight.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/ControllerOverlayLinesRight.png deleted file mode 100644 index feb29795..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/ControllerOverlayLinesRight.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0edeb277d5b7e94b8a597ddfbdda2e5b71172b86020846e24e15ae46c859e68a -size 10696 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/ControllerOverlayLinesRight.png.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/ControllerOverlayLinesRight.png.meta deleted file mode 100644 index 6224d656..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/ControllerOverlayLinesRight.png.meta +++ /dev/null @@ -1,159 +0,0 @@ -fileFormatVersion: 2 -guid: 310ef0f38fe364cc986d05acdbdf1183 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 12 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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: 1 - wrapV: 1 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - 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: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - cookieLightType: 1 - 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: iPhone - 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: WebGL - 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: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/ControllerRight.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/ControllerRight.png deleted file mode 100644 index a250a258..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/ControllerRight.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:29f8ffba3736a2d61c599f8e9703af8b2104216305ea2431e44dad2926c81c20 -size 25056 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/ControllerRight.png.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/ControllerRight.png.meta deleted file mode 100644 index d3a0a2e4..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/ControllerRight.png.meta +++ /dev/null @@ -1,159 +0,0 @@ -fileFormatVersion: 2 -guid: 17c263f6077f14b218b13656aacd9551 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 12 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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: 1 - wrapV: 1 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - 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: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - cookieLightType: 1 - 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: iPhone - 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: WebGL - 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: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/xr_ctlr.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/xr_ctlr.png deleted file mode 100644 index 73f3360d..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/xr_ctlr.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:eaad62a8149dc77b8c3ec9fbdb7c84117004b3f340247e68bacd190a08f4fbf3 -size 17982 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/xr_ctlr.png.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/xr_ctlr.png.meta deleted file mode 100644 index 51f295c5..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/ControllerDevice/xr_ctlr.png.meta +++ /dev/null @@ -1,147 +0,0 @@ -fileFormatVersion: 2 -guid: 7d7a2f6c5e996e24388af5a8227afdcf -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 12 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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: 1 - wrapV: 1 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - 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: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - cookieLightType: 1 - 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: iPhone - 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: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General.meta deleted file mode 100644 index 9b4e1d8d..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 7029f8d454f034b71b5b1eb1ba1b324d -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/CloseWindow.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/CloseWindow.png deleted file mode 100644 index f4324f0b..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/CloseWindow.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1c80c4cbc8f0121be5d5873c40753ce07f06d155d2e09fca91278fb0a14de645 -size 7147 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/CloseWindow.png.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/CloseWindow.png.meta deleted file mode 100644 index d7dddbda..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/CloseWindow.png.meta +++ /dev/null @@ -1,159 +0,0 @@ -fileFormatVersion: 2 -guid: c76518a5819794083a346812c0906b77 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 12 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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: 1 - wrapV: 1 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - 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: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - cookieLightType: 1 - 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: iPhone - 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: WebGL - 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: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/CycleXRDevices.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/CycleXRDevices.png deleted file mode 100644 index 244b880d..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/CycleXRDevices.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7fbd32c3ecc30c0d2fe5472fc9e30949b3019dd64e620ef0b9da09dd1b814d0c -size 7983 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/CycleXRDevices.png.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/CycleXRDevices.png.meta deleted file mode 100644 index 7f05ab29..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/CycleXRDevices.png.meta +++ /dev/null @@ -1,159 +0,0 @@ -fileFormatVersion: 2 -guid: 731e7aed8e9f540ac8bf2a7b66abdaf6 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 12 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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: 1 - wrapV: 1 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - 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: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - cookieLightType: 1 - 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: iPhone - 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: WebGL - 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: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/DeviceSimUI_bg.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/DeviceSimUI_bg.png deleted file mode 100644 index 8ee15040..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/DeviceSimUI_bg.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a80162589cfec10782e719b9e7bce6ba8ef53f9a89aff7d565a5f9059bd840a2 -size 1945 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/DeviceSimUI_bg.png.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/DeviceSimUI_bg.png.meta deleted file mode 100644 index 6a872878..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/DeviceSimUI_bg.png.meta +++ /dev/null @@ -1,159 +0,0 @@ -fileFormatVersion: 2 -guid: d7348fb3f11ba4f6f933462328963785 -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: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 30, y: 30, z: 30, w: 30} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 8 - 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: Server - 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: iPhone - 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: WebGL - 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: 5e97eb03825dee720800000000000000 - internalID: 1537655665 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/Gripper.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/Gripper.png deleted file mode 100644 index 914994d8..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/Gripper.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:78f4090624e61dd778b99327d5b2037aa48ac099c8335f4689b341704aaa9e5b -size 3154 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/Gripper.png.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/Gripper.png.meta deleted file mode 100644 index a5a6b1d4..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/Gripper.png.meta +++ /dev/null @@ -1,147 +0,0 @@ -fileFormatVersion: 2 -guid: 17689808316e14280ad508a625c4c88f -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 12 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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: 1 - wrapV: 1 - wrapW: 1 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - 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: 1 - spriteTessellationDetail: -1 - textureType: 8 - 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: LinuxHeadlessSimulation - 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: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/KeyboardIcon.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/KeyboardIcon.png deleted file mode 100644 index 238c22b9..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/KeyboardIcon.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7536939b48027a0cbaaa5c6f5817c63738c95fa02f062c4dc17d0f8ae171be3c -size 5866 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/KeyboardIcon.png.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/KeyboardIcon.png.meta deleted file mode 100644 index 70d53484..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/KeyboardIcon.png.meta +++ /dev/null @@ -1,159 +0,0 @@ -fileFormatVersion: 2 -guid: 76dc0abb2ebb44c9a9bd39266f0b3c91 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 12 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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: 1 - wrapV: 1 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - 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: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - cookieLightType: 1 - 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: iPhone - 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: WebGL - 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: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/Locked.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/Locked.png deleted file mode 100644 index a4bd009b..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/Locked.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:92408e4ef1bb3696169216fa6351a37ae4f61de5829b6440350dc54ff0fb099f -size 5673 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/Locked.png.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/Locked.png.meta deleted file mode 100644 index 47513827..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/Locked.png.meta +++ /dev/null @@ -1,159 +0,0 @@ -fileFormatVersion: 2 -guid: 3aad042fcb57b4bed9d9a46b932df060 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 12 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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: 1 - wrapV: 1 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - 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: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - cookieLightType: 1 - 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: iPhone - 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: WebGL - 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: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/Look.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/Look.png deleted file mode 100644 index ab7715ad..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/Look.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:feb8cd575af71167f58e5c4ef44eac0cf5a0f44317f736095cf944e2bfb1fafe -size 6733 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/Look.png.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/Look.png.meta deleted file mode 100644 index 1b7d97b1..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/Look.png.meta +++ /dev/null @@ -1,159 +0,0 @@ -fileFormatVersion: 2 -guid: 5410adf0b914f49438506b7dd0022773 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 12 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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: 1 - wrapV: 1 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - 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: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - cookieLightType: 1 - 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: iPhone - 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: WebGL - 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: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/OpenWindow.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/OpenWindow.png deleted file mode 100644 index fb27ea0b..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/OpenWindow.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:943b1d2156c17918e1694322a3ea5eedc84acd81efe2915345ad2ce7c00a93c2 -size 5680 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/OpenWindow.png.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/OpenWindow.png.meta deleted file mode 100644 index 3409c1dd..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/OpenWindow.png.meta +++ /dev/null @@ -1,159 +0,0 @@ -fileFormatVersion: 2 -guid: 633d1ace045fe402a9b307cb58251aa4 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 12 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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: 1 - wrapV: 1 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - 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: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - cookieLightType: 1 - 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: iPhone - 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: WebGL - 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: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/Unlocked.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/Unlocked.png deleted file mode 100644 index fe194d54..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/Unlocked.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:19cc1a266418a9552348459d43148df776d382c6ff38ae2d3cc5c8a03416bb59 -size 4359 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/Unlocked.png.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/Unlocked.png.meta deleted file mode 100644 index 12daeee8..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/Unlocked.png.meta +++ /dev/null @@ -1,159 +0,0 @@ -fileFormatVersion: 2 -guid: f01f3bb228b3b4251a04e2036212d115 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 12 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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: 1 - wrapV: 1 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - 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: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - cookieLightType: 1 - 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: iPhone - 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: WebGL - 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: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/btn_bgbottom.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/btn_bgbottom.png deleted file mode 100644 index ee92ec44..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/btn_bgbottom.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:755f08b896235c2d53ac2729da896c253cf3f147dcab154ea21ec2792af421ad -size 569 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/btn_bgbottom.png.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/btn_bgbottom.png.meta deleted file mode 100644 index 61093873..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/General/btn_bgbottom.png.meta +++ /dev/null @@ -1,147 +0,0 @@ -fileFormatVersion: 2 -guid: 89cb99e3e22696848a1cbce7b320f520 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 12 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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: 1 - wrapV: 1 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 16, y: 0, z: 13, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - cookieLightType: 1 - 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: iPhone - 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: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands.meta deleted file mode 100644 index 4d4a1932..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 83f134399f6a4734c9c82f339cbf170a -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Default.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Default.png deleted file mode 100644 index 61e0990f..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Default.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:722e0ba3e9cf7729152874779fe5b706bfa445aa06105abb0790c6f67952535c -size 9881 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Default.png.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Default.png.meta deleted file mode 100644 index 1f6c35d3..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Default.png.meta +++ /dev/null @@ -1,172 +0,0 @@ -fileFormatVersion: 2 -guid: 7d3dbc333af046c4193982e1166659dd -TextureImporter: - internalIDToNameTable: - - first: - 213: -4228467354032736297 - second: Default - externalObjects: {} - serializedVersion: 12 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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: 1 - wrapV: 1 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 23, y: 0, z: 23, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - cookieLightType: 1 - 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: iPhone - 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: - - serializedVersion: 2 - name: Default - rect: - serializedVersion: 2 - x: 22 - y: 0 - width: 468 - height: 571 - alignment: 0 - pivot: {x: 0.5, y: 0.5} - border: {x: 0, y: 0, z: 0, w: 0} - outline: [] - physicsShape: [] - tessellationDetail: 0 - bones: [] - spriteID: 7d7fa8a48577155c0800000000000000 - internalID: -4228467354032736297 - vertices: [] - indices: - edges: [] - weights: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: - Default: -4228467354032736297 - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Fist.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Fist.png deleted file mode 100644 index a6a15321..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Fist.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9783290d04a0fa048dee44fa9e59509fdff020bf44968f546e608bdf07b358ac -size 12933 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Fist.png.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Fist.png.meta deleted file mode 100644 index b35f2318..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Fist.png.meta +++ /dev/null @@ -1,172 +0,0 @@ -fileFormatVersion: 2 -guid: a6e9e9736379c164e81fdfd2c806a91c -TextureImporter: - internalIDToNameTable: - - first: - 213: -4228467354032736297 - second: Poke - externalObjects: {} - serializedVersion: 12 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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: 1 - wrapV: 1 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 23, y: 0, z: 23, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - cookieLightType: 1 - 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: iPhone - 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: - - serializedVersion: 2 - name: Poke - rect: - serializedVersion: 2 - x: 41 - y: 0 - width: 429 - height: 568 - alignment: 0 - pivot: {x: 0.5, y: 0.5} - border: {x: 0, y: 0, z: 0, w: 0} - outline: [] - physicsShape: [] - tessellationDetail: 0 - bones: [] - spriteID: 7d7fa8a48577155c0800000000000000 - internalID: -4228467354032736297 - vertices: [] - indices: - edges: [] - weights: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: - Poke: -4228467354032736297 - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Grab.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Grab.png deleted file mode 100644 index 4717dad6..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Grab.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d2c1333963ecbe3bba0387ab456c6f4dc598c461bb68b60cda6e6fac960fa2d6 -size 15126 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Grab.png.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Grab.png.meta deleted file mode 100644 index adc0cc0b..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Grab.png.meta +++ /dev/null @@ -1,172 +0,0 @@ -fileFormatVersion: 2 -guid: bd6b9153aa3b96f49b238bbf6ae68b80 -TextureImporter: - internalIDToNameTable: - - first: - 213: -4228467354032736297 - second: Grab - externalObjects: {} - serializedVersion: 12 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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: 1 - wrapV: 1 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 23, y: 0, z: 23, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - cookieLightType: 1 - 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: iPhone - 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: - - serializedVersion: 2 - name: Grab - rect: - serializedVersion: 2 - x: 25 - y: 0 - width: 462 - height: 542 - alignment: 0 - pivot: {x: 0.5, y: 0.5} - border: {x: 0, y: 0, z: 0, w: 0} - outline: [] - physicsShape: [] - tessellationDetail: 0 - bones: [] - spriteID: 7d7fa8a48577155c0800000000000000 - internalID: -4228467354032736297 - vertices: [] - indices: - edges: [] - weights: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: - Grab: -4228467354032736297 - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Open.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Open.png deleted file mode 100644 index 58ec367d..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Open.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4f6a75dbce8b6a40a6d80dbc9869d4c62aa3c352103d80559908105b4cde5f1b -size 9927 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Open.png.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Open.png.meta deleted file mode 100644 index 95e96f81..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Open.png.meta +++ /dev/null @@ -1,172 +0,0 @@ -fileFormatVersion: 2 -guid: ceccab26080354140af21950c6d338d5 -TextureImporter: - internalIDToNameTable: - - first: - 213: -4228467354032736297 - second: Poke - externalObjects: {} - serializedVersion: 12 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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: 1 - wrapV: 1 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 23, y: 0, z: 23, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - cookieLightType: 1 - 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: iPhone - 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: - - serializedVersion: 2 - name: Poke - rect: - serializedVersion: 2 - x: 41 - y: 0 - width: 429 - height: 568 - alignment: 0 - pivot: {x: 0.5, y: 0.5} - border: {x: 0, y: 0, z: 0, w: 0} - outline: [] - physicsShape: [] - tessellationDetail: 0 - bones: [] - spriteID: 7d7fa8a48577155c0800000000000000 - internalID: -4228467354032736297 - vertices: [] - indices: - edges: [] - weights: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: - Poke: -4228467354032736297 - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Pinch.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Pinch.png deleted file mode 100644 index a95d94ed..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Pinch.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e96700d9bef361643de9cc6e1b0adadce57d48403df9140f2206b0dbee7cdfc1 -size 12073 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Pinch.png.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Pinch.png.meta deleted file mode 100644 index ece8809a..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Pinch.png.meta +++ /dev/null @@ -1,172 +0,0 @@ -fileFormatVersion: 2 -guid: a6721511441c05a43964dac58584c890 -TextureImporter: - internalIDToNameTable: - - first: - 213: -4228467354032736297 - second: Pinch - externalObjects: {} - serializedVersion: 12 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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: 1 - wrapV: 1 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 23, y: 0, z: 23, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - cookieLightType: 1 - 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: iPhone - 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: - - serializedVersion: 2 - name: Pinch - rect: - serializedVersion: 2 - x: 58 - y: 0 - width: 396 - height: 568 - alignment: 0 - pivot: {x: 0.5, y: 0.5} - border: {x: 0, y: 0, z: 0, w: 0} - outline: [] - physicsShape: [] - tessellationDetail: 0 - bones: [] - spriteID: 7d7fa8a48577155c0800000000000000 - internalID: -4228467354032736297 - vertices: [] - indices: - edges: [] - weights: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: - Pinch: -4228467354032736297 - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Poke.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Poke.png deleted file mode 100644 index 813b8879..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Poke.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:690a3ceacf0f982789674fbf5485e69df4b07754793b2f990e2aee6369841ef4 -size 7376 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Poke.png.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Poke.png.meta deleted file mode 100644 index 35dd3031..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Poke.png.meta +++ /dev/null @@ -1,172 +0,0 @@ -fileFormatVersion: 2 -guid: a2586e6b399337f409118c79273dc29d -TextureImporter: - internalIDToNameTable: - - first: - 213: -4228467354032736297 - second: Poke - externalObjects: {} - serializedVersion: 12 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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: 1 - wrapV: 1 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 23, y: 0, z: 23, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - cookieLightType: 1 - 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: iPhone - 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: - - serializedVersion: 2 - name: Poke - rect: - serializedVersion: 2 - x: 41 - y: 0 - width: 429 - height: 568 - alignment: 0 - pivot: {x: 0.5, y: 0.5} - border: {x: 0, y: 0, z: 0, w: 0} - outline: [] - physicsShape: [] - tessellationDetail: 0 - bones: [] - spriteID: 7d7fa8a48577155c0800000000000000 - internalID: -4228467354032736297 - vertices: [] - indices: - edges: [] - weights: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: - Poke: -4228467354032736297 - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Thumb.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Thumb.png deleted file mode 100644 index 5ba950c7..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Thumb.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d0d69f35511d5fd0a54123080f99fbd9aa6060315ed3e063af5f5f230563c7fc -size 6530 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Thumb.png.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Thumb.png.meta deleted file mode 100644 index af16cc88..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/Hand_Thumb.png.meta +++ /dev/null @@ -1,172 +0,0 @@ -fileFormatVersion: 2 -guid: 3b2e62babc5249f42921c2cd027852cd -TextureImporter: - internalIDToNameTable: - - first: - 213: -4228467354032736297 - second: Thumb - externalObjects: {} - serializedVersion: 12 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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: 1 - wrapV: 1 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 23, y: 0, z: 23, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - cookieLightType: 1 - 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: iPhone - 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: - - serializedVersion: 2 - name: Thumb - rect: - serializedVersion: 2 - x: 61 - y: 30 - width: 387 - height: 497 - alignment: 0 - pivot: {x: 0.5, y: 0.5} - border: {x: 0, y: 0, z: 0, w: 0} - outline: [] - physicsShape: [] - tessellationDetail: 0 - bones: [] - spriteID: 7d7fa8a48577155c0800000000000000 - internalID: -4228467354032736297 - vertices: [] - indices: - edges: [] - weights: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: - Thumb: -4228467354032736297 - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/hand.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/hand.png deleted file mode 100644 index 8eb6ed59..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Hands/hand.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8c544932e641e84ea22470ea49fa25851d4f1d3a12db786eb7380a16d4b22709 -size 11255 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice.meta deleted file mode 100644 index efc6bd1a..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 01820cd5d6cab46b9afde2261f687a48 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/HMD.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/HMD.png deleted file mode 100644 index f4cecab2..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/HMD.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b7b21228ea261ab082789baf67a7a41436abd72ac4965a6f9abb2eb4ab04d13c -size 9918 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/HMDOverlay.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/HMDOverlay.png deleted file mode 100644 index 9fd8a631..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/HMDOverlay.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bd5e682bbc4a4f3bbe3b1ed8ad164a2421585a57dda6589f9e2c0a51af91efdf -size 14953 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/HMDOverlay.png.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/HMDOverlay.png.meta deleted file mode 100644 index 3bd2f7c6..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/HMDOverlay.png.meta +++ /dev/null @@ -1,159 +0,0 @@ -fileFormatVersion: 2 -guid: fb2db2f40ceaf458085c82fc17cfe800 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 12 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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: 1 - wrapV: 1 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - 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: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - cookieLightType: 1 - 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: iPhone - 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: WebGL - 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: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/HMD_d.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/HMD_d.png deleted file mode 100644 index 23b048ea..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/HMD_d.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e0e515dbfba75cfd610d4330f7118342cea3b096a027a073da521e84e1975313 -size 11463 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/MoveRotateTool.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/MoveRotateTool.png deleted file mode 100644 index 0e80aa40..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/MoveRotateTool.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:65a9676918ef7c04cb741ad71ae4d4023c42ea9b09a95109676856a7886f721d -size 15421 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/MoveRotateTool.png.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/MoveRotateTool.png.meta deleted file mode 100644 index 09591723..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/MoveRotateTool.png.meta +++ /dev/null @@ -1,147 +0,0 @@ -fileFormatVersion: 2 -guid: 139237a044d8e4255b40bb472c842087 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 12 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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: 1 - wrapV: 1 - wrapW: 1 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - 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: 1 - spriteTessellationDetail: -1 - textureType: 8 - 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: LinuxHeadlessSimulation - 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: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/Movement.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/Movement.png deleted file mode 100644 index 26eb7c89..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/Movement.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:174553c9e368846e7569f5e2f5a75c57b2904ad6af6cc1ac2df3b54cd77fd837 -size 8801 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/Movement.png.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/Movement.png.meta deleted file mode 100644 index f874b479..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/Movement.png.meta +++ /dev/null @@ -1,147 +0,0 @@ -fileFormatVersion: 2 -guid: 1d56a2d39cfbb49149abbf0076259327 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 12 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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: 1 - wrapV: 1 - wrapW: 1 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - 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: 1 - spriteTessellationDetail: -1 - textureType: 8 - 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: LinuxHeadlessSimulation - 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: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/XR.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/XR.png deleted file mode 100644 index 7f3e3537..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/XR.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:71fb6bb98ea3d0999a06ab1f5c2740af35cd5b3844339ff70f81d5778de418aa -size 8084 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/XR.png.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/XR.png.meta deleted file mode 100644 index 68b02060..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/XR.png.meta +++ /dev/null @@ -1,147 +0,0 @@ -fileFormatVersion: 2 -guid: 0265e2b6afccd49de9c1f0b3a1fb4285 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 12 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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: 1 - wrapV: 1 - wrapW: 1 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - 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: 1 - spriteTessellationDetail: -1 - textureType: 8 - 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: LinuxHeadlessSimulation - 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: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/xr_hmd.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/xr_hmd.png deleted file mode 100644 index 6c606e1d..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/xr_hmd.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:610987a545b7f6a1a019be60e3e13e031a4773ce9a596b961a484e98c282702d -size 13063 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/xr_hmd.png.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/xr_hmd.png.meta deleted file mode 100644 index f61254d7..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/xr_hmd.png.meta +++ /dev/null @@ -1,147 +0,0 @@ -fileFormatVersion: 2 -guid: 08548d5ac6b7bc64da0b332636c5cc91 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 12 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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: 1 - wrapV: 1 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - 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: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - cookieLightType: 1 - 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: iPhone - 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: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse.meta deleted file mode 100644 index 1f332d32..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: ba08c76319c794c15b21c9d8eaeac0e8 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/Cursor.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/Cursor.png deleted file mode 100644 index 65cf12ab..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/Cursor.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9a62296ddf332a7b61bdad087a94ab1aa94c5ace006fdaf856ac5e81061286dc -size 7340 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/Cursor.png.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/Cursor.png.meta deleted file mode 100644 index 80487ff0..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/Cursor.png.meta +++ /dev/null @@ -1,147 +0,0 @@ -fileFormatVersion: 2 -guid: 9e4e923f2e0534a56b6a0c2321388194 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 12 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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: 1 - wrapV: 1 - wrapW: 1 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - 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: 1 - spriteTessellationDetail: -1 - textureType: 8 - 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: LinuxHeadlessSimulation - 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: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/Mouse.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/Mouse.png deleted file mode 100644 index 02905872..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/Mouse.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ab29e387f72f5cb23da9dcf15ce6b59182f178686b2034b5f8eb5f06cde29555 -size 8314 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/Mouse.png.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/Mouse.png.meta deleted file mode 100644 index fb047e4d..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/Mouse.png.meta +++ /dev/null @@ -1,147 +0,0 @@ -fileFormatVersion: 2 -guid: f997d60d79a4e45cab6b1814e377a1b3 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 12 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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: 1 - wrapV: 1 - wrapW: 1 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - 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: 1 - spriteTessellationDetail: -1 - textureType: 8 - 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: LinuxHeadlessSimulation - 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: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/MouseMoveAround.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/MouseMoveAround.png deleted file mode 100644 index c12d90f4..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/MouseMoveAround.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:86f1f9d709374f6a89c8fe64b8dc59981c35925dae25663224897b0bd4a9c7f5 -size 10824 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/MouseMoveAround.png.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/MouseMoveAround.png.meta deleted file mode 100644 index d30fec52..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/MouseMoveAround.png.meta +++ /dev/null @@ -1,147 +0,0 @@ -fileFormatVersion: 2 -guid: 013811fdd48c040339e9adc40e692381 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 12 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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: 1 - wrapV: 1 - wrapW: 0 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - 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: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - cookieLightType: 1 - 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: iPhone - 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: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/MouseR.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/MouseR.png deleted file mode 100644 index e05d723e..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/MouseR.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2c871b07c0d15df590f79c8fbcc35c1623cbe4c58739e1c73cf9ea3dfd968dd2 -size 13952 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/MouseR_d.png b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/MouseR_d.png deleted file mode 100644 index cab44bbd..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/MouseR_d.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:18e1353bdd32a7d82049a768fa30d4d82818eabc79c343c16a2fbc5b9e778ea8 -size 8840 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/MouseR_d.png.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/MouseR_d.png.meta deleted file mode 100644 index d0a12878..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/MouseR_d.png.meta +++ /dev/null @@ -1,147 +0,0 @@ -fileFormatVersion: 2 -guid: 308cc8b73722e43eab64c228a76560a6 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 12 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - 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: 1 - wrapV: 1 - wrapW: 1 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - 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: 1 - spriteTessellationDetail: -1 - textureType: 8 - 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: LinuxHeadlessSimulation - 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: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/XR Device Simulator UI.prefab b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/XR Device Simulator UI.prefab deleted file mode 100644 index 68e0ea28..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/XR Device Simulator UI.prefab +++ /dev/null @@ -1,14338 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &29886561319578157 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6564093916900289784} - - component: {fileID: 9003411996149372339} - - component: {fileID: 4412908402409514172} - m_Layer: 5 - m_Name: MoveValuesIcon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6564093916900289784 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 29886561319578157} - 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: 7436509360777108265} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -105, y: 0.1223} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &9003411996149372339 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 29886561319578157} - m_CullTransparentMesh: 1 ---- !u!114 &4412908402409514172 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 29886561319578157} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 76dc0abb2ebb44c9a9bd39266f0b3c91, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &33136997142522377 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4724759744330099547} - - component: {fileID: 5533521331356562919} - - component: {fileID: 896150445585326192} - m_Layer: 5 - m_Name: LExpression1Name - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4724759744330099547 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 33136997142522377} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1212292503507699025} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 65, y: -0.000030517578} - m_SizeDelta: {x: 187, y: 67.552} - m_Pivot: {x: 0, y: 0.5} ---- !u!222 &5533521331356562919 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 33136997142522377} - m_CullTransparentMesh: 0 ---- !u!114 &896150445585326192 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 33136997142522377} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 42 - m_FontStyle: 0 - m_BestFit: 1 - m_MinSize: 0 - m_MaxSize: 45 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: Name ---- !u!1 &163993027286486330 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5263640784426806787} - - component: {fileID: 8863868735850889056} - - component: {fileID: 2349352921063641774} - m_Layer: 5 - m_Name: HandValueText - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5263640784426806787 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 163993027286486330} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 8539554857296250557} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 22.195, y: 0.12232971} - m_SizeDelta: {x: 153.08, y: 29.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &8863868735850889056 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 163993027286486330} - m_CullTransparentMesh: 0 ---- !u!114 &2349352921063641774 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 163993027286486330} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 42 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 115 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: Mode Bind ---- !u!1 &288779701782643498 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6846750111691592490} - - component: {fileID: 8838573467402483601} - - component: {fileID: 2206758073391603004} - m_Layer: 5 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6846750111691592490 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 288779701782643498} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 8751572082322455077} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 19.8, y: 0.12232971} - m_SizeDelta: {x: 153.08, y: 29.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &8838573467402483601 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 288779701782643498} - m_CullTransparentMesh: 1 ---- !u!114 &2206758073391603004 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 288779701782643498} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 42 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 115 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: Cycle XR Input ---- !u!1 &317419840061793591 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7455357491218910397} - - component: {fileID: 6982135072744269101} - - component: {fileID: 4724637474301667115} - m_Layer: 5 - m_Name: RMenuIcon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7455357491218910397 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 317419840061793591} - 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: 4904194509911213832} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 20, y: 0} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6982135072744269101 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 317419840061793591} - m_CullTransparentMesh: 1 ---- !u!114 &4724637474301667115 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 317419840061793591} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 76dc0abb2ebb44c9a9bd39266f0b3c91, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &350084410891778195 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 9184085923298778894} - m_Layer: 0 - m_Name: LookRow - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &9184085923298778894 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 350084410891778195} - 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: 27911596466560415} - - {fileID: 8658708234692622649} - m_Father: {fileID: 4406604062793069055} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 604, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &417301699863401290 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5498894420459434082} - m_Layer: 0 - m_Name: RightController - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5498894420459434082 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 417301699863401290} - 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: 8484091777571837807} - - {fileID: 4367518527615682733} - - {fileID: 2664160203474198374} - m_Father: {fileID: 2375198052207354545} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.5, y: 0} - m_SizeDelta: {x: -4.0000076, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &425703931829518118 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2375198052207354545} - - component: {fileID: 4327810280124264318} - m_Layer: 0 - m_Name: ControllersOption - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2375198052207354545 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 425703931829518118} - 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: 7103409666290189088} - - {fileID: 5498894420459434082} - m_Father: {fileID: 8808850000785169588} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.95} - m_AnchorMax: {x: 1, y: 0.95} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 285} - m_Pivot: {x: 0.5, y: 1} ---- !u!225 &4327810280124264318 -CanvasGroup: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 425703931829518118} - m_Enabled: 1 - m_Alpha: 1 - m_Interactable: 1 - m_BlocksRaycasts: 1 - m_IgnoreParentGroups: 0 ---- !u!1 &527109076315265493 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 854703824096013381} - - component: {fileID: 2061555217664257282} - - component: {fileID: 5718527880201402332} - - component: {fileID: 319370952726439739} - m_Layer: 5 - m_Name: EnableDisableDeviceSimUIBtn - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &854703824096013381 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 527109076315265493} - 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: 1847791695669142127} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 1, y: 0.5} - m_AnchorMax: {x: 1, y: 0.5} - m_AnchoredPosition: {x: -17.399994, y: 0} - m_SizeDelta: {x: 23.4046, y: 23.4046} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &2061555217664257282 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 527109076315265493} - m_CullTransparentMesh: 0 ---- !u!114 &5718527880201402332 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 527109076315265493} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 633d1ace045fe402a9b307cb58251aa4, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!114 &319370952726439739 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 527109076315265493} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 5718527880201402332} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 4465484215854679096} - m_TargetAssemblyTypeName: - m_MethodName: OnClickOpenSimulatorUIPanel - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!1 &573412519329463009 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1104218346663881301} - - component: {fileID: 5609248285039019312} - - component: {fileID: 448065570012514258} - m_Layer: 5 - m_Name: Icon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1104218346663881301 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 573412519329463009} - 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: 1085174744544309416} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -105, y: 0.1223} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &5609248285039019312 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 573412519329463009} - m_CullTransparentMesh: 1 ---- !u!114 &448065570012514258 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 573412519329463009} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 76dc0abb2ebb44c9a9bd39266f0b3c91, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &619729475870094166 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 767564925141842383} - - component: {fileID: 6105033498792898461} - - component: {fileID: 3527199368015468659} - m_Layer: 5 - m_Name: LExpression2Icon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &767564925141842383 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 619729475870094166} - 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: 7210374592701731116} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 20, y: 0} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6105033498792898461 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 619729475870094166} - m_CullTransparentMesh: 1 ---- !u!114 &3527199368015468659 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 619729475870094166} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 76dc0abb2ebb44c9a9bd39266f0b3c91, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &675065661486396138 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2242974542416564068} - - component: {fileID: 1394824713245469580} - - component: {fileID: 6809351870642506038} - m_Layer: 5 - m_Name: RExpression4Name - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2242974542416564068 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 675065661486396138} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 2751124339627162720} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 65, y: -0.000030517578} - m_SizeDelta: {x: 187, y: 67.552} - m_Pivot: {x: 0, y: 0.5} ---- !u!222 &1394824713245469580 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 675065661486396138} - m_CullTransparentMesh: 0 ---- !u!114 &6809351870642506038 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 675065661486396138} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 42 - m_FontStyle: 0 - m_BestFit: 1 - m_MinSize: 0 - m_MaxSize: 45 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: Name ---- !u!1 &891647659842723807 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8751572082322455077} - m_Layer: 5 - m_Name: Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &8751572082322455077 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 891647659842723807} - 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: 4427714418502242799} - - {fileID: 2396100969233817086} - - {fileID: 6846750111691592490} - m_Father: {fileID: 6167112928552560931} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.39900002, y: 0} - m_AnchorMax: {x: 0.6, y: 1} - m_AnchoredPosition: {x: -170, y: 0.05000305} - m_SizeDelta: {x: 140, y: -2} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &899118421566338131 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4904194509911213832} - - component: {fileID: 3842944074029756636} - - component: {fileID: 4193425104184663439} - m_Layer: 0 - m_Name: RMenuButton - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4904194509911213832 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 899118421566338131} - 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: 7455357491218910397} - - {fileID: 292161024320626674} - m_Father: {fileID: 8484091777571837807} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 153, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &3842944074029756636 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 899118421566338131} - m_CullTransparentMesh: 1 ---- !u!114 &4193425104184663439 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 899118421566338131} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &918743290184469441 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 372728133250704906} - - component: {fileID: 2359414082534323022} - - component: {fileID: 2259021782619594240} - m_Layer: 5 - m_Name: LTriggerIcon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &372728133250704906 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 918743290184469441} - 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: 6390267479988922023} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 20, y: 0} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &2359414082534323022 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 918743290184469441} - m_CullTransparentMesh: 1 ---- !u!114 &2259021782619594240 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 918743290184469441} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 76dc0abb2ebb44c9a9bd39266f0b3c91, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &980490071309630459 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3002383805111170562} - - component: {fileID: 103746841167109125} - - component: {fileID: 3702832121472537402} - m_Layer: 5 - m_Name: LGripIcon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &3002383805111170562 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 980490071309630459} - 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: 5961962218551576997} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 20, y: 0} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &103746841167109125 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 980490071309630459} - m_CullTransparentMesh: 1 ---- !u!114 &3702832121472537402 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 980490071309630459} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 76dc0abb2ebb44c9a9bd39266f0b3c91, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &1024428468574385309 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1399327480036815817} - m_Layer: 0 - m_Name: HMDRow - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1399327480036815817 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1024428468574385309} - 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: 8266049202949608784} - - {fileID: 6797212258523857263} - m_Father: {fileID: 4183362681496228909} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 604, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &1116603017172164502 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4512836958538490338} - - component: {fileID: 4229588115787512468} - - component: {fileID: 6568751946127306849} - m_Layer: 5 - m_Name: RExpression3Name - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4512836958538490338 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1116603017172164502} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 7767859450673573951} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 62, y: -0.000030517578} - m_SizeDelta: {x: 187, y: 67.552} - m_Pivot: {x: 0, y: 0.5} ---- !u!222 &4229588115787512468 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1116603017172164502} - m_CullTransparentMesh: 0 ---- !u!114 &6568751946127306849 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1116603017172164502} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 42 - m_FontStyle: 0 - m_BestFit: 1 - m_MinSize: 0 - m_MaxSize: 45 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: Name ---- !u!1 &1235111873063437235 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 991961384998303619} - - component: {fileID: 3560906529752670682} - - component: {fileID: 8940433140144978684} - m_Layer: 5 - m_Name: LExpression4Bind - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &991961384998303619 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1235111873063437235} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 5040200856308678447} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 97.201996, y: 0} - m_SizeDelta: {x: 221.224, y: 67.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &3560906529752670682 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1235111873063437235} - m_CullTransparentMesh: 0 ---- !u!114 &8940433140144978684 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1235111873063437235} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 45 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 58 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: K ---- !u!1 &1290735137696290609 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5103673373263905850} - - component: {fileID: 2508919105726794454} - - component: {fileID: 1917492824301861101} - m_Layer: 0 - m_Name: LControllerOverlay - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5103673373263905850 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1290735137696290609} - 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: 754334856648844837} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -32.212082, y: 8.400002} - m_SizeDelta: {x: -47.0388, y: -6.8} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &2508919105726794454 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1290735137696290609} - m_CullTransparentMesh: 1 ---- !u!114 &1917492824301861101 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1290735137696290609} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: cd4fe4c19a40743a6896069a50a394ec, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &1292333690699179336 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2813366516863096307} - - component: {fileID: 2291087181951237043} - m_Layer: 0 - m_Name: HandsOption - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2813366516863096307 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1292333690699179336} - 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: 6688826027410024821} - - {fileID: 6555096854186027131} - m_Father: {fileID: 8808850000785169588} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.95} - m_AnchorMax: {x: 1, y: 0.95} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 285} - m_Pivot: {x: 0.5, y: 1} ---- !u!225 &2291087181951237043 -CanvasGroup: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1292333690699179336} - m_Enabled: 1 - m_Alpha: 1 - m_Interactable: 1 - m_BlocksRaycasts: 1 - m_IgnoreParentGroups: 0 ---- !u!1 &1380295093179848584 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 515894777509433301} - - component: {fileID: 4017185309695555305} - - component: {fileID: 1488390788848035247} - m_Layer: 5 - m_Name: Icon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &515894777509433301 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1380295093179848584} - 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: 8170169633823365925} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -105, y: 0.1223} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &4017185309695555305 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1380295093179848584} - m_CullTransparentMesh: 1 ---- !u!114 &1488390788848035247 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1380295093179848584} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 290d158031622c645aa55f8bd981be12, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &1399090967636622272 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2396100969233817086} - - component: {fileID: 3063966763485816098} - - component: {fileID: 684899110839510463} - m_Layer: 5 - m_Name: Icon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2396100969233817086 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1399090967636622272} - 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: 8751572082322455077} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -105, y: 0.1223} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &3063966763485816098 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1399090967636622272} - m_CullTransparentMesh: 1 ---- !u!114 &684899110839510463 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1399090967636622272} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 731e7aed8e9f540ac8bf2a7b66abdaf6, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &1433554934514912911 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1847791695669142127} - - component: {fileID: 8285680151353500705} - - component: {fileID: 8604789029105032418} - - component: {fileID: 5189412477027441689} - m_Layer: 5 - m_Name: EnableSimulatorBar - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &1847791695669142127 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1433554934514912911} - 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: 7311062688384262108} - - {fileID: 7046821532197945560} - - {fileID: 854703824096013381} - m_Father: {fileID: 6889984780207233200} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0.15, y: 0} - m_AnchoredPosition: {x: 32, y: 30.900024} - m_SizeDelta: {x: 41.9366, y: 37.6646} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &8285680151353500705 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1433554934514912911} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 5718527880201402332} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 4465484215854679096} - m_TargetAssemblyTypeName: - m_MethodName: OnClickOpenSimulatorUIPanel - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!222 &8604789029105032418 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1433554934514912911} - m_CullTransparentMesh: 1 ---- !u!114 &5189412477027441689 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1433554934514912911} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 0.9411765} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &1441005171086257829 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2652949427206271823} - - component: {fileID: 6915133030309022791} - - component: {fileID: 5405710756525641134} - m_Layer: 5 - m_Name: LExpression3stickIcon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2652949427206271823 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1441005171086257829} - 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: 6202310348302799411} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 20, y: 0} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6915133030309022791 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1441005171086257829} - m_CullTransparentMesh: 1 ---- !u!114 &5405710756525641134 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1441005171086257829} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 76dc0abb2ebb44c9a9bd39266f0b3c91, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &1453598747111334183 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2314820697440113883} - - component: {fileID: 1781393369442898685} - - component: {fileID: 1263497930375873354} - m_Layer: 5 - m_Name: RTriggerIcon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2314820697440113883 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1453598747111334183} - 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: 8962740172795211005} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 20, y: 0} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1781393369442898685 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1453598747111334183} - m_CullTransparentMesh: 1 ---- !u!114 &1263497930375873354 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1453598747111334183} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 76dc0abb2ebb44c9a9bd39266f0b3c91, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &1457549226246381164 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1085174744544309416} - - component: {fileID: 8772983746740546457} - m_Layer: 5 - m_Name: Values - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1085174744544309416 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1457549226246381164} - 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: 1104218346663881301} - - {fileID: 8763124700897412298} - m_Father: {fileID: 6167112928552560931} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.39900002, y: 0} - m_AnchorMax: {x: 0.6, y: 1} - m_AnchoredPosition: {x: 170.04999, y: 0.000045776367} - m_SizeDelta: {x: 140.09998, y: -7.9637} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &8772983746740546457 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1457549226246381164} - m_CullTransparentMesh: 0 ---- !u!1 &1457686681557724166 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 409826334328055989} - - component: {fileID: 8372359366222228000} - - component: {fileID: 6428185077648664342} - m_Layer: 5 - m_Name: RExpression5Name - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &409826334328055989 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1457686681557724166} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 3612895881655085730} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 65, y: -0.000030517578} - m_SizeDelta: {x: 187, y: 67.552} - m_Pivot: {x: 0, y: 0.5} ---- !u!222 &8372359366222228000 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1457686681557724166} - m_CullTransparentMesh: 0 ---- !u!114 &6428185077648664342 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1457686681557724166} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 42 - m_FontStyle: 0 - m_BestFit: 1 - m_MinSize: 0 - m_MaxSize: 45 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: Name ---- !u!1 &1549790480480682592 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 55462233220691548} - - component: {fileID: 8051212359518039854} - - component: {fileID: 8392449034562604138} - m_Layer: 5 - m_Name: LookIcon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &55462233220691548 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1549790480480682592} - 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: 27911596466560415} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -105, y: 0.1223} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &8051212359518039854 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1549790480480682592} - m_CullTransparentMesh: 1 ---- !u!114 &8392449034562604138 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1549790480480682592} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 5410adf0b914f49438506b7dd0022773, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &1615103310603384712 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1410681280152203499} - m_Layer: 5 - m_Name: TitleBar - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1410681280152203499 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1615103310603384712} - 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: 8553038877798206587} - - {fileID: 738610811508460873} - - {fileID: 4781838991281678427} - m_Father: {fileID: 1638209659654700137} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &1638209659654700138 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1638209659654700137} - - component: {fileID: 1638209659654700183} - - component: {fileID: 1638209659654700136} - - component: {fileID: 8373482760433716144} - - component: {fileID: 7342397014618987969} - - component: {fileID: 5617939588127036811} - m_Layer: 5 - m_Name: SimulatorUIPanel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1638209659654700137 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1638209659654700138} - 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: 1410681280152203499} - - {fileID: 7957317870655340943} - - {fileID: 1090898951568715956} - - {fileID: 5603832654879856732} - - {fileID: 4578268034687854241} - - {fileID: 394164018060954109} - - {fileID: 8808850000785169588} - m_Father: {fileID: 6889984780207233200} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 11.10022, y: 11.9002075} - m_SizeDelta: {x: 600, y: 805} - m_Pivot: {x: 0, y: 0} ---- !u!222 &1638209659654700183 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1638209659654700138} - m_CullTransparentMesh: 0 ---- !u!114 &1638209659654700136 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1638209659654700138} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 0.9411765} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: d7348fb3f11ba4f6f933462328963785, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 4 ---- !u!223 &8373482760433716144 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1638209659654700138} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 2 - m_Camera: {fileID: 0} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_AdditionalShaderChannelsFlag: 0 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 ---- !u!114 &7342397014618987969 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1638209659654700138} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!114 &5617939588127036811 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1638209659654700138} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 8 - m_Right: 8 - m_Top: 4 - m_Bottom: 0 - m_ChildAlignment: 1 - m_Spacing: 4 - m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 0 - m_ChildControlWidth: 1 - m_ChildControlHeight: 0 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!1 &1663757067517280574 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2530981367770184548} - - component: {fileID: 5653173672739062593} - - component: {fileID: 3756260170801479298} - m_Layer: 5 - m_Name: RExpression0Bind - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2530981367770184548 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1663757067517280574} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 2314423295413228411} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 97.201996, y: 0} - m_SizeDelta: {x: 221.224, y: 67.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &5653173672739062593 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1663757067517280574} - m_CullTransparentMesh: 0 ---- !u!114 &3756260170801479298 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1663757067517280574} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 45 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 58 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: K ---- !u!1 &1673955981598254796 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6202310348302799411} - - component: {fileID: 2432247319275533986} - - component: {fileID: 1991930889870372846} - m_Layer: 0 - m_Name: LExpression3stickButton - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6202310348302799411 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1673955981598254796} - 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: 2652949427206271823} - - {fileID: 2960622662769578833} - m_Father: {fileID: 537185462701595200} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 153, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &2432247319275533986 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1673955981598254796} - m_CullTransparentMesh: 1 ---- !u!114 &1991930889870372846 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1673955981598254796} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &1781016146146422816 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2406183980836748438} - - component: {fileID: 2419496096052406531} - m_Layer: 5 - m_Name: CursorLockValues - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2406183980836748438 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1781016146146422816} - 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: 2422384417788841944} - - {fileID: 5143173518027953146} - m_Father: {fileID: 1525949943038772175} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.39900002, y: 0} - m_AnchorMax: {x: 0.6, y: 1} - m_AnchoredPosition: {x: 170.04999, y: 0.000049591064} - m_SizeDelta: {x: 140.09998, y: -7.9637} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &2419496096052406531 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1781016146146422816} - m_CullTransparentMesh: 0 ---- !u!1 &1821013151456585862 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7046821532197945560} - - component: {fileID: 4288979108967705192} - - component: {fileID: 3769962371045323743} - m_Layer: 5 - m_Name: XRDeviceSimLabel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7046821532197945560 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1821013151456585862} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1847791695669142127} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0.95, y: 0.5} - m_AnchoredPosition: {x: 42.4, y: 0.028502} - m_SizeDelta: {x: 69.1924, y: 30} - m_Pivot: {x: 0, y: 0.5} ---- !u!222 &4288979108967705192 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1821013151456585862} - m_CullTransparentMesh: 0 ---- !u!114 &3769962371045323743 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1821013151456585862} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 45 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 1 - m_MaxSize: 45 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: XR Device Simulator ---- !u!1 &1841772207644620690 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2654451137050611357} - - component: {fileID: 3041199095894004741} - - component: {fileID: 7660593326172566200} - m_Layer: 5 - m_Name: RExpression1Bind - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2654451137050611357 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1841772207644620690} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 628890490560670852} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 97.201996, y: 0} - m_SizeDelta: {x: 221.224, y: 67.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &3041199095894004741 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1841772207644620690} - m_CullTransparentMesh: 0 ---- !u!114 &7660593326172566200 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1841772207644620690} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 45 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 58 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: K ---- !u!1 &1879870509476960300 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5162934926535781650} - - component: {fileID: 4144682753921727013} - - component: {fileID: 2489405138923825782} - m_Layer: 5 - m_Name: LExpression2Name - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5162934926535781650 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1879870509476960300} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 7210374592701731116} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 65, y: -0.000030517578} - m_SizeDelta: {x: 187, y: 67.552} - m_Pivot: {x: 0, y: 0.5} ---- !u!222 &4144682753921727013 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1879870509476960300} - m_CullTransparentMesh: 0 ---- !u!114 &2489405138923825782 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1879870509476960300} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 42 - m_FontStyle: 0 - m_BestFit: 1 - m_MinSize: 0 - m_MaxSize: 45 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: Name ---- !u!1 &1880509402485185474 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5143173518027953146} - - component: {fileID: 9029590796770340829} - - component: {fileID: 7120185377061894656} - m_Layer: 5 - m_Name: CursorLockValuesText - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5143173518027953146 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1880509402485185474} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 2406183980836748438} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 22.195, y: 0.12232971} - m_SizeDelta: {x: 153.08, y: 29.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &9029590796770340829 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1880509402485185474} - m_CullTransparentMesh: 0 ---- !u!114 &7120185377061894656 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1880509402485185474} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 42 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 115 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: Cursor Lock Bind ---- !u!1 &1964459031498800111 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 745060623745093323} - - component: {fileID: 1512257954614430635} - - component: {fileID: 5513420064914589275} - m_Layer: 5 - m_Name: Icon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &745060623745093323 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1964459031498800111} - 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: 8539554857296250557} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -105, y: 0.1223} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1512257954614430635 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1964459031498800111} - m_CullTransparentMesh: 1 ---- !u!114 &5513420064914589275 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1964459031498800111} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 76dc0abb2ebb44c9a9bd39266f0b3c91, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &1995946693877701722 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1623475918692148195} - - component: {fileID: 1769047129883669882} - - component: {fileID: 5510960597349055456} - m_Layer: 5 - m_Name: SelectedDeviceLabelText - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1623475918692148195 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1995946693877701722} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 4578268034687854241} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 6, y: 0} - m_SizeDelta: {x: 305.1899, y: 80} - m_Pivot: {x: 0, y: 0.5} ---- !u!222 &1769047129883669882 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1995946693877701722} - m_CullTransparentMesh: 0 ---- !u!114 &5510960597349055456 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1995946693877701722} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 42 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 2 - m_MaxSize: 65 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: 'Selected Device Input:' ---- !u!1 &2131535862148234197 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8763124700897412298} - - component: {fileID: 4555752327305268219} - - component: {fileID: 3371161537473467337} - m_Layer: 5 - m_Name: CycleDevicesValueText - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &8763124700897412298 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2131535862148234197} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1085174744544309416} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 22.195, y: 0.12232971} - m_SizeDelta: {x: 153.08, y: 29.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &4555752327305268219 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2131535862148234197} - m_CullTransparentMesh: 0 ---- !u!114 &3371161537473467337 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2131535862148234197} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 42 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 115 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: Cycle Input Bind ---- !u!1 &2135720888712615138 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5498112335980241132} - - component: {fileID: 1878560617760582763} - - component: {fileID: 8909736703795628118} - m_Layer: 0 - m_Name: LMenuButton - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5498112335980241132 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2135720888712615138} - 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: 5603575353259662594} - - {fileID: 641378907099528958} - m_Father: {fileID: 537185462701595200} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 153, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1878560617760582763 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2135720888712615138} - m_CullTransparentMesh: 1 ---- !u!114 &8909736703795628118 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2135720888712615138} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &2137780061940803423 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8962740172795211005} - - component: {fileID: 1901149270623407753} - m_Layer: 0 - m_Name: RTriggerButton - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &8962740172795211005 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2137780061940803423} - 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: 5152145393546829585} - - {fileID: 2314820697440113883} - - {fileID: 3390664557058780491} - m_Father: {fileID: 8484091777571837807} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 153, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1901149270623407753 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2137780061940803423} - m_CullTransparentMesh: 1 ---- !u!1 &2182330743212455642 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8553038877798206587} - - component: {fileID: 5389574167438611395} - - component: {fileID: 713741333973026277} - m_Layer: 5 - m_Name: Expression2ber - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &8553038877798206587 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2182330743212455642} - m_LocalRotation: {x: -0, y: -0.007421163, z: -0, w: 0.99997246} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1410681280152203499} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: -0.85, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 20, y: 0} - m_SizeDelta: {x: 24, y: 32} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &5389574167438611395 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2182330743212455642} - m_CullTransparentMesh: 0 ---- !u!114 &713741333973026277 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2182330743212455642} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 0.50980395} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 17689808316e14280ad508a625c4c88f, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &2226580167897586669 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3180943858290137582} - - component: {fileID: 6819955918819985804} - - component: {fileID: 5648968487775849891} - m_Layer: 5 - m_Name: RExpression4Bind - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &3180943858290137582 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2226580167897586669} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 2751124339627162720} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 41.895996, y: 0.000030517578} - m_SizeDelta: {x: 221.224, y: 67.552} - m_Pivot: {x: 0, y: 0.5} ---- !u!222 &6819955918819985804 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2226580167897586669} - m_CullTransparentMesh: 0 ---- !u!114 &5648968487775849891 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2226580167897586669} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 45 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 58 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: K ---- !u!1 &2348578284143685332 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3612895881655085730} - - component: {fileID: 725123968201573872} - - component: {fileID: 1181791779424155912} - m_Layer: 0 - m_Name: RExpression5Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &3612895881655085730 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2348578284143685332} - 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: 935807462341057155} - - {fileID: 465409959190680123} - - {fileID: 409826334328055989} - m_Father: {fileID: 4545038286919774978} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &725123968201573872 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2348578284143685332} - m_CullTransparentMesh: 1 ---- !u!114 &1181791779424155912 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2348578284143685332} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 89cb99e3e22696848a1cbce7b320f520, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2.1 ---- !u!1 &2365963657154936774 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 935807462341057155} - - component: {fileID: 5052249791306596192} - - component: {fileID: 2771097682585405286} - m_Layer: 5 - m_Name: RExpression5Icon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &935807462341057155 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2365963657154936774} - 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: 3612895881655085730} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 20, y: 0} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &5052249791306596192 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2365963657154936774} - m_CullTransparentMesh: 1 ---- !u!114 &2771097682585405286 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2365963657154936774} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 76dc0abb2ebb44c9a9bd39266f0b3c91, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &2397317225420271712 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4485096097327297355} - - component: {fileID: 3942849203344239731} - - component: {fileID: 1452563728541468582} - m_Layer: 5 - m_Name: TranslateRotateValueText - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4485096097327297355 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2397317225420271712} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 3173181438937221057} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 22.195, y: 0.12232971} - m_SizeDelta: {x: 153.08, y: 29.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &3942849203344239731 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2397317225420271712} - m_CullTransparentMesh: 0 ---- !u!114 &1452563728541468582 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2397317225420271712} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 42 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 115 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: Trans/Rot Bind ---- !u!1 &2417464569090688095 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5704057125620080137} - - component: {fileID: 4192292608462103628} - - component: {fileID: 7011038037310918980} - m_Layer: 0 - m_Name: RHandImage - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5704057125620080137 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2417464569090688095} - 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: [] - m_Father: {fileID: 1510148679143476660} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 3.199997, y: 7} - m_SizeDelta: {x: -10, y: -30} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &4192292608462103628 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2417464569090688095} - m_CullTransparentMesh: 1 ---- !u!114 &7011038037310918980 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2417464569090688095} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 7d3dbc333af046c4193982e1166659dd, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &2458146433507042555 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6334405593256699930} - - component: {fileID: 4269084033447071151} - - component: {fileID: 4915680145212764521} - m_Layer: 5 - m_Name: LExpression0Name - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6334405593256699930 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2458146433507042555} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 7868162925709135601} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 65, y: -0.000030517578} - m_SizeDelta: {x: 187, y: 67.552} - m_Pivot: {x: 0, y: 0.5} ---- !u!222 &4269084033447071151 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2458146433507042555} - m_CullTransparentMesh: 0 ---- !u!114 &4915680145212764521 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2458146433507042555} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 42 - m_FontStyle: 0 - m_BestFit: 1 - m_MinSize: 0 - m_MaxSize: 45 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: Name ---- !u!1 &2491538659893612444 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6503857598836605731} - - component: {fileID: 5117451523078471704} - - component: {fileID: 3788994023320568023} - m_Layer: 5 - m_Name: TranslateRotateValuesIcon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6503857598836605731 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2491538659893612444} - 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: 3173181438937221057} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -105, y: 0.1223} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &5117451523078471704 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2491538659893612444} - m_CullTransparentMesh: 1 ---- !u!114 &3788994023320568023 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2491538659893612444} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 76dc0abb2ebb44c9a9bd39266f0b3c91, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &2508556569675021754 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4760555099384953812} - - component: {fileID: 5982869663070455285} - m_Layer: 5 - m_Name: RHandKeyBind - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4760555099384953812 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2508556569675021754} - 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: 5490768048793251116} - m_Father: {fileID: 6555096854186027131} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.05} - m_AnchorMax: {x: 0, y: 0.05} - m_AnchoredPosition: {x: 5, y: 0} - m_SizeDelta: {x: 115, y: 30} - m_Pivot: {x: 0, y: 0.5} ---- !u!222 &5982869663070455285 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2508556569675021754} - m_CullTransparentMesh: 0 ---- !u!1 &2509709677482505961 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5040200856308678447} - - component: {fileID: 291741579297379389} - - component: {fileID: 7349879440043119360} - m_Layer: 0 - m_Name: LExpression4Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5040200856308678447 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2509709677482505961} - 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: 2747793972913805400} - - {fileID: 991961384998303619} - - {fileID: 8920373798682849898} - m_Father: {fileID: 6462993320847643308} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &291741579297379389 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2509709677482505961} - m_CullTransparentMesh: 1 ---- !u!114 &7349879440043119360 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2509709677482505961} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &2510550684656054875 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7408420773471807684} - - component: {fileID: 4432250112999290239} - - component: {fileID: 4372048392552825536} - m_Layer: 5 - m_Name: RExpression0Name - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7408420773471807684 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2510550684656054875} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 2314423295413228411} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 65, y: -0.000030517578} - m_SizeDelta: {x: 187, y: 67.552} - m_Pivot: {x: 0, y: 0.5} ---- !u!222 &4432250112999290239 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2510550684656054875} - m_CullTransparentMesh: 0 ---- !u!114 &4372048392552825536 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2510550684656054875} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 42 - m_FontStyle: 0 - m_BestFit: 1 - m_MinSize: 0 - m_MaxSize: 45 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: Name ---- !u!1 &2512809935938349301 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 282613771757399827} - - component: {fileID: 4244358826933145780} - - component: {fileID: 8175907446859678347} - m_Layer: 5 - m_Name: RPrimaryIcon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &282613771757399827 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2512809935938349301} - 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: 5026453929358367971} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 20, y: 0} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &4244358826933145780 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2512809935938349301} - m_CullTransparentMesh: 1 ---- !u!114 &8175907446859678347 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2512809935938349301} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 76dc0abb2ebb44c9a9bd39266f0b3c91, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &2544441221253198812 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4575570135842204626} - - component: {fileID: 1228761651011966808} - - component: {fileID: 6380410165078616517} - m_Layer: 5 - m_Name: LPrimaryIcon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4575570135842204626 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2544441221253198812} - 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: 6624498863070468513} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 20, y: 0} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1228761651011966808 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2544441221253198812} - m_CullTransparentMesh: 1 ---- !u!114 &6380410165078616517 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2544441221253198812} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 76dc0abb2ebb44c9a9bd39266f0b3c91, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &2563383922611151181 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8170169633823365925} - - component: {fileID: 3341638294502099933} - m_Layer: 5 - m_Name: HandSelectedButton - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &8170169633823365925 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2563383922611151181} - 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: 2843830431281675184} - - {fileID: 515894777509433301} - - {fileID: 5062348927342029757} - m_Father: {fileID: 3525313934337792023} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.39900002, y: 0} - m_AnchorMax: {x: 0.6, y: 1} - m_AnchoredPosition: {x: -170, y: 0} - m_SizeDelta: {x: 140, y: -2} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &3341638294502099933 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2563383922611151181} - m_CullTransparentMesh: 0 ---- !u!1 &2567165557641468514 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2751124339627162720} - - component: {fileID: 7265238840095409033} - - component: {fileID: 4147372594905128267} - m_Layer: 0 - m_Name: RExpression4Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2751124339627162720 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2567165557641468514} - 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: 7656103794068767007} - - {fileID: 3180943858290137582} - - {fileID: 2242974542416564068} - m_Father: {fileID: 4545038286919774978} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &7265238840095409033 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2567165557641468514} - m_CullTransparentMesh: 1 ---- !u!114 &4147372594905128267 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2567165557641468514} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &2571744950061384180 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4056566217759540397} - - component: {fileID: 2854555404489834978} - - component: {fileID: 5399548881570719173} - m_Layer: 5 - m_Name: SelectedDeviceValueText - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4056566217759540397 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2571744950061384180} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 4578268034687854241} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 220, y: 0} - m_SizeDelta: {x: 800, y: 80} - m_Pivot: {x: 0, y: 0.5} ---- !u!222 &2854555404489834978 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2571744950061384180} - m_CullTransparentMesh: 0 ---- !u!114 &5399548881570719173 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2571744950061384180} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 42 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 2 - m_MaxSize: 65 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: Left Controller ---- !u!1 &2585335064459905670 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6627277116764366358} - - component: {fileID: 6931135121293626001} - - component: {fileID: 1701825277887249889} - m_Layer: 0 - m_Name: RControllerOverlay - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6627277116764366358 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2585335064459905670} - 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: 4367518527615682733} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 31.700012, y: 8.400002} - m_SizeDelta: {x: -47, y: -6.8} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6931135121293626001 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2585335064459905670} - m_CullTransparentMesh: 1 ---- !u!114 &1701825277887249889 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2585335064459905670} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 310ef0f38fe364cc986d05acdbdf1183, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &2727674280257469146 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5737249769705389612} - - component: {fileID: 6808051102596636311} - - component: {fileID: 517803879020285813} - m_Layer: 5 - m_Name: MoveText - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5737249769705389612 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2727674280257469146} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 8059781972635455925} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 19.8, y: 0.12232971} - m_SizeDelta: {x: 153.08, y: 29.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6808051102596636311 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2727674280257469146} - m_CullTransparentMesh: 0 ---- !u!114 &517803879020285813 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2727674280257469146} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 42 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 115 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: Movement ---- !u!1 &2763414223905074762 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8484091777571837807} - - component: {fileID: 7324957562884675474} - m_Layer: 0 - m_Name: ButtonsList - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &8484091777571837807 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2763414223905074762} - 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: 8962740172795211005} - - {fileID: 5417714045102847244} - - {fileID: 4126372588271254228} - - {fileID: 4904194509911213832} - - {fileID: 5026453929358367971} - - {fileID: 6173016768322924529} - m_Father: {fileID: 5498894420459434082} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 68.5, y: 22.5} - m_SizeDelta: {x: -139, y: -45} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &7324957562884675474 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2763414223905074762} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 0 - m_Right: 0 - m_Top: 1 - m_Bottom: 1 - m_ChildAlignment: 1 - m_Spacing: 4 - m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 1 - m_ChildControlWidth: 0 - m_ChildControlHeight: 0 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!1 &2789687051840766311 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7687940542572837860} - - component: {fileID: 8605236439053526401} - - component: {fileID: 338382388888213524} - m_Layer: 5 - m_Name: LControllerKeyBindText - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7687940542572837860 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2789687051840766311} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 3810526079947131977} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0.0000019073486} - m_SizeDelta: {x: 0, y: -0.000002861023} - m_Pivot: {x: 1, y: 0.5} ---- !u!222 &8605236439053526401 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2789687051840766311} - m_CullTransparentMesh: 0 ---- !u!114 &338382388888213524 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2789687051840766311} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 36 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 2 - m_MaxSize: 65 - m_Alignment: 5 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: '[Toggle]' ---- !u!1 &2805714749211467276 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5096071673048095565} - m_Layer: 0 - m_Name: ControllerRow - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5096071673048095565 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2805714749211467276} - 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: 332777195174710517} - - {fileID: 5412799415524486407} - m_Father: {fileID: 4183362681496228909} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 604, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &2853602261547270772 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8539554857296250557} - - component: {fileID: 447566848760521853} - m_Layer: 5 - m_Name: HandSelectedValues - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &8539554857296250557 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2853602261547270772} - 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: 745060623745093323} - - {fileID: 5263640784426806787} - m_Father: {fileID: 3525313934337792023} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.39900002, y: 0} - m_AnchorMax: {x: 0.6, y: 1} - m_AnchoredPosition: {x: 170.04999, y: 0.000045776367} - m_SizeDelta: {x: 140.09998, y: -7.9637} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &447566848760521853 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2853602261547270772} - m_CullTransparentMesh: 0 ---- !u!1 &2853690658207697494 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8808850000785169588} - m_Layer: 0 - m_Name: BottomSection - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &8808850000785169588 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2853690658207697494} - 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: 8482404054746877728} - - {fileID: 2375198052207354545} - - {fileID: 2813366516863096307} - m_Father: {fileID: 1638209659654700137} - m_RootOrder: 6 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 300} - m_Pivot: {x: 0.5, y: 1} ---- !u!1 &2914163787786403359 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5062348927342029757} - - component: {fileID: 475651835165686872} - - component: {fileID: 2396995885832409176} - m_Layer: 5 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5062348927342029757 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2914163787786403359} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 8170169633823365925} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 19.8, y: 0.12232971} - m_SizeDelta: {x: 153.08, y: 29.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &475651835165686872 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2914163787786403359} - m_CullTransparentMesh: 0 ---- !u!114 &2396995885832409176 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2914163787786403359} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 42 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 115 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: Hand ---- !u!1 &2952939338510810253 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4808396553272134774} - - component: {fileID: 1112229978915961073} - - component: {fileID: 8477002242924536414} - m_Layer: 5 - m_Name: ControllerValueText - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4808396553272134774 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2952939338510810253} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 5412799415524486407} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 22.195, y: 0.12232971} - m_SizeDelta: {x: 153.08, y: 29.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1112229978915961073 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2952939338510810253} - m_CullTransparentMesh: 0 ---- !u!114 &8477002242924536414 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2952939338510810253} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 42 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 115 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: '[Toggle]' ---- !u!1 &3021344675451528225 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6349083132728924276} - - component: {fileID: 2438503803762723133} - - component: {fileID: 1574890059153190941} - m_Layer: 5 - m_Name: RExpression2Name - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6349083132728924276 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3021344675451528225} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 3662364895757944182} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 65, y: -0.000030517578} - m_SizeDelta: {x: 187, y: 67.552} - m_Pivot: {x: 0, y: 0.5} ---- !u!222 &2438503803762723133 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3021344675451528225} - m_CullTransparentMesh: 0 ---- !u!114 &1574890059153190941 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3021344675451528225} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 42 - m_FontStyle: 0 - m_BestFit: 1 - m_MinSize: 0 - m_MaxSize: 45 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: Name ---- !u!1 &3033740514991871518 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7193435800343865340} - - component: {fileID: 28577615572376772} - - component: {fileID: 7067184257790347290} - m_Layer: 5 - m_Name: LGripText - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7193435800343865340 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3033740514991871518} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 5961962218551576997} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 97.201996, y: 0} - m_SizeDelta: {x: 221.224, y: 67.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &28577615572376772 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3033740514991871518} - m_CullTransparentMesh: 0 ---- !u!114 &7067184257790347290 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3033740514991871518} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 45 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 58 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: Grip ---- !u!1 &3069041501744353071 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2747793972913805400} - - component: {fileID: 5052456898607570716} - - component: {fileID: 823229387731191209} - m_Layer: 5 - m_Name: LExpression4Icon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2747793972913805400 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3069041501744353071} - 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: 5040200856308678447} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 20, y: 0} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &5052456898607570716 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3069041501744353071} - m_CullTransparentMesh: 1 ---- !u!114 &823229387731191209 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3069041501744353071} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 76dc0abb2ebb44c9a9bd39266f0b3c91, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &3082854001174638753 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 537185462701595200} - - component: {fileID: 8453072215149212207} - m_Layer: 0 - m_Name: ButtonsList - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &537185462701595200 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3082854001174638753} - 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: 6390267479988922023} - - {fileID: 5264040794177459897} - - {fileID: 6202310348302799411} - - {fileID: 5498112335980241132} - - {fileID: 6624498863070468513} - - {fileID: 5961962218551576997} - m_Father: {fileID: 7103409666290189088} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -69.5, y: 22.5} - m_SizeDelta: {x: -141, y: -45} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &8453072215149212207 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3082854001174638753} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 0 - m_Right: 4 - m_Top: 1 - m_Bottom: 1 - m_ChildAlignment: 4 - m_Spacing: 4 - m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 0 - m_ChildControlWidth: 0 - m_ChildControlHeight: 0 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!1 &3095448225430156185 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 394164018060954109} - m_Layer: 0 - m_Name: MiddleSection - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &394164018060954109 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3095448225430156185} - 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: 4406604062793069055} - m_Father: {fileID: 1638209659654700137} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 166} - m_Pivot: {x: 0.5, y: 1} ---- !u!1 &3134920892735880532 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4406604062793069055} - - component: {fileID: 2061883755384359098} - m_Layer: 0 - m_Name: OrderedListView - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4406604062793069055 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3134920892735880532} - 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: 9184085923298778894} - - {fileID: 5067531158375095824} - - {fileID: 1525949943038772175} - - {fileID: 8172909560867918246} - m_Father: {fileID: 394164018060954109} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &2061883755384359098 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3134920892735880532} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 0 - m_Right: 0 - m_Top: 0 - m_Bottom: 0 - m_ChildAlignment: 0 - m_Spacing: 2 - m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 1 - m_ChildControlWidth: 0 - m_ChildControlHeight: 0 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!1 &3156893245344415625 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5417714045102847244} - - component: {fileID: 5704476261968104625} - - component: {fileID: 1362998691021116941} - m_Layer: 0 - m_Name: RSecondaryButton - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5417714045102847244 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3156893245344415625} - 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: 9045665383047432220} - - {fileID: 8591091615642228418} - m_Father: {fileID: 8484091777571837807} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 153, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &5704476261968104625 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3156893245344415625} - m_CullTransparentMesh: 1 ---- !u!114 &1362998691021116941 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3156893245344415625} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &3253854345609227040 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6133188520101204400} - - component: {fileID: 2629453016085246226} - - component: {fileID: 1100953672981393537} - m_Layer: 5 - m_Name: RExpression1Icon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6133188520101204400 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3253854345609227040} - 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: 628890490560670852} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 20, y: 0} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &2629453016085246226 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3253854345609227040} - m_CullTransparentMesh: 1 ---- !u!114 &1100953672981393537 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3253854345609227040} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 76dc0abb2ebb44c9a9bd39266f0b3c91, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &3257073808386228350 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4578268034687854241} - - component: {fileID: 6955614696914789928} - m_Layer: 5 - m_Name: SelectedDeviceTitle - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4578268034687854241 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3257073808386228350} - 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: 1623475918692148195} - - {fileID: 4056566217759540397} - m_Father: {fileID: 1638209659654700137} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 40} - m_Pivot: {x: 0.5, y: 1} ---- !u!222 &6955614696914789928 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3257073808386228350} - m_CullTransparentMesh: 0 ---- !u!1 &3460761980366582573 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6580222380407670581} - - component: {fileID: 4543255793771256773} - - component: {fileID: 7589818591704186427} - m_Layer: 0 - m_Name: LExpression3Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6580222380407670581 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3460761980366582573} - 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: 414189546133751448} - - {fileID: 5613823859235805758} - - {fileID: 3952293249097553080} - m_Father: {fileID: 6462993320847643308} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &4543255793771256773 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3460761980366582573} - m_CullTransparentMesh: 1 ---- !u!114 &7589818591704186427 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3460761980366582573} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &3510864414779368957 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6390267479988922023} - - component: {fileID: 1620742577672500824} - m_Layer: 0 - m_Name: LTriggerButton - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6390267479988922023 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3510864414779368957} - 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: 1286743001511227838} - - {fileID: 372728133250704906} - - {fileID: 5666643825144031299} - m_Father: {fileID: 537185462701595200} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 153, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1620742577672500824 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3510864414779368957} - m_CullTransparentMesh: 1 ---- !u!1 &3559661271360909672 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8132287113485033861} - - component: {fileID: 4242128290924201} - - component: {fileID: 6388914560039728744} - m_Layer: 5 - m_Name: Bg - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &8132287113485033861 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3559661271360909672} - 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: 7868162925709135601} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &4242128290924201 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3559661271360909672} - m_CullTransparentMesh: 1 ---- !u!114 &6388914560039728744 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3559661271360909672} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 89cb99e3e22696848a1cbce7b320f520, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2.1 ---- !u!1 &3604177352531511849 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4014092977727084897} - - component: {fileID: 2784304787329509324} - - component: {fileID: 6050477616616213851} - m_Layer: 5 - m_Name: RExpression3stickIcon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4014092977727084897 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3604177352531511849} - 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: 4126372588271254228} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 20, y: 0} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &2784304787329509324 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3604177352531511849} - m_CullTransparentMesh: 1 ---- !u!114 &6050477616616213851 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3604177352531511849} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 76dc0abb2ebb44c9a9bd39266f0b3c91, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &3609452959681673164 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4957108541736216693} - - component: {fileID: 7453670857251010962} - - component: {fileID: 6487868528169299833} - m_Layer: 5 - m_Name: Icon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4957108541736216693 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3609452959681673164} - 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: 332777195174710517} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -105, y: 0.1223} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &7453670857251010962 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3609452959681673164} - m_CullTransparentMesh: 1 ---- !u!114 &6487868528169299833 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3609452959681673164} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 7d7a2f6c5e996e24388af5a8227afdcf, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &3656814206179030082 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 754334856648844837} - - component: {fileID: 8838036309630221568} - m_Layer: 0 - m_Name: LController - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &754334856648844837 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3656814206179030082} - 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: 7578652588044504255} - - {fileID: 5103673373263905850} - m_Father: {fileID: 7103409666290189088} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.75, y: 0.5} - m_AnchorMax: {x: 0.75, y: 0.5} - m_AnchoredPosition: {x: 8.375, y: 10} - m_SizeDelta: {x: 138.25, y: 225} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &8838036309630221568 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3656814206179030082} - m_CullTransparentMesh: 1 ---- !u!1 &3679170552668703874 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3952293249097553080} - - component: {fileID: 6032283910589525481} - - component: {fileID: 7364929132661629932} - m_Layer: 5 - m_Name: LExpression3Name - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &3952293249097553080 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3679170552668703874} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 6580222380407670581} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 62, y: -0.000030517578} - m_SizeDelta: {x: 187, y: 67.552} - m_Pivot: {x: 0, y: 0.5} ---- !u!222 &6032283910589525481 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3679170552668703874} - m_CullTransparentMesh: 0 ---- !u!114 &7364929132661629932 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3679170552668703874} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 42 - m_FontStyle: 0 - m_BestFit: 1 - m_MinSize: 0 - m_MaxSize: 45 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: Name ---- !u!1 &3683960206838613938 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7767859450673573951} - - component: {fileID: 391297472744163890} - - component: {fileID: 8967920162631432870} - m_Layer: 0 - m_Name: RExpression3Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7767859450673573951 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3683960206838613938} - 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: 928914878550950041} - - {fileID: 6829759728903216125} - - {fileID: 4512836958538490338} - m_Father: {fileID: 4545038286919774978} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &391297472744163890 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3683960206838613938} - m_CullTransparentMesh: 1 ---- !u!114 &8967920162631432870 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3683960206838613938} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &3768229474998054900 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4545038286919774978} - - component: {fileID: 3010205486228810483} - m_Layer: 0 - m_Name: ButtonsList - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4545038286919774978 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3768229474998054900} - 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: 2314423295413228411} - - {fileID: 628890490560670852} - - {fileID: 3662364895757944182} - - {fileID: 7767859450673573951} - - {fileID: 2751124339627162720} - - {fileID: 3612895881655085730} - m_Father: {fileID: 6555096854186027131} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 64.5, y: 22.5} - m_SizeDelta: {x: -131, y: -45} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &3010205486228810483 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3768229474998054900} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 4 - m_Right: 0 - m_Top: 1 - m_Bottom: 1 - m_ChildAlignment: 3 - m_Spacing: 4 - m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 0 - m_ChildControlWidth: 1 - m_ChildControlHeight: 0 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!1 &3776978895211653979 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3173181438937221057} - - component: {fileID: 4255860016238790699} - m_Layer: 5 - m_Name: TranslateRotateValues - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &3173181438937221057 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3776978895211653979} - 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: 6503857598836605731} - - {fileID: 4485096097327297355} - m_Father: {fileID: 8172909560867918246} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.39900002, y: 0} - m_AnchorMax: {x: 0.6, y: 1} - m_AnchoredPosition: {x: 170.04999, y: 0.000049591064} - m_SizeDelta: {x: 140.09998, y: -7.9637} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &4255860016238790699 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3776978895211653979} - m_CullTransparentMesh: 0 ---- !u!1 &3790520762988993474 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5412799415524486407} - - component: {fileID: 227490158794949428} - m_Layer: 5 - m_Name: ControllerSelectedValues - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5412799415524486407 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3790520762988993474} - 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: 4241088231456432055} - - {fileID: 4808396553272134774} - m_Father: {fileID: 5096071673048095565} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.39900002, y: 0} - m_AnchorMax: {x: 0.6, y: 1} - m_AnchoredPosition: {x: 170.04999, y: 0.000045776367} - m_SizeDelta: {x: 140.09998, y: -7.9637} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &227490158794949428 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3790520762988993474} - m_CullTransparentMesh: 0 ---- !u!1 &3810754329351001909 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 414189546133751448} - - component: {fileID: 4476347012126245677} - - component: {fileID: 8327766308005330169} - m_Layer: 5 - m_Name: LExpression3Icon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &414189546133751448 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3810754329351001909} - 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: 6580222380407670581} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 20, y: 0} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &4476347012126245677 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3810754329351001909} - m_CullTransparentMesh: 1 ---- !u!114 &8327766308005330169 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3810754329351001909} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 76dc0abb2ebb44c9a9bd39266f0b3c91, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &3858588951611749532 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7445554808713570671} - - component: {fileID: 3420771605062344833} - - component: {fileID: 7004533194028666124} - m_Layer: 5 - m_Name: LExpression5Icon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7445554808713570671 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3858588951611749532} - 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: 6234028023674512109} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 20, y: 0} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &3420771605062344833 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3858588951611749532} - m_CullTransparentMesh: 1 ---- !u!114 &7004533194028666124 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3858588951611749532} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 76dc0abb2ebb44c9a9bd39266f0b3c91, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &3948736539266540335 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3369260571146887227} - - component: {fileID: 4123252824241487754} - - component: {fileID: 4202919156071094973} - m_Layer: 5 - m_Name: RExpression2Bind - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &3369260571146887227 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3948736539266540335} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 3662364895757944182} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 41.895996, y: 0.000030517578} - m_SizeDelta: {x: 221.224, y: 67.552} - m_Pivot: {x: 0, y: 0.5} ---- !u!222 &4123252824241487754 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3948736539266540335} - m_CullTransparentMesh: 0 ---- !u!114 &4202919156071094973 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3948736539266540335} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 45 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 58 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: K ---- !u!1 &3957102414512565372 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7578652588044504255} - - component: {fileID: 9218511496296290192} - - component: {fileID: 4141331347712887887} - m_Layer: 0 - m_Name: LControllerImage - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7578652588044504255 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3957102414512565372} - 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: [] - m_Father: {fileID: 754334856648844837} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -3.2999954, y: 7} - m_SizeDelta: {x: -10, y: -30} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &9218511496296290192 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3957102414512565372} - m_CullTransparentMesh: 1 ---- !u!114 &4141331347712887887 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3957102414512565372} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.43137255, g: 0.43137255, b: 0.43137255, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 10abf1be8eef148d4aa4b96b2af7a9f0, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &3968476566427329354 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3810526079947131977} - - component: {fileID: 8884532134050846839} - m_Layer: 5 - m_Name: LControllerKeyBind - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &3810526079947131977 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3968476566427329354} - 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: 7687940542572837860} - m_Father: {fileID: 7103409666290189088} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 1, y: 0.05} - m_AnchorMax: {x: 1, y: 0.05} - m_AnchoredPosition: {x: -5, y: 0} - m_SizeDelta: {x: 115, y: 30} - m_Pivot: {x: 1, y: 0.5} ---- !u!222 &8884532134050846839 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3968476566427329354} - m_CullTransparentMesh: 0 ---- !u!1 &4135614184157301859 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1286743001511227838} - - component: {fileID: 6812402387170782214} - - component: {fileID: 7505294238925710306} - m_Layer: 5 - m_Name: Bg - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1286743001511227838 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4135614184157301859} - 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: 6390267479988922023} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6812402387170782214 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4135614184157301859} - m_CullTransparentMesh: 1 ---- !u!114 &7505294238925710306 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4135614184157301859} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 89cb99e3e22696848a1cbce7b320f520, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2.1 ---- !u!1 &4139656201179475106 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5603575353259662594} - - component: {fileID: 7089921515554351199} - - component: {fileID: 4478232661827727146} - m_Layer: 5 - m_Name: LMenuIcon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5603575353259662594 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4139656201179475106} - 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: 5498112335980241132} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 20, y: 0} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &7089921515554351199 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4139656201179475106} - m_CullTransparentMesh: 1 ---- !u!114 &4478232661827727146 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4139656201179475106} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 76dc0abb2ebb44c9a9bd39266f0b3c91, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &4140800722509203119 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4183362681496228909} - - component: {fileID: 6425245057692559462} - m_Layer: 0 - m_Name: OrderedListView - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4183362681496228909 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4140800722509203119} - 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: 6167112928552560931} - - {fileID: 1399327480036815817} - - {fileID: 5096071673048095565} - - {fileID: 3525313934337792023} - m_Father: {fileID: 1090898951568715956} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &6425245057692559462 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4140800722509203119} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 0 - m_Right: 0 - m_Top: 0 - m_Bottom: 0 - m_ChildAlignment: 0 - m_Spacing: 2 - m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 1 - m_ChildControlWidth: 0 - m_ChildControlHeight: 0 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!1 &4149522570086992223 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4071469278344855793} - - component: {fileID: 4084771795773778614} - - component: {fileID: 6738185887094908372} - m_Layer: 5 - m_Name: LSecondaryText - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4071469278344855793 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4149522570086992223} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 5264040794177459897} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 97.201996, y: 0} - m_SizeDelta: {x: 221.224, y: 67.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &4084771795773778614 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4149522570086992223} - m_CullTransparentMesh: 0 ---- !u!114 &6738185887094908372 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4149522570086992223} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 45 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 58 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: Secondary ---- !u!1 &4165110462371123851 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4241088231456432055} - - component: {fileID: 7718276039194784840} - - component: {fileID: 8817055426768203945} - m_Layer: 5 - m_Name: Icon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4241088231456432055 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4165110462371123851} - 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: 5412799415524486407} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -105, y: 0.1223} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &7718276039194784840 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4165110462371123851} - m_CullTransparentMesh: 1 ---- !u!114 &8817055426768203945 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4165110462371123851} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 76dc0abb2ebb44c9a9bd39266f0b3c91, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &4166127257854725066 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6076226026162586969} - - component: {fileID: 1869674036692729038} - - component: {fileID: 3347247525062691385} - m_Layer: 5 - m_Name: LExpression2Bind - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6076226026162586969 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4166127257854725066} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 7210374592701731116} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 97.201996, y: 0} - m_SizeDelta: {x: 221.224, y: 67.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1869674036692729038 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4166127257854725066} - m_CullTransparentMesh: 0 ---- !u!114 &3347247525062691385 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4166127257854725066} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 45 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 58 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: K ---- !u!1 &4191912485329430863 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 641481497500139678} - - component: {fileID: 3159584211387568828} - - component: {fileID: 3271739954664199333} - m_Layer: 5 - m_Name: TranslateRotateButton - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &641481497500139678 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4191912485329430863} - 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: 7960587828077478501} - - {fileID: 2262248402257033999} - m_Father: {fileID: 8172909560867918246} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.39900002, y: 0} - m_AnchorMax: {x: 0.6, y: 1} - m_AnchoredPosition: {x: -170, y: 0} - m_SizeDelta: {x: 140, y: -2} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &3159584211387568828 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4191912485329430863} - m_CullTransparentMesh: 1 ---- !u!114 &3271739954664199333 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4191912485329430863} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 89cb99e3e22696848a1cbce7b320f520, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2.1 ---- !u!1 &4295091183073286520 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2566992847932450312} - - component: {fileID: 7734778160635462346} - - component: {fileID: 8408635471804533457} - m_Layer: 5 - m_Name: Bg - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2566992847932450312 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4295091183073286520} - 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: 2314423295413228411} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &7734778160635462346 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4295091183073286520} - m_CullTransparentMesh: 1 ---- !u!114 &8408635471804533457 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4295091183073286520} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 89cb99e3e22696848a1cbce7b320f520, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2.1 ---- !u!1 &4320992712495594815 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8040695527253065495} - - component: {fileID: 754169444710874473} - - component: {fileID: 7058744311849270435} - m_Layer: 5 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &8040695527253065495 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4320992712495594815} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 332777195174710517} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 19.8, y: 0.12232971} - m_SizeDelta: {x: 153.08, y: 29.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &754169444710874473 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4320992712495594815} - m_CullTransparentMesh: 0 ---- !u!114 &7058744311849270435 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4320992712495594815} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 42 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 115 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: Controller ---- !u!1 &4325423084509786346 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6234028023674512109} - - component: {fileID: 4977950582811160134} - - component: {fileID: 1052507032598933221} - m_Layer: 0 - m_Name: LExpression5Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6234028023674512109 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4325423084509786346} - 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: 7445554808713570671} - - {fileID: 7474410419877653498} - - {fileID: 3812385094234538481} - m_Father: {fileID: 6462993320847643308} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &4977950582811160134 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4325423084509786346} - m_CullTransparentMesh: 1 ---- !u!114 &1052507032598933221 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4325423084509786346} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 89cb99e3e22696848a1cbce7b320f520, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2.1 ---- !u!1 &4334203052632634741 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3390664557058780491} - - component: {fileID: 3900160280289629168} - - component: {fileID: 3921153324794153759} - m_Layer: 5 - m_Name: RTriggerText - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &3390664557058780491 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4334203052632634741} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 8962740172795211005} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 97.201996, y: 0} - m_SizeDelta: {x: 221.224, y: 67.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &3900160280289629168 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4334203052632634741} - m_CullTransparentMesh: 0 ---- !u!114 &3921153324794153759 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4334203052632634741} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 45 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 58 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: L Mouse ---- !u!1 &4347796561219584452 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7845584875122968193} - - component: {fileID: 6879059812098169080} - - component: {fileID: 3219178859721645255} - m_Layer: 5 - m_Name: RExpression0Icon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7845584875122968193 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4347796561219584452} - 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: 2314423295413228411} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 20, y: 0} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6879059812098169080 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4347796561219584452} - m_CullTransparentMesh: 1 ---- !u!114 &3219178859721645255 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4347796561219584452} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 76dc0abb2ebb44c9a9bd39266f0b3c91, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &4381792593294702059 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5509658837851308562} - - component: {fileID: 4699714745759703944} - - component: {fileID: 4849158320829012260} - m_Layer: 5 - m_Name: LExpression1Bind - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5509658837851308562 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4381792593294702059} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1212292503507699025} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 97.201996, y: 0} - m_SizeDelta: {x: 221.224, y: 67.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &4699714745759703944 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4381792593294702059} - m_CullTransparentMesh: 0 ---- !u!114 &4849158320829012260 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4381792593294702059} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 45 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 58 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: K ---- !u!1 &4404037300537831431 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 27911596466560415} - m_Layer: 5 - m_Name: LookButton - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &27911596466560415 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4404037300537831431} - 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: 4588808533219541975} - - {fileID: 55462233220691548} - - {fileID: 6633764668880504294} - m_Father: {fileID: 9184085923298778894} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.39900002, y: 0} - m_AnchorMax: {x: 0.6, y: 1} - m_AnchoredPosition: {x: -170, y: 0} - m_SizeDelta: {x: 140, y: -2} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &4417375924538051045 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2960622662769578833} - - component: {fileID: 6960406641884156449} - - component: {fileID: 2143043854366787450} - m_Layer: 5 - m_Name: LExpression3stickText - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2960622662769578833 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4417375924538051045} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 6202310348302799411} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 97.201996, y: 0} - m_SizeDelta: {x: 221.224, y: 67.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6960406641884156449 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4417375924538051045} - m_CullTransparentMesh: 0 ---- !u!114 &2143043854366787450 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4417375924538051045} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 45 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 58 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: W,A,S,D ---- !u!1 &4508788749262159961 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6633764668880504294} - - component: {fileID: 1831986100379435162} - - component: {fileID: 5211343494943572565} - m_Layer: 5 - m_Name: LookText - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6633764668880504294 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4508788749262159961} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 27911596466560415} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 19.8, y: 0.12232971} - m_SizeDelta: {x: 153.08, y: 29.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1831986100379435162 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4508788749262159961} - m_CullTransparentMesh: 1 ---- !u!114 &5211343494943572565 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4508788749262159961} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 42 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 115 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: Look ---- !u!1 &4542619164838155055 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3386596041128427819} - - component: {fileID: 7481722243555183427} - - component: {fileID: 5281075120118962380} - m_Layer: 5 - m_Name: LExpression0Bind - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &3386596041128427819 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4542619164838155055} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 7868162925709135601} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 97.201996, y: 0} - m_SizeDelta: {x: 221.224, y: 67.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &7481722243555183427 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4542619164838155055} - m_CullTransparentMesh: 0 ---- !u!114 &5281075120118962380 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4542619164838155055} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 45 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 58 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: K ---- !u!1 &4560080867658425365 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 465409959190680123} - - component: {fileID: 2775602096074475247} - - component: {fileID: 2539689992278812737} - m_Layer: 5 - m_Name: RExpression5Bind - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &465409959190680123 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4560080867658425365} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 3612895881655085730} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 41.895996, y: 0.000030517578} - m_SizeDelta: {x: 221.224, y: 67.552} - m_Pivot: {x: 0, y: 0.5} ---- !u!222 &2775602096074475247 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4560080867658425365} - m_CullTransparentMesh: 0 ---- !u!114 &2539689992278812737 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4560080867658425365} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 45 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 58 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: K ---- !u!1 &4579648507165661244 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3755905775850264140} - - component: {fileID: 420004008627478485} - m_Layer: 5 - m_Name: LHandKeyBind - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &3755905775850264140 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4579648507165661244} - 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: 2926349322669476933} - m_Father: {fileID: 6688826027410024821} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 1, y: 0.05} - m_AnchorMax: {x: 1, y: 0.05} - m_AnchoredPosition: {x: -5, y: 0} - m_SizeDelta: {x: 115, y: 30} - m_Pivot: {x: 1, y: 0.5} ---- !u!222 &420004008627478485 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4579648507165661244} - m_CullTransparentMesh: 0 ---- !u!1 &4584432513583164822 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2664160203474198374} - - component: {fileID: 4539270974991739954} - m_Layer: 5 - m_Name: RControllerKeyBind - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2664160203474198374 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4584432513583164822} - 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: 7490801368496503164} - m_Father: {fileID: 5498894420459434082} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.05} - m_AnchorMax: {x: 0, y: 0.05} - m_AnchoredPosition: {x: 5, y: 0} - m_SizeDelta: {x: 115, y: 30} - m_Pivot: {x: 0, y: 0.5} ---- !u!222 &4539270974991739954 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4584432513583164822} - m_CullTransparentMesh: 0 ---- !u!1 &4660750799797771775 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7656103794068767007} - - component: {fileID: 8241717304471958062} - - component: {fileID: 5015137234996038827} - m_Layer: 5 - m_Name: RExpression4Icon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7656103794068767007 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4660750799797771775} - 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: 2751124339627162720} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 20, y: 0} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &8241717304471958062 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4660750799797771775} - m_CullTransparentMesh: 1 ---- !u!114 &5015137234996038827 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4660750799797771775} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 76dc0abb2ebb44c9a9bd39266f0b3c91, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &4680802700698435911 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4784770220189540577} - - component: {fileID: 8516581145779619093} - - component: {fileID: 1382989206379361076} - m_Layer: 5 - m_Name: LookValuesText - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4784770220189540577 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4680802700698435911} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 8658708234692622649} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 22.195, y: 0.12232971} - m_SizeDelta: {x: 153.08, y: 29.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &8516581145779619093 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4680802700698435911} - m_CullTransparentMesh: 0 ---- !u!114 &1382989206379361076 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4680802700698435911} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 42 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 115 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: Mouse Move ---- !u!1 &4695206582529755048 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5961962218551576997} - - component: {fileID: 7383436562641969423} - - component: {fileID: 3768984851911990246} - m_Layer: 0 - m_Name: LGripButton - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5961962218551576997 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4695206582529755048} - 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: 3002383805111170562} - - {fileID: 7193435800343865340} - m_Father: {fileID: 537185462701595200} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 153, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &7383436562641969423 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4695206582529755048} - m_CullTransparentMesh: 1 ---- !u!114 &3768984851911990246 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4695206582529755048} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 89cb99e3e22696848a1cbce7b320f520, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2.1 ---- !u!1 &4772051548424299103 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5907894215337029604} - - component: {fileID: 4959906271408918182} - - component: {fileID: 1961592952334493289} - m_Layer: 5 - m_Name: LookValuesIcon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5907894215337029604 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4772051548424299103} - 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: 8658708234692622649} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -105, y: 0.1223} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &4959906271408918182 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4772051548424299103} - m_CullTransparentMesh: 1 ---- !u!114 &1961592952334493289 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4772051548424299103} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: f997d60d79a4e45cab6b1814e377a1b3, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &4815978025416180668 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7210374592701731116} - - component: {fileID: 835322684707672675} - - component: {fileID: 3571123923799289125} - m_Layer: 0 - m_Name: LExpression2Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7210374592701731116 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4815978025416180668} - 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: 767564925141842383} - - {fileID: 6076226026162586969} - - {fileID: 5162934926535781650} - m_Father: {fileID: 6462993320847643308} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &835322684707672675 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4815978025416180668} - m_CullTransparentMesh: 1 ---- !u!114 &3571123923799289125 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4815978025416180668} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &4868345648910077735 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3705340878385713561} - - component: {fileID: 1651828413451517821} - - component: {fileID: 7353517302304817799} - m_Layer: 5 - m_Name: RPrimaryText - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &3705340878385713561 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4868345648910077735} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 5026453929358367971} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 97.201996, y: 0} - m_SizeDelta: {x: 221.224, y: 67.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1651828413451517821 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4868345648910077735} - m_CullTransparentMesh: 0 ---- !u!114 &7353517302304817799 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4868345648910077735} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 45 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 58 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: Primary ---- !u!1 &4931128358686969042 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8482404054746877728} - - component: {fileID: 9169376837264079424} - - component: {fileID: 2721275356292669011} - m_Layer: 0 - m_Name: HeadsetImage - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &8482404054746877728 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4931128358686969042} - 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: [] - m_Father: {fileID: 8808850000785169588} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 1} - m_AnchorMax: {x: 0.5, y: 1} - m_AnchoredPosition: {x: 0, y: -15.000029} - m_SizeDelta: {x: 100, y: 50} - m_Pivot: {x: 0.5, y: 1} ---- !u!222 &9169376837264079424 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4931128358686969042} - m_CullTransparentMesh: 1 ---- !u!114 &2721275356292669011 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4931128358686969042} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 177f60e6b21ff774093004ca330b2241, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &5002853142303174881 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2314423295413228411} - - component: {fileID: 2781131191768778335} - m_Layer: 0 - m_Name: RExpression0Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2314423295413228411 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5002853142303174881} - 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: 2566992847932450312} - - {fileID: 7845584875122968193} - - {fileID: 2530981367770184548} - - {fileID: 7408420773471807684} - m_Father: {fileID: 4545038286919774978} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &2781131191768778335 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5002853142303174881} - m_CullTransparentMesh: 1 ---- !u!1 &5124320464015588982 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8172909560867918246} - m_Layer: 0 - m_Name: TranslateRotateRow - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &8172909560867918246 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5124320464015588982} - 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: 641481497500139678} - - {fileID: 3173181438937221057} - m_Father: {fileID: 4406604062793069055} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 604, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &5144230184382144275 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6834570650340802011} - - component: {fileID: 5022682649648832736} - - component: {fileID: 4302573497791843332} - m_Layer: 0 - m_Name: LHandImage - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6834570650340802011 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5144230184382144275} - 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: [] - m_Father: {fileID: 7362995812378593056} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -3.300003, y: 7} - m_SizeDelta: {x: -10, y: -30} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &5022682649648832736 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5144230184382144275} - m_CullTransparentMesh: 1 ---- !u!114 &4302573497791843332 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5144230184382144275} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 7d3dbc333af046c4193982e1166659dd, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &5159842120800599147 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8658708234692622649} - - component: {fileID: 7067700435668743572} - m_Layer: 5 - m_Name: LookValues - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &8658708234692622649 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5159842120800599147} - 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: 5907894215337029604} - - {fileID: 4784770220189540577} - m_Father: {fileID: 9184085923298778894} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.39900002, y: 0} - m_AnchorMax: {x: 0.6, y: 1} - m_AnchoredPosition: {x: 170.04999, y: 0.000049591064} - m_SizeDelta: {x: 140.09998, y: -7.9637} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &7067700435668743572 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5159842120800599147} - m_CullTransparentMesh: 0 ---- !u!1 &5186017913614716935 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 928914878550950041} - - component: {fileID: 1592211538357293145} - - component: {fileID: 7097752115947953456} - m_Layer: 5 - m_Name: RExpression3Icon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &928914878550950041 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5186017913614716935} - 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: 7767859450673573951} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 20, y: 0} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1592211538357293145 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5186017913614716935} - m_CullTransparentMesh: 1 ---- !u!114 &7097752115947953456 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5186017913614716935} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 76dc0abb2ebb44c9a9bd39266f0b3c91, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &5264252996979404251 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5490768048793251116} - - component: {fileID: 5640519250381773497} - - component: {fileID: 5631620507944027750} - m_Layer: 5 - m_Name: RHandKeyBindText - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5490768048793251116 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5264252996979404251} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 4760555099384953812} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -0.000002861023} - m_SizeDelta: {x: 0, y: -0.000005722046} - m_Pivot: {x: 0, y: 0.5} ---- !u!222 &5640519250381773497 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5264252996979404251} - m_CullTransparentMesh: 0 ---- !u!114 &5631620507944027750 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5264252996979404251} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 36 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 2 - m_MaxSize: 65 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: '[Toggle]' ---- !u!1 &5306658030273723222 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4781838991281678427} - - component: {fileID: 3461636229979111402} - - component: {fileID: 4757261489836328332} - - component: {fileID: 3878188125220695243} - m_Layer: 5 - m_Name: CloseUIBtn - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4781838991281678427 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5306658030273723222} - 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: 1410681280152203499} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 1, y: 0.5} - m_AnchorMax: {x: 1, y: 0.5} - m_AnchoredPosition: {x: -20, y: 0} - m_SizeDelta: {x: 32, y: 32} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &3461636229979111402 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5306658030273723222} - m_CullTransparentMesh: 0 ---- !u!114 &4757261489836328332 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5306658030273723222} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: c76518a5819794083a346812c0906b77, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!114 &3878188125220695243 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5306658030273723222} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 4757261489836328332} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 4465484215854679096} - m_TargetAssemblyTypeName: - m_MethodName: OnClickCloseSimulatorUIPanel - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!1 &5377099287645797415 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1090898951568715956} - m_Layer: 0 - m_Name: TopSection - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1090898951568715956 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5377099287645797415} - 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: 4183362681496228909} - m_Father: {fileID: 1638209659654700137} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 175} - m_Pivot: {x: 0.5, y: 1} ---- !u!1 &5474911868306362253 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7490801368496503164} - - component: {fileID: 73079961534976668} - - component: {fileID: 4155314165934772199} - m_Layer: 5 - m_Name: RControllerKeyBindText - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7490801368496503164 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5474911868306362253} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 2664160203474198374} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -0.000002861023} - m_SizeDelta: {x: 0, y: -0.000005722046} - m_Pivot: {x: 0, y: 0.5} ---- !u!222 &73079961534976668 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5474911868306362253} - m_CullTransparentMesh: 0 ---- !u!114 &4155314165934772199 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5474911868306362253} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 36 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 2 - m_MaxSize: 65 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: '[Toggle]' ---- !u!1 &5592726928964046354 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5026453929358367971} - - component: {fileID: 1305193763681998796} - - component: {fileID: 4707216344160266519} - m_Layer: 0 - m_Name: RPrimaryButton - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5026453929358367971 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5592726928964046354} - 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: 282613771757399827} - - {fileID: 3705340878385713561} - m_Father: {fileID: 8484091777571837807} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 153, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1305193763681998796 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5592726928964046354} - m_CullTransparentMesh: 1 ---- !u!114 &4707216344160266519 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5592726928964046354} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &5686209082028937530 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7591974749378975761} - - component: {fileID: 422230263331092271} - - component: {fileID: 8284150429798826035} - m_Layer: 5 - m_Name: CursorLockIcon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7591974749378975761 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5686209082028937530} - 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: 7838612929920592448} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -105, y: 0.1223} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &422230263331092271 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5686209082028937530} - m_CullTransparentMesh: 1 ---- !u!114 &8284150429798826035 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5686209082028937530} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 9e4e923f2e0534a56b6a0c2321388194, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &5692100895278696486 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7957317870655340943} - - component: {fileID: 2898328057681303322} - m_Layer: 5 - m_Name: XRInputMethodsLabel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7957317870655340943 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5692100895278696486} - 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: 7920521666892899266} - m_Father: {fileID: 1638209659654700137} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &2898328057681303322 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5692100895278696486} - m_CullTransparentMesh: 0 ---- !u!1 &5700625697054680277 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7103409666290189088} - m_Layer: 0 - m_Name: LeftController - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7103409666290189088 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5700625697054680277} - 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: 537185462701595200} - - {fileID: 754334856648844837} - - {fileID: 3810526079947131977} - m_Father: {fileID: 2375198052207354545} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0.5, y: 1} - m_AnchoredPosition: {x: 1, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &5724322852318047251 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2803143897982347169} - - component: {fileID: 5600310592711868575} - - component: {fileID: 7359137029063965929} - m_Layer: 5 - m_Name: LSecondaryIcon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2803143897982347169 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5724322852318047251} - 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: 5264040794177459897} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 20, y: 0} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &5600310592711868575 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5724322852318047251} - m_CullTransparentMesh: 1 ---- !u!114 &7359137029063965929 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5724322852318047251} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 76dc0abb2ebb44c9a9bd39266f0b3c91, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &5880637838539333524 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1510148679143476660} - - component: {fileID: 5347067544782346359} - m_Layer: 0 - m_Name: RHand - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1510148679143476660 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5880637838539333524} - 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: 5704057125620080137} - m_Father: {fileID: 6555096854186027131} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.25, y: 0.5} - m_AnchorMax: {x: 0.25, y: 0.5} - m_AnchoredPosition: {x: -11.7, y: 10} - m_SizeDelta: {x: 135, y: 225} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &5347067544782346359 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5880637838539333524} - m_CullTransparentMesh: 1 ---- !u!1 &5890872487850813880 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4366457965414634530} - - component: {fileID: 5046759505379620248} - - component: {fileID: 8839167712524059776} - m_Layer: 5 - m_Name: RGripIcon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4366457965414634530 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5890872487850813880} - 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: 6173016768322924529} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 20, y: 0} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &5046759505379620248 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5890872487850813880} - m_CullTransparentMesh: 1 ---- !u!114 &8839167712524059776 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5890872487850813880} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 76dc0abb2ebb44c9a9bd39266f0b3c91, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &6058238264489723445 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2728807970551288091} - - component: {fileID: 9030921633862422929} - - component: {fileID: 2067075132594572646} - m_Layer: 5 - m_Name: RGripText - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2728807970551288091 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6058238264489723445} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 6173016768322924529} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 97.201996, y: 0} - m_SizeDelta: {x: 221.224, y: 67.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &9030921633862422929 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6058238264489723445} - m_CullTransparentMesh: 0 ---- !u!114 &2067075132594572646 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6058238264489723445} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 45 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 58 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: Grip ---- !u!1 &6073524971075917010 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5040662063865177185} - - component: {fileID: 6546049369509115381} - - component: {fileID: 8280149368199386730} - m_Layer: 5 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5040662063865177185 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6073524971075917010} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 8266049202949608784} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 19.8, y: 0.12232971} - m_SizeDelta: {x: 153.08, y: 29.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6546049369509115381 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6073524971075917010} - m_CullTransparentMesh: 0 ---- !u!114 &8280149368199386730 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6073524971075917010} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 42 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 115 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: HMD ---- !u!1 &6079551086519483268 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 641378907099528958} - - component: {fileID: 7483261958102367550} - - component: {fileID: 7542507035909431882} - m_Layer: 5 - m_Name: LMenuText - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &641378907099528958 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6079551086519483268} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 5498112335980241132} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 97.201996, y: 0} - m_SizeDelta: {x: 221.224, y: 67.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &7483261958102367550 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6079551086519483268} - m_CullTransparentMesh: 0 ---- !u!114 &7542507035909431882 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6079551086519483268} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 45 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 58 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: Menu ---- !u!1 &6110355962726056997 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 217723402183666948} - - component: {fileID: 7515056654543532597} - - component: {fileID: 6248745479877647734} - m_Layer: 5 - m_Name: MoveIcon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &217723402183666948 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6110355962726056997} - 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: 8059781972635455925} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -105, y: 0.1223} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &7515056654543532597 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6110355962726056997} - m_CullTransparentMesh: 1 ---- !u!114 &6248745479877647734 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6110355962726056997} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 1d56a2d39cfbb49149abbf0076259327, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &6211571586753507704 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5603832654879856732} - - component: {fileID: 4564452692390123240} - - component: {fileID: 2365044581243270202} - m_Layer: 5 - m_Name: Separator - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5603832654879856732 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6211571586753507704} - 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: [] - m_Father: {fileID: 1638209659654700137} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 2} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &4564452692390123240 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6211571586753507704} - m_CullTransparentMesh: 1 ---- !u!114 &2365044581243270202 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6211571586753507704} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &6241285283790333551 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 9045665383047432220} - - component: {fileID: 6073157546749883684} - - component: {fileID: 2880029118767939635} - m_Layer: 5 - m_Name: RSecondaryIcon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &9045665383047432220 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6241285283790333551} - 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: 5417714045102847244} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 20, y: 0} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6073157546749883684 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6241285283790333551} - m_CullTransparentMesh: 1 ---- !u!114 &2880029118767939635 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6241285283790333551} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 76dc0abb2ebb44c9a9bd39266f0b3c91, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &6258417348793935797 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7838612929920592448} - - component: {fileID: 6306803474220772754} - - component: {fileID: 7134225087827827873} - m_Layer: 5 - m_Name: CursorLockButton - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7838612929920592448 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6258417348793935797} - 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: 7591974749378975761} - - {fileID: 4655979479453782547} - m_Father: {fileID: 1525949943038772175} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.39900002, y: 0} - m_AnchorMax: {x: 0.6, y: 1} - m_AnchoredPosition: {x: -170, y: 0} - m_SizeDelta: {x: 140, y: -2} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6306803474220772754 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6258417348793935797} - m_CullTransparentMesh: 0 ---- !u!114 &7134225087827827873 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6258417348793935797} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &6320559314919906147 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4655979479453782547} - - component: {fileID: 7213067749628437573} - - component: {fileID: 8592730955871035129} - m_Layer: 5 - m_Name: CursorLockText - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4655979479453782547 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6320559314919906147} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 7838612929920592448} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 19.8, y: 0.12232971} - m_SizeDelta: {x: 153.08, y: 29.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &7213067749628437573 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6320559314919906147} - m_CullTransparentMesh: 0 ---- !u!114 &8592730955871035129 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6320559314919906147} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 42 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 115 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: Cursor Lock ---- !u!1 &6401519027833211422 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1644568580757268702} - - component: {fileID: 6839629451215005830} - - component: {fileID: 8744337181181706107} - m_Layer: 5 - m_Name: LExpression0Icon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1644568580757268702 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6401519027833211422} - 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: 7868162925709135601} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 20, y: 0} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6839629451215005830 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6401519027833211422} - m_CullTransparentMesh: 1 ---- !u!114 &8744337181181706107 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6401519027833211422} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 76dc0abb2ebb44c9a9bd39266f0b3c91, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &6446265796040595061 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6167112928552560931} - m_Layer: 0 - m_Name: CycleXRInputRow - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6167112928552560931 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6446265796040595061} - 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: 8751572082322455077} - - {fileID: 1085174744544309416} - m_Father: {fileID: 4183362681496228909} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 604, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &6451191403789274921 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3812385094234538481} - - component: {fileID: 4061229266252227109} - - component: {fileID: 6988461728819528333} - m_Layer: 5 - m_Name: LExpression5Name - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &3812385094234538481 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6451191403789274921} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 6234028023674512109} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 65, y: -0.000030517578} - m_SizeDelta: {x: 187, y: 67.552} - m_Pivot: {x: 0, y: 0.5} ---- !u!222 &4061229266252227109 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6451191403789274921} - m_CullTransparentMesh: 0 ---- !u!114 &6988461728819528333 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6451191403789274921} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 42 - m_FontStyle: 0 - m_BestFit: 1 - m_MinSize: 0 - m_MaxSize: 45 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: Name ---- !u!1 &6456497066899002272 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6624498863070468513} - - component: {fileID: 8268537284488860631} - - component: {fileID: 8882831833105517729} - m_Layer: 0 - m_Name: LPrimaryButton - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6624498863070468513 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6456497066899002272} - 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: 4575570135842204626} - - {fileID: 7100264250456930914} - m_Father: {fileID: 537185462701595200} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 153, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &8268537284488860631 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6456497066899002272} - m_CullTransparentMesh: 1 ---- !u!114 &8882831833105517729 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6456497066899002272} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &6517414633578450629 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4588808533219541975} - - component: {fileID: 3060564814435003031} - - component: {fileID: 8816222108907400299} - m_Layer: 5 - m_Name: Bg - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4588808533219541975 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6517414633578450629} - 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: 27911596466560415} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &3060564814435003031 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6517414633578450629} - m_CullTransparentMesh: 1 ---- !u!114 &8816222108907400299 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6517414633578450629} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 89cb99e3e22696848a1cbce7b320f520, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2.1 ---- !u!1 &6571452775300653220 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2843830431281675184} - - component: {fileID: 714980873680246536} - - component: {fileID: 1803654096424338867} - m_Layer: 5 - m_Name: HandBg - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2843830431281675184 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6571452775300653220} - 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: 8170169633823365925} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &714980873680246536 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6571452775300653220} - m_CullTransparentMesh: 1 ---- !u!114 &1803654096424338867 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6571452775300653220} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 89cb99e3e22696848a1cbce7b320f520, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2.1 ---- !u!1 &6626148677775219752 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8702474825479002792} - - component: {fileID: 181602473041884184} - - component: {fileID: 8997356216852640550} - m_Layer: 5 - m_Name: RExpression3stickText - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &8702474825479002792 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6626148677775219752} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 4126372588271254228} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 97.201996, y: 0} - m_SizeDelta: {x: 221.224, y: 67.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &181602473041884184 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6626148677775219752} - m_CullTransparentMesh: 0 ---- !u!114 &8997356216852640550 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6626148677775219752} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 45 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 58 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: W,A,S,D ---- !u!1 &6629037898421352358 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5650525310892581216} - - component: {fileID: 4418481662742144290} - - component: {fileID: 1816450005177885120} - m_Layer: 5 - m_Name: HMDValueText - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5650525310892581216 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6629037898421352358} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 6797212258523857263} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 22.195, y: 0.12232971} - m_SizeDelta: {x: 153.08, y: 29.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &4418481662742144290 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6629037898421352358} - m_CullTransparentMesh: 0 ---- !u!114 &1816450005177885120 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6629037898421352358} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 42 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 115 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: HMD Bind ---- !u!1 &6727403809735944615 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8130252941189920581} - - component: {fileID: 7207521502623590696} - - component: {fileID: 5329654153670800211} - m_Layer: 5 - m_Name: Icon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &8130252941189920581 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6727403809735944615} - 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: 6797212258523857263} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -105, y: 0.1223} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &7207521502623590696 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6727403809735944615} - m_CullTransparentMesh: 1 ---- !u!114 &5329654153670800211 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6727403809735944615} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 76dc0abb2ebb44c9a9bd39266f0b3c91, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &6854927009880641954 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1435818010387211638} - - component: {fileID: 6084545159862323512} - - component: {fileID: 1304613695517469534} - m_Layer: 0 - m_Name: RControllerImage - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1435818010387211638 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6854927009880641954} - 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: [] - m_Father: {fileID: 4367518527615682733} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 3.199997, y: 7} - m_SizeDelta: {x: -10, y: -30} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6084545159862323512 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6854927009880641954} - m_CullTransparentMesh: 1 ---- !u!114 &1304613695517469534 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6854927009880641954} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 17c263f6077f14b218b13656aacd9551, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &6860690038395063160 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 9006406528424705473} - - component: {fileID: 7697561839572840220} - - component: {fileID: 4127540898704975624} - m_Layer: 5 - m_Name: Icon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &9006406528424705473 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6860690038395063160} - 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: 8266049202949608784} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -105, y: 0.1223} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &7697561839572840220 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6860690038395063160} - m_CullTransparentMesh: 1 ---- !u!114 &4127540898704975624 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6860690038395063160} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 08548d5ac6b7bc64da0b332636c5cc91, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &6889253956845354232 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 738610811508460873} - - component: {fileID: 4976131499544171943} - - component: {fileID: 1934479426755692708} - m_Layer: 5 - m_Name: XRDeviceSimLabel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &738610811508460873 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6889253956845354232} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1410681280152203499} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 38, y: 0} - m_SizeDelta: {x: 470, y: 32} - m_Pivot: {x: 0, y: 0.5} ---- !u!222 &4976131499544171943 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6889253956845354232} - m_CullTransparentMesh: 0 ---- !u!114 &1934479426755692708 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6889253956845354232} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 45 - m_FontStyle: 1 - m_BestFit: 0 - m_MinSize: 1 - m_MaxSize: 300 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: XR Device Simulator ---- !u!1 &6895722807339521491 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7097933087774045473} - - component: {fileID: 4251587358758506515} - - component: {fileID: 3447181658184698834} - m_Layer: 5 - m_Name: MoveValuesText - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7097933087774045473 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6895722807339521491} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 7436509360777108265} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 22.195, y: 0.12232971} - m_SizeDelta: {x: 153.08, y: 29.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &4251587358758506515 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6895722807339521491} - m_CullTransparentMesh: 0 ---- !u!114 &3447181658184698834 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6895722807339521491} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 42 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 115 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: Movement Bind ---- !u!1 &6926658450106704013 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 292161024320626674} - - component: {fileID: 3774626748645449742} - - component: {fileID: 2009267550500725104} - m_Layer: 5 - m_Name: RMenuText - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &292161024320626674 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6926658450106704013} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 4904194509911213832} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 97.201996, y: 0} - m_SizeDelta: {x: 221.224, y: 67.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &3774626748645449742 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6926658450106704013} - m_CullTransparentMesh: 0 ---- !u!114 &2009267550500725104 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6926658450106704013} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 45 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 58 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: Menu ---- !u!1 &6948296404533650720 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5513303074855352272} - - component: {fileID: 1820316270378829101} - - component: {fileID: 3991019180862111495} - m_Layer: 5 - m_Name: RExpression2Icon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5513303074855352272 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6948296404533650720} - 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: 3662364895757944182} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 20, y: 0} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1820316270378829101 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6948296404533650720} - m_CullTransparentMesh: 1 ---- !u!114 &3991019180862111495 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6948296404533650720} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 76dc0abb2ebb44c9a9bd39266f0b3c91, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &6972843308003237661 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7960587828077478501} - - component: {fileID: 1980283427671409612} - - component: {fileID: 3975362395058403299} - m_Layer: 5 - m_Name: TranslateRotateIcon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7960587828077478501 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6972843308003237661} - 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: 641481497500139678} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -105, y: 0.1223} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1980283427671409612 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6972843308003237661} - m_CullTransparentMesh: 1 ---- !u!114 &3975362395058403299 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6972843308003237661} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 139237a044d8e4255b40bb472c842087, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &7135150639758217606 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3525313934337792023} - m_Layer: 0 - m_Name: HandRow - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &3525313934337792023 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7135150639758217606} - 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: 8170169633823365925} - - {fileID: 8539554857296250557} - m_Father: {fileID: 4183362681496228909} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 604, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &7164882231009737402 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2926349322669476933} - - component: {fileID: 5738629138408965551} - - component: {fileID: 3971054272347729680} - m_Layer: 5 - m_Name: LHandKeyBindText - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2926349322669476933 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7164882231009737402} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 3755905775850264140} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0.0000019073486} - m_SizeDelta: {x: 0, y: -0.000002861023} - m_Pivot: {x: 1, y: 0.5} ---- !u!222 &5738629138408965551 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7164882231009737402} - m_CullTransparentMesh: 0 ---- !u!114 &3971054272347729680 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7164882231009737402} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 36 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 2 - m_MaxSize: 65 - m_Alignment: 5 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: '[Toggle]' ---- !u!1 &7181221196645478565 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8591091615642228418} - - component: {fileID: 3074234920302147511} - - component: {fileID: 483164645938698941} - m_Layer: 5 - m_Name: RSecondaryText - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &8591091615642228418 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7181221196645478565} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 5417714045102847244} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 97.201996, y: 0} - m_SizeDelta: {x: 221.224, y: 67.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &3074234920302147511 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7181221196645478565} - m_CullTransparentMesh: 0 ---- !u!114 &483164645938698941 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7181221196645478565} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 45 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 58 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: Secondary ---- !u!1 &7238938505130696715 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 332777195174710517} - - component: {fileID: 4648403032256702414} - - component: {fileID: 32225061805576858} - m_Layer: 5 - m_Name: ControllerSelectedButton - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &332777195174710517 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7238938505130696715} - 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: 4957108541736216693} - - {fileID: 8040695527253065495} - m_Father: {fileID: 5096071673048095565} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.39900002, y: 0} - m_AnchorMax: {x: 0.6, y: 1} - m_AnchoredPosition: {x: -170, y: 0} - m_SizeDelta: {x: 140, y: -2} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &4648403032256702414 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7238938505130696715} - m_CullTransparentMesh: 0 ---- !u!114 &32225061805576858 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7238938505130696715} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &7258216382841568623 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8059781972635455925} - - component: {fileID: 5795658495555519894} - - component: {fileID: 6098669866548815350} - m_Layer: 5 - m_Name: MoveButton - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &8059781972635455925 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7258216382841568623} - 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: 217723402183666948} - - {fileID: 5737249769705389612} - m_Father: {fileID: 5067531158375095824} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.39900002, y: 0} - m_AnchorMax: {x: 0.6, y: 1} - m_AnchoredPosition: {x: -170, y: 0} - m_SizeDelta: {x: 140, y: -2} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &5795658495555519894 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7258216382841568623} - m_CullTransparentMesh: 0 ---- !u!114 &6098669866548815350 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7258216382841568623} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &7276332504517305019 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6173016768322924529} - - component: {fileID: 461917931673222571} - - component: {fileID: 1179552689117581641} - m_Layer: 0 - m_Name: RGripButton - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6173016768322924529 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7276332504517305019} - 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: 4366457965414634530} - - {fileID: 2728807970551288091} - m_Father: {fileID: 8484091777571837807} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 153, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &461917931673222571 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7276332504517305019} - m_CullTransparentMesh: 1 ---- !u!114 &1179552689117581641 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7276332504517305019} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 89cb99e3e22696848a1cbce7b320f520, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2.1 ---- !u!1 &7332564797995998783 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6555096854186027131} - m_Layer: 0 - m_Name: RightHand - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6555096854186027131 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7332564797995998783} - 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: 4545038286919774978} - - {fileID: 1510148679143476660} - - {fileID: 4760555099384953812} - m_Father: {fileID: 2813366516863096307} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.5, y: 0} - m_SizeDelta: {x: -4.0000076, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &7492471381751310721 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5067531158375095824} - m_Layer: 0 - m_Name: MovementRow - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5067531158375095824 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7492471381751310721} - 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: 8059781972635455925} - - {fileID: 7436509360777108265} - m_Father: {fileID: 4406604062793069055} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 604, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &7494604795539143111 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7920521666892899266} - - component: {fileID: 4606686241095903233} - - component: {fileID: 1669961118827066462} - m_Layer: 5 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7920521666892899266 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7494604795539143111} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 7957317870655340943} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 6, y: 0} - m_SizeDelta: {x: 500, y: 80} - m_Pivot: {x: 0, y: 0.5} ---- !u!222 &4606686241095903233 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7494604795539143111} - m_CullTransparentMesh: 0 ---- !u!114 &1669961118827066462 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7494604795539143111} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 42 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 115 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: XR Input Methods ---- !u!1 &7507972748976072448 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7474410419877653498} - - component: {fileID: 1978975285318107072} - - component: {fileID: 4657459692363283452} - m_Layer: 5 - m_Name: LExpression5Bind - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7474410419877653498 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7507972748976072448} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 6234028023674512109} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 97.201996, y: 0} - m_SizeDelta: {x: 221.224, y: 67.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1978975285318107072 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7507972748976072448} - m_CullTransparentMesh: 0 ---- !u!114 &4657459692363283452 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7507972748976072448} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 45 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 58 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: K ---- !u!1 &7512441770001989854 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4126372588271254228} - - component: {fileID: 1940376828304949794} - - component: {fileID: 4168473694154048854} - m_Layer: 0 - m_Name: RExpression3stickButton - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4126372588271254228 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7512441770001989854} - 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: 4014092977727084897} - - {fileID: 8702474825479002792} - m_Father: {fileID: 8484091777571837807} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 153, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1940376828304949794 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7512441770001989854} - m_CullTransparentMesh: 1 ---- !u!114 &4168473694154048854 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7512441770001989854} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &7572656654631549504 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 305517817363592027} - - component: {fileID: 4764559861082894922} - - component: {fileID: 4713727963536895302} - m_Layer: 5 - m_Name: RExpression1Name - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &305517817363592027 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7572656654631549504} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 628890490560670852} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 65, y: -0.000030517578} - m_SizeDelta: {x: 187, y: 67.552} - m_Pivot: {x: 0, y: 0.5} ---- !u!222 &4764559861082894922 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7572656654631549504} - m_CullTransparentMesh: 0 ---- !u!114 &4713727963536895302 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7572656654631549504} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 42 - m_FontStyle: 0 - m_BestFit: 1 - m_MinSize: 0 - m_MaxSize: 45 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: Name ---- !u!1 &7609329623103875362 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6797212258523857263} - - component: {fileID: 1416229376542274034} - m_Layer: 5 - m_Name: HMDSelectedValues - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6797212258523857263 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7609329623103875362} - 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: 8130252941189920581} - - {fileID: 5650525310892581216} - m_Father: {fileID: 1399327480036815817} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.39900002, y: 0} - m_AnchorMax: {x: 0.6, y: 1} - m_AnchoredPosition: {x: 170.04999, y: 0.000045776367} - m_SizeDelta: {x: 140.09998, y: -7.9637} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1416229376542274034 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7609329623103875362} - m_CullTransparentMesh: 0 ---- !u!1 &7662076761675301960 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6889984780207233200} - - component: {fileID: 481508915478006318} - - component: {fileID: 8693460562897698903} - - component: {fileID: 7098073663220756702} - - component: {fileID: 4465484215854679096} - - component: {fileID: 6388339889282338722} - - component: {fileID: 6188265173982644058} - - component: {fileID: 2729451482439296740} - - component: {fileID: 3686829068081992021} - m_Layer: 5 - m_Name: XR Device Simulator UI - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6889984780207233200 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7662076761675301960} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0, y: 0, z: 0} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1847791695669142127} - - {fileID: 1638209659654700137} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0, y: 0} ---- !u!223 &481508915478006318 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7662076761675301960} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 0 - m_Camera: {fileID: 0} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_AdditionalShaderChannelsFlag: 0 - m_SortingLayerID: 0 - m_SortingOrder: 1 - m_TargetDisplay: 0 ---- !u!114 &8693460562897698903 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7662076761675301960} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 1 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 1920, y: 1080} - m_ScreenMatchMode: 1 - m_MatchWidthOrHeight: 1 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 0 ---- !u!114 &7098073663220756702 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7662076761675301960} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!114 &4465484215854679096 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7662076761675301960} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e8b922481d9264546b97958b2c7cf0a0, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IsMenuOpen: 1 - m_XRDeviceSimulatorMainPanel: {fileID: 1638209659654700138} - m_XRDeviceSimulatorCollapsedPanel: {fileID: 1433554934514912911} - m_HmdSpriteDark: {fileID: 21300000, guid: 177f60e6b21ff774093004ca330b2241, type: 3} - m_HmdSpriteLight: {fileID: 21300000, guid: 4eb43321e418951499417cda6141b31a, type: 3} - m_KeyboardSprite: {fileID: 21300000, guid: 76dc0abb2ebb44c9a9bd39266f0b3c91, type: 3} - m_MouseSprite: {fileID: 21300000, guid: f997d60d79a4e45cab6b1814e377a1b3, type: 3} - m_RMouseSpriteDark: {fileID: 21300000, guid: 308cc8b73722e43eab64c228a76560a6, type: 3} - m_RMouseSpriteLight: {fileID: 21300000, guid: 14e910c1fb9c7514a8106ffd25f1d892, type: 3} - m_RMouseSprite: {fileID: 0} - m_RoundedRectangle: {fileID: 21300000, guid: 89cb99e3e22696848a1cbce7b320f520, type: 3} - m_CycleDevicesText: {fileID: 3371161537473467337} - m_CurrentSelectedDeviceText: {fileID: 5399548881570719173} - m_HeadsetImage: {fileID: 2721275356292669011} - m_HeadsetMoveButton: {fileID: 6098669866548815350} - m_HeadsetMoveButtonIcon: {fileID: 6248745479877647734} - m_HeadsetMoveButtonText: {fileID: 517803879020285813} - m_HeadsetMoveValueIcon: {fileID: 4412908402409514172} - m_HeadsetMoveValueText: {fileID: 3447181658184698834} - m_HeadsetLookButton: {fileID: 8816222108907400299} - m_HeadsetLookButtonText: {fileID: 5211343494943572565} - m_HeadsetLookValueIcon: {fileID: 1961592952334493289} - m_HeadsetLookValueText: {fileID: 1382989206379361076} - m_CursorLockButton: {fileID: 7134225087827827873} - m_CursorLockValueText: {fileID: 7120185377061894656} - m_MouseModeButtonText: {fileID: 5592230383290526872} - m_MouseModeValueText: {fileID: 1452563728541468582} - m_HeadsetSelectedButton: {fileID: 1467215871600972289} - m_HeadsetSelectedValueText: {fileID: 1816450005177885120} - m_ControllerSelectedButton: {fileID: 32225061805576858} - m_ControllerSelectedIcon: {fileID: 6487868528169299833} - m_ControllerSelectedText: {fileID: 7058744311849270435} - m_ControllersSelectedValueText: {fileID: 8477002242924536414} - m_ControllersCanvasGroup: {fileID: 4327810280124264318} - m_LeftController: {fileID: 6388339889282338722} - m_LeftControllerButtonText: {fileID: 338382388888213524} - m_RightController: {fileID: 6188265173982644058} - m_RightControllerButtonText: {fileID: 4155314165934772199} - m_HandsSelectedButton: {fileID: 1803654096424338867} - m_HandsSelectedIcon: {fileID: 1488390788848035247} - m_HandsSelectedText: {fileID: 2396995885832409176} - m_HandsSelectedValueIcon: {fileID: 5513420064914589275} - m_HandsSelectedValueText: {fileID: 2349352921063641774} - m_HandsCanvasGroup: {fileID: 2291087181951237043} - m_LeftHand: {fileID: 2729451482439296740} - m_LeftHandButtonText: {fileID: 3971054272347729680} - m_RightHand: {fileID: 3686829068081992021} - m_RightHandButtonText: {fileID: 5631620507944027750} - m_EnabledColor: {r: 0, g: 0, b: 0, a: 0} - m_DisabledColor: {r: 0, g: 0, b: 0, a: 0} - m_ButtonColor: {r: 0, g: 0, b: 0, a: 0} - m_DisabledButtonColor: {r: 0, g: 0, b: 0, a: 0} - m_SelectedColor: {r: 0, g: 0, b: 0, a: 0} - m_BackgroundColor: {r: 0, g: 0, b: 0, a: 0} - m_DeviceColor: {r: 0, g: 0, b: 0, a: 0} - m_DisabledDeviceColor: {r: 0, g: 0, b: 0, a: 0} ---- !u!114 &6388339889282338722 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7662076761675301960} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a907ece591e731e49b5d7be45f089972, type: 3} - m_Name: - m_EditorClassIdentifier: - m_ControllerImage: {fileID: 4141331347712887887} - m_ControllerOverlayImage: {fileID: 1917492824301861101} - m_PrimaryButtonImage: {fileID: 8882831833105517729} - m_PrimaryButtonText: {fileID: 632910349765199629} - m_PrimaryButtonIcon: {fileID: 6380410165078616517} - m_SecondaryButtonImage: {fileID: 2886981596322034576} - m_SecondaryButtonText: {fileID: 6738185887094908372} - m_SecondaryButtonIcon: {fileID: 7359137029063965929} - m_TriggerButtonImage: {fileID: 7505294238925710306} - m_TriggerButtonText: {fileID: 4897019901353677162} - m_TriggerButtonIcon: {fileID: 2259021782619594240} - m_GripButtonImage: {fileID: 3768984851911990246} - m_GripButtonText: {fileID: 7067184257790347290} - m_GripButtonIcon: {fileID: 3702832121472537402} - m_ThumbstickButtonImage: {fileID: 1991930889870372846} - m_ThumbstickButtonText: {fileID: 2143043854366787450} - m_ThumbstickButtonIcon: {fileID: 5405710756525641134} - m_MenuButtonImage: {fileID: 8909736703795628118} - m_MenuButtonText: {fileID: 7542507035909431882} - m_MenuButtonIcon: {fileID: 4478232661827727146} ---- !u!114 &6188265173982644058 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7662076761675301960} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a907ece591e731e49b5d7be45f089972, type: 3} - m_Name: - m_EditorClassIdentifier: - m_ControllerImage: {fileID: 1304613695517469534} - m_ControllerOverlayImage: {fileID: 1701825277887249889} - m_PrimaryButtonImage: {fileID: 4707216344160266519} - m_PrimaryButtonText: {fileID: 7353517302304817799} - m_PrimaryButtonIcon: {fileID: 8175907446859678347} - m_SecondaryButtonImage: {fileID: 1362998691021116941} - m_SecondaryButtonText: {fileID: 483164645938698941} - m_SecondaryButtonIcon: {fileID: 2880029118767939635} - m_TriggerButtonImage: {fileID: 4658433279421441520} - m_TriggerButtonText: {fileID: 3921153324794153759} - m_TriggerButtonIcon: {fileID: 1263497930375873354} - m_GripButtonImage: {fileID: 1179552689117581641} - m_GripButtonText: {fileID: 2067075132594572646} - m_GripButtonIcon: {fileID: 8839167712524059776} - m_ThumbstickButtonImage: {fileID: 4168473694154048854} - m_ThumbstickButtonText: {fileID: 8997356216852640550} - m_ThumbstickButtonIcon: {fileID: 6050477616616213851} - m_MenuButtonImage: {fileID: 4193425104184663439} - m_MenuButtonText: {fileID: 2009267550500725104} - m_MenuButtonIcon: {fileID: 4724637474301667115} ---- !u!114 &2729451482439296740 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7662076761675301960} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f35ac646ecbef4ece8c3eac9e74e1828, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HandImage: {fileID: 4302573497791843332} - m_HandDefaultSprite: {fileID: 21300000, guid: 7d3dbc333af046c4193982e1166659dd, type: 3} - m_Expressions: - - m_Sprite: {fileID: 21300000, guid: a2586e6b399337f409118c79273dc29d, type: 3} - m_ButtonImage: {fileID: 6388914560039728744} - m_Icon: {fileID: 8744337181181706107} - m_BindText: {fileID: 5281075120118962380} - m_TitleText: {fileID: 4915680145212764521} - - m_Sprite: {fileID: 21300000, guid: a6721511441c05a43964dac58584c890, type: 3} - m_ButtonImage: {fileID: 3637028803279225342} - m_Icon: {fileID: 8600818664181625786} - m_BindText: {fileID: 4849158320829012260} - m_TitleText: {fileID: 896150445585326192} - - m_Sprite: {fileID: 21300000, guid: bd6b9153aa3b96f49b238bbf6ae68b80, type: 3} - m_ButtonImage: {fileID: 3571123923799289125} - m_Icon: {fileID: 3527199368015468659} - m_BindText: {fileID: 3347247525062691385} - m_TitleText: {fileID: 2489405138923825782} - - m_Sprite: {fileID: 21300000, guid: 3b2e62babc5249f42921c2cd027852cd, type: 3} - m_ButtonImage: {fileID: 7589818591704186427} - m_Icon: {fileID: 8327766308005330169} - m_BindText: {fileID: 78520623898054945} - m_TitleText: {fileID: 7364929132661629932} - - m_Sprite: {fileID: 21300000, guid: a6e9e9736379c164e81fdfd2c806a91c, type: 3} - m_ButtonImage: {fileID: 7349879440043119360} - m_Icon: {fileID: 823229387731191209} - m_BindText: {fileID: 8940433140144978684} - m_TitleText: {fileID: 1518431423543185343} - - m_Sprite: {fileID: 21300000, guid: ceccab26080354140af21950c6d338d5, type: 3} - m_ButtonImage: {fileID: 1052507032598933221} - m_Icon: {fileID: 7004533194028666124} - m_BindText: {fileID: 4657459692363283452} - m_TitleText: {fileID: 6988461728819528333} ---- !u!114 &3686829068081992021 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7662076761675301960} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f35ac646ecbef4ece8c3eac9e74e1828, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HandImage: {fileID: 7011038037310918980} - m_HandDefaultSprite: {fileID: 21300000, guid: 7d3dbc333af046c4193982e1166659dd, type: 3} - m_Expressions: - - m_Sprite: {fileID: 21300000, guid: a2586e6b399337f409118c79273dc29d, type: 3} - m_ButtonImage: {fileID: 8408635471804533457} - m_Icon: {fileID: 3219178859721645255} - m_BindText: {fileID: 3756260170801479298} - m_TitleText: {fileID: 4372048392552825536} - - m_Sprite: {fileID: 21300000, guid: a6721511441c05a43964dac58584c890, type: 3} - m_ButtonImage: {fileID: 4707963144005244523} - m_Icon: {fileID: 1100953672981393537} - m_BindText: {fileID: 7660593326172566200} - m_TitleText: {fileID: 4713727963536895302} - - m_Sprite: {fileID: 21300000, guid: bd6b9153aa3b96f49b238bbf6ae68b80, type: 3} - m_ButtonImage: {fileID: 1602736334885445488} - m_Icon: {fileID: 3991019180862111495} - m_BindText: {fileID: 4202919156071094973} - m_TitleText: {fileID: 1574890059153190941} - - m_Sprite: {fileID: 21300000, guid: 3b2e62babc5249f42921c2cd027852cd, type: 3} - m_ButtonImage: {fileID: 8967920162631432870} - m_Icon: {fileID: 7097752115947953456} - m_BindText: {fileID: 3807629265801284464} - m_TitleText: {fileID: 6568751946127306849} - - m_Sprite: {fileID: 21300000, guid: a6e9e9736379c164e81fdfd2c806a91c, type: 3} - m_ButtonImage: {fileID: 4147372594905128267} - m_Icon: {fileID: 5015137234996038827} - m_BindText: {fileID: 5648968487775849891} - m_TitleText: {fileID: 6809351870642506038} - - m_Sprite: {fileID: 21300000, guid: ceccab26080354140af21950c6d338d5, type: 3} - m_ButtonImage: {fileID: 1181791779424155912} - m_Icon: {fileID: 2771097682585405286} - m_BindText: {fileID: 2539689992278812737} - m_TitleText: {fileID: 6428185077648664342} ---- !u!1 &7767217684205517638 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4367518527615682733} - - component: {fileID: 5338477934106799850} - m_Layer: 0 - m_Name: RController - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4367518527615682733 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7767217684205517638} - 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: 1435818010387211638} - - {fileID: 6627277116764366358} - m_Father: {fileID: 5498894420459434082} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.25, y: 0.5} - m_AnchorMax: {x: 0.25, y: 0.5} - m_AnchoredPosition: {x: -11.7, y: 10} - m_SizeDelta: {x: 135, y: 225} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &5338477934106799850 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7767217684205517638} - m_CullTransparentMesh: 1 ---- !u!1 &7785804475310567827 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7311062688384262108} - - component: {fileID: 1016616339085018005} - - component: {fileID: 4702010859104546173} - m_Layer: 5 - m_Name: Expression2ber - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7311062688384262108 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7785804475310567827} - 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: 1847791695669142127} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 22.4, y: 0} - m_SizeDelta: {x: 30.0572, y: 30.057} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1016616339085018005 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7785804475310567827} - m_CullTransparentMesh: 0 ---- !u!114 &4702010859104546173 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7785804475310567827} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 0.50980395} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 17689808316e14280ad508a625c4c88f, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &7823912433956647268 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7868162925709135601} - - component: {fileID: 1253619768238913424} - m_Layer: 0 - m_Name: LExpression0Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7868162925709135601 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7823912433956647268} - 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: 8132287113485033861} - - {fileID: 1644568580757268702} - - {fileID: 3386596041128427819} - - {fileID: 6334405593256699930} - m_Father: {fileID: 6462993320847643308} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1253619768238913424 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7823912433956647268} - m_CullTransparentMesh: 1 ---- !u!1 &7930493229975391315 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8266049202949608784} - - component: {fileID: 9010618909070482830} - - component: {fileID: 1467215871600972289} - m_Layer: 5 - m_Name: HMDSelectedButton - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &8266049202949608784 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7930493229975391315} - 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: 9006406528424705473} - - {fileID: 5040662063865177185} - m_Father: {fileID: 1399327480036815817} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.39900002, y: 0} - m_AnchorMax: {x: 0.6, y: 1} - m_AnchoredPosition: {x: -170, y: 0} - m_SizeDelta: {x: 140, y: -2} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &9010618909070482830 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7930493229975391315} - m_CullTransparentMesh: 0 ---- !u!114 &1467215871600972289 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7930493229975391315} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &8139072816079030646 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2422384417788841944} - - component: {fileID: 5007860049523255694} - - component: {fileID: 8734094869249158643} - m_Layer: 5 - m_Name: CursorLockValuesIcon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2422384417788841944 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8139072816079030646} - 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: 2406183980836748438} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -105, y: 0.1223} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &5007860049523255694 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8139072816079030646} - m_CullTransparentMesh: 1 ---- !u!114 &8734094869249158643 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8139072816079030646} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 76dc0abb2ebb44c9a9bd39266f0b3c91, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &8275269619631761578 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2262248402257033999} - - component: {fileID: 6156245621217848377} - - component: {fileID: 5592230383290526872} - m_Layer: 5 - m_Name: TranslateRotateText - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2262248402257033999 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8275269619631761578} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 641481497500139678} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 19.8, y: 0.12232971} - m_SizeDelta: {x: 153.08, y: 29.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6156245621217848377 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8275269619631761578} - m_CullTransparentMesh: 0 ---- !u!114 &5592230383290526872 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8275269619631761578} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 42 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 115 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: Translate/Rotate ---- !u!1 &8367935067328627427 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4592134785764335929} - - component: {fileID: 1830045690825233993} - - component: {fileID: 8600818664181625786} - m_Layer: 5 - m_Name: LExpression1Icon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4592134785764335929 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8367935067328627427} - 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: 1212292503507699025} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 20, y: 0} - m_SizeDelta: {x: 30.2816, y: 30.281} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1830045690825233993 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8367935067328627427} - m_CullTransparentMesh: 1 ---- !u!114 &8600818664181625786 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8367935067328627427} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 76dc0abb2ebb44c9a9bd39266f0b3c91, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &8400574501283423006 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5264040794177459897} - - component: {fileID: 2598416923957872529} - - component: {fileID: 2886981596322034576} - m_Layer: 0 - m_Name: LSecondaryButton - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5264040794177459897 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8400574501283423006} - 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: 2803143897982347169} - - {fileID: 4071469278344855793} - m_Father: {fileID: 537185462701595200} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 153, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &2598416923957872529 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8400574501283423006} - m_CullTransparentMesh: 1 ---- !u!114 &2886981596322034576 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8400574501283423006} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &8452848709503764917 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6829759728903216125} - - component: {fileID: 3435135273090065397} - - component: {fileID: 3807629265801284464} - m_Layer: 5 - m_Name: RExpression3Bind - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6829759728903216125 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8452848709503764917} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 7767859450673573951} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 41.895996, y: 0.000030517578} - m_SizeDelta: {x: 221.224, y: 67.552} - m_Pivot: {x: 0, y: 0.5} ---- !u!222 &3435135273090065397 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8452848709503764917} - m_CullTransparentMesh: 0 ---- !u!114 &3807629265801284464 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8452848709503764917} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 45 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 58 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: K ---- !u!1 &8514291712527569200 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5613823859235805758} - - component: {fileID: 3566028923534395623} - - component: {fileID: 78520623898054945} - m_Layer: 5 - m_Name: LExpression3Bind - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5613823859235805758 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8514291712527569200} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 6580222380407670581} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 97.201996, y: 0} - m_SizeDelta: {x: 221.224, y: 67.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &3566028923534395623 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8514291712527569200} - m_CullTransparentMesh: 0 ---- !u!114 &78520623898054945 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8514291712527569200} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 45 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 58 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: K ---- !u!1 &8528840613284061475 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7436509360777108265} - - component: {fileID: 1371541803007781115} - m_Layer: 5 - m_Name: MoveValues - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7436509360777108265 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8528840613284061475} - 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: 6564093916900289784} - - {fileID: 7097933087774045473} - m_Father: {fileID: 5067531158375095824} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.39900002, y: 0} - m_AnchorMax: {x: 0.6, y: 1} - m_AnchoredPosition: {x: 170.04999, y: 0.000049591064} - m_SizeDelta: {x: 140.09998, y: -7.9637} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1371541803007781115 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8528840613284061475} - m_CullTransparentMesh: 0 ---- !u!1 &8572838788510228545 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8920373798682849898} - - component: {fileID: 2216417143807485335} - - component: {fileID: 1518431423543185343} - m_Layer: 5 - m_Name: LExpression4Name - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &8920373798682849898 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8572838788510228545} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 5040200856308678447} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 65, y: -0.000030517578} - m_SizeDelta: {x: 187, y: 67.552} - m_Pivot: {x: 0, y: 0.5} ---- !u!222 &2216417143807485335 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8572838788510228545} - m_CullTransparentMesh: 0 ---- !u!114 &1518431423543185343 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8572838788510228545} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 42 - m_FontStyle: 0 - m_BestFit: 1 - m_MinSize: 0 - m_MaxSize: 45 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: Name ---- !u!1 &8582047947946883663 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6688826027410024821} - m_Layer: 0 - m_Name: LeftHand - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6688826027410024821 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8582047947946883663} - 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: 6462993320847643308} - - {fileID: 7362995812378593056} - - {fileID: 3755905775850264140} - m_Father: {fileID: 2813366516863096307} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0.5, y: 1} - m_AnchoredPosition: {x: 1, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &8590783831777773392 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4427714418502242799} - - component: {fileID: 5403164138019395872} - - component: {fileID: 3111093833865433912} - m_Layer: 5 - m_Name: Bg - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4427714418502242799 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8590783831777773392} - 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: 8751572082322455077} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &5403164138019395872 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8590783831777773392} - m_CullTransparentMesh: 1 ---- !u!114 &3111093833865433912 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8590783831777773392} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 89cb99e3e22696848a1cbce7b320f520, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2.1 ---- !u!1 &8663577039240804130 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7100264250456930914} - - component: {fileID: 3049532958794791134} - - component: {fileID: 632910349765199629} - m_Layer: 5 - m_Name: LPrimaryText - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7100264250456930914 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8663577039240804130} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 6624498863070468513} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 97.201996, y: 0} - m_SizeDelta: {x: 221.224, y: 67.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &3049532958794791134 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8663577039240804130} - m_CullTransparentMesh: 0 ---- !u!114 &632910349765199629 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8663577039240804130} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 45 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 58 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: Primary ---- !u!1 &8663589218743243089 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3662364895757944182} - - component: {fileID: 6564509416621511267} - - component: {fileID: 1602736334885445488} - m_Layer: 0 - m_Name: RExpression2Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &3662364895757944182 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8663589218743243089} - 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: 5513303074855352272} - - {fileID: 3369260571146887227} - - {fileID: 6349083132728924276} - m_Father: {fileID: 4545038286919774978} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6564509416621511267 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8663589218743243089} - m_CullTransparentMesh: 1 ---- !u!114 &1602736334885445488 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8663589218743243089} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &8719476922031455850 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1212292503507699025} - - component: {fileID: 1473845179151601515} - - component: {fileID: 3637028803279225342} - m_Layer: 0 - m_Name: LExpression1Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1212292503507699025 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8719476922031455850} - 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: 4592134785764335929} - - {fileID: 5509658837851308562} - - {fileID: 4724759744330099547} - m_Father: {fileID: 6462993320847643308} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1473845179151601515 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8719476922031455850} - m_CullTransparentMesh: 1 ---- !u!114 &3637028803279225342 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8719476922031455850} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &8742697322414871957 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7362995812378593056} - - component: {fileID: 7812512080827965181} - m_Layer: 0 - m_Name: LHand - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7362995812378593056 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8742697322414871957} - 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: 6834570650340802011} - m_Father: {fileID: 6688826027410024821} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.75, y: 0.5} - m_AnchorMax: {x: 0.75, y: 0.5} - m_AnchoredPosition: {x: 10, y: 10} - m_SizeDelta: {x: 135, y: 225} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &7812512080827965181 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8742697322414871957} - m_CullTransparentMesh: 1 ---- !u!1 &8829560717555869435 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1525949943038772175} - m_Layer: 0 - m_Name: CursorLockRow - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1525949943038772175 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8829560717555869435} - 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: 7838612929920592448} - - {fileID: 2406183980836748438} - m_Father: {fileID: 4406604062793069055} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 604, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &8888177193266023945 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 628890490560670852} - - component: {fileID: 479270234177559206} - - component: {fileID: 4707963144005244523} - m_Layer: 0 - m_Name: RExpression1Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &628890490560670852 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8888177193266023945} - 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: 6133188520101204400} - - {fileID: 2654451137050611357} - - {fileID: 305517817363592027} - m_Father: {fileID: 4545038286919774978} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &479270234177559206 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8888177193266023945} - m_CullTransparentMesh: 1 ---- !u!114 &4707963144005244523 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8888177193266023945} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &8931366782254180343 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6462993320847643308} - - component: {fileID: 4464046371539187347} - m_Layer: 0 - m_Name: ButtonsList - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6462993320847643308 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8931366782254180343} - 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: 7868162925709135601} - - {fileID: 1212292503507699025} - - {fileID: 7210374592701731116} - - {fileID: 6580222380407670581} - - {fileID: 5040200856308678447} - - {fileID: 6234028023674512109} - m_Father: {fileID: 6688826027410024821} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -66.5, y: 22.5} - m_SizeDelta: {x: -135, y: -45} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &4464046371539187347 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8931366782254180343} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 0 - m_Right: 4 - m_Top: 1 - m_Bottom: 1 - m_ChildAlignment: 3 - m_Spacing: 4 - m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 0 - m_ChildControlWidth: 1 - m_ChildControlHeight: 0 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!1 &9084230541643546179 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5666643825144031299} - - component: {fileID: 6476294253658181334} - - component: {fileID: 4897019901353677162} - m_Layer: 5 - m_Name: LTriggerText - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5666643825144031299 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9084230541643546179} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 6390267479988922023} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 97.201996, y: 0} - m_SizeDelta: {x: 221.224, y: 67.552} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6476294253658181334 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9084230541643546179} - m_CullTransparentMesh: 0 ---- !u!114 &4897019901353677162 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9084230541643546179} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.76862746, g: 0.76862746, b: 0.76862746, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 45 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 58 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: L Mouse ---- !u!1 &9218018789328391832 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5152145393546829585} - - component: {fileID: 3831204960950209518} - - component: {fileID: 4658433279421441520} - m_Layer: 5 - m_Name: Bg - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5152145393546829585 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9218018789328391832} - 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: 8962740172795211005} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &3831204960950209518 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9218018789328391832} - m_CullTransparentMesh: 1 ---- !u!114 &4658433279421441520 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9218018789328391832} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 89cb99e3e22696848a1cbce7b320f520, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2.1 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Unity.XR.Interaction.Toolkit.Samples.DeviceSimulator.asmdef b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Unity.XR.Interaction.Toolkit.Samples.DeviceSimulator.asmdef deleted file mode 100644 index ba301bf6..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Unity.XR.Interaction.Toolkit.Samples.DeviceSimulator.asmdef +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "Unity.XR.Interaction.Toolkit.Samples.DeviceSimulator", - "rootNamespace": "", - "references": [ - "GUID:75469ad4d38634e559750d17036d5f7c", - "GUID:dc960734dc080426fa6612f1c5fe95f3", - "GUID:fe685ec1767f73d42b749ea8045bfe43", - "GUID:ce522b6ed64c8be4c989a1d26d0e3275" - ], - "includePlatforms": [], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [], - "versionDefines": [ - { - "name": "com.unity.xr.hands", - "expression": "1.1.0", - "define": "XR_HANDS_1_1_OR_NEWER" - } - ], - "noEngineReferences": false -} \ No newline at end of file diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/XR Device Controller Controls.inputactions b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/XR Device Controller Controls.inputactions deleted file mode 100644 index 0c093dec..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/XR Device Controller Controls.inputactions +++ /dev/null @@ -1,417 +0,0 @@ -{ - "name": "XR Device Controller Controls", - "maps": [ - { - "name": "Controller", - "id": "11c7c072-283e-4c4f-969d-bea4cb0809cf", - "actions": [ - { - "name": "Axis 2D", - "type": "Value", - "id": "76f4cfaf-5aeb-4f66-87d2-a63aa567764a", - "expectedControlType": "Vector2", - "processors": "", - "interactions": "", - "initialStateCheck": true - }, - { - "name": "Resting Hand Axis 2D", - "type": "Value", - "id": "42778bc8-d1b8-438d-9618-e41a28b3dc56", - "expectedControlType": "Vector2", - "processors": "", - "interactions": "", - "initialStateCheck": true - }, - { - "name": "Grip", - "type": "Button", - "id": "c7937c78-cea4-4888-8feb-8d9da13005f2", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "Trigger", - "type": "Button", - "id": "3808b2c1-2f77-4a89-bc2a-34c0e0ef0ad3", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "Primary Button", - "type": "Button", - "id": "54068f2e-4569-46ab-9864-63b23fb9c26a", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "Secondary Button", - "type": "Button", - "id": "970b4191-957d-4a7f-ba64-e0e701950d99", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "Menu", - "type": "Button", - "id": "ccb35b49-777b-460f-bca8-3168c41cc779", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "Primary 2D Axis Click", - "type": "Button", - "id": "22416e35-4897-43a8-b712-74381678af80", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "Secondary 2D Axis Click", - "type": "Button", - "id": "b3a541b3-564a-4213-8a9a-a4417b3de5cf", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "Primary 2D Axis Touch", - "type": "Button", - "id": "9b069098-df41-435e-9a59-ce43682df020", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "Secondary 2D Axis Touch", - "type": "Button", - "id": "cf4b67af-47c4-43d7-b748-b69c7709d64b", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "Primary Touch", - "type": "Button", - "id": "04a0ca31-1719-49b1-9e4c-bc95a9905486", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "Secondary Touch", - "type": "Button", - "id": "613de0bf-5bc1-4b53-a4b8-0ae20fb87272", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - } - ], - "bindings": [ - { - "name": "2D Vector", - "id": "094bdcd9-42d3-4b66-8bf7-69d931e4af25", - "path": "2DVector", - "interactions": "", - "processors": "", - "groups": "", - "action": "Axis 2D", - "isComposite": true, - "isPartOfComposite": false - }, - { - "name": "up", - "id": "1b2e98a9-b6d7-45bf-b4cc-d679acb0502a", - "path": "/w", - "interactions": "", - "processors": "", - "groups": "", - "action": "Axis 2D", - "isComposite": false, - "isPartOfComposite": true - }, - { - "name": "down", - "id": "597b5587-05e8-4ffc-a928-539ab9f8d947", - "path": "/s", - "interactions": "", - "processors": "", - "groups": "", - "action": "Axis 2D", - "isComposite": false, - "isPartOfComposite": true - }, - { - "name": "left", - "id": "87590669-a188-4b8b-ba41-f5f8a58cede9", - "path": "/a", - "interactions": "", - "processors": "", - "groups": "", - "action": "Axis 2D", - "isComposite": false, - "isPartOfComposite": true - }, - { - "name": "right", - "id": "6e1f0a95-84c0-4e06-98b8-18728329aa43", - "path": "/d", - "interactions": "", - "processors": "", - "groups": "", - "action": "Axis 2D", - "isComposite": false, - "isPartOfComposite": true - }, - { - "name": "2D Vector", - "id": "df76e063-0f58-453c-9bdb-a000e261868d", - "path": "2DVector", - "interactions": "", - "processors": "", - "groups": "", - "action": "Resting Hand Axis 2D", - "isComposite": true, - "isPartOfComposite": false - }, - { - "name": "up", - "id": "6be1edad-fb89-4f8b-8041-8a539b9aa22e", - "path": "/i", - "interactions": "", - "processors": "", - "groups": "", - "action": "Resting Hand Axis 2D", - "isComposite": false, - "isPartOfComposite": true - }, - { - "name": "down", - "id": "387c7efc-30f2-423a-a537-9a8b6e7d7860", - "path": "/k", - "interactions": "", - "processors": "", - "groups": "", - "action": "Resting Hand Axis 2D", - "isComposite": false, - "isPartOfComposite": true - }, - { - "name": "left", - "id": "e1b7cebf-9197-42dd-91a0-6ec9bfa15f9f", - "path": "/j", - "interactions": "", - "processors": "", - "groups": "", - "action": "Resting Hand Axis 2D", - "isComposite": false, - "isPartOfComposite": true - }, - { - "name": "right", - "id": "3c625ee8-b7f9-4125-917a-f05eab326a3e", - "path": "/l", - "interactions": "", - "processors": "", - "groups": "", - "action": "Resting Hand Axis 2D", - "isComposite": false, - "isPartOfComposite": true - }, - { - "name": "2D Vector", - "id": "4f579817-5f31-4ac7-899b-04fec58abb48", - "path": "2DVector", - "interactions": "", - "processors": "", - "groups": "", - "action": "Resting Hand Axis 2D", - "isComposite": true, - "isPartOfComposite": false - }, - { - "name": "up", - "id": "20ac1683-e9a0-4cea-ac68-6689033459df", - "path": "/forwardButton", - "interactions": "", - "processors": "", - "groups": "", - "action": "Resting Hand Axis 2D", - "isComposite": false, - "isPartOfComposite": true - }, - { - "name": "down", - "id": "60663e10-c213-4c1a-9177-68680f497799", - "path": "/backButton", - "interactions": "", - "processors": "", - "groups": "", - "action": "Resting Hand Axis 2D", - "isComposite": false, - "isPartOfComposite": true - }, - { - "name": "left", - "id": "cca7347a-79f9-4a90-9912-627c7aeb7509", - "path": "/q", - "interactions": "", - "processors": "", - "groups": "", - "action": "Resting Hand Axis 2D", - "isComposite": false, - "isPartOfComposite": true - }, - { - "name": "right", - "id": "7a178081-4cf4-4dc4-ae08-3448a76351e6", - "path": "/e", - "interactions": "", - "processors": "", - "groups": "", - "action": "Resting Hand Axis 2D", - "isComposite": false, - "isPartOfComposite": true - }, - { - "name": "", - "id": "32072c42-6a30-4383-8362-d65ff475c920", - "path": "/g", - "interactions": "", - "processors": "", - "groups": "", - "action": "Grip", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "4f6dfc4a-38d9-455d-9364-3a188b0e9326", - "path": "/leftButton", - "interactions": "", - "processors": "", - "groups": "", - "action": "Trigger", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "c17eb846-7a66-4006-9d57-6b91831868d0", - "path": "/b", - "interactions": "", - "processors": "", - "groups": "", - "action": "Primary Button", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "69ce3e33-7d81-423f-b162-7232a5791c2f", - "path": "/n", - "interactions": "", - "processors": "", - "groups": "", - "action": "Secondary Button", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "45511393-aa9b-4031-8e31-4eec53ab2d3f", - "path": "/m", - "interactions": "", - "processors": "", - "groups": "", - "action": "Menu", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "8e2bc8db-cb64-45ae-967f-55e716a538ba", - "path": "/4", - "interactions": "", - "processors": "", - "groups": "", - "action": "Primary 2D Axis Click", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "37235877-ac7c-41c4-bc1b-b03be3563189", - "path": "/5", - "interactions": "", - "processors": "", - "groups": "", - "action": "Secondary 2D Axis Click", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "ff1581e6-f183-439b-8980-ad03b5a01e60", - "path": "/6", - "interactions": "", - "processors": "", - "groups": "", - "action": "Primary 2D Axis Touch", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "325ec093-e834-4551-9b8f-4a3311ed737e", - "path": "/7", - "interactions": "", - "processors": "", - "groups": "", - "action": "Secondary 2D Axis Touch", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "d5f47d18-df5a-4dcd-a20a-c1130b0d4541", - "path": "/8", - "interactions": "", - "processors": "", - "groups": "", - "action": "Primary Touch", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "ab5101fb-5323-4b55-9fe7-e6c377cf7d82", - "path": "/9", - "interactions": "", - "processors": "", - "groups": "", - "action": "Secondary Touch", - "isComposite": false, - "isPartOfComposite": false - } - ] - } - ], - "controlSchemes": [] -} \ No newline at end of file diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/XR Device Controller Controls.inputactions.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/XR Device Controller Controls.inputactions.meta deleted file mode 100644 index 6c2eac71..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/XR Device Controller Controls.inputactions.meta +++ /dev/null @@ -1,14 +0,0 @@ -fileFormatVersion: 2 -guid: 0be0028c24f2a4c14a96b6aa39055933 -ScriptedImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 2 - userData: - assetBundleName: - assetBundleVariant: - script: {fileID: 11500000, guid: 8404be70184654265930450def6a9037, type: 3} - generateWrapperCode: 0 - wrapperCodePath: - wrapperClassName: - wrapperCodeNamespace: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/XR Device Hand Controls.inputactions b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/XR Device Hand Controls.inputactions deleted file mode 100644 index f27a76cb..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/XR Device Hand Controls.inputactions +++ /dev/null @@ -1,134 +0,0 @@ -{ - "name": "XR Device Hand Controls", - "maps": [ - { - "name": "Hands", - "id": "820deea6-fad9-4f2d-9e5e-e403c9ab0ddc", - "actions": [ - { - "name": "Poke", - "type": "Button", - "id": "40eda730-1343-4304-a541-d7c035370ce5", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "Pinch", - "type": "Button", - "id": "34056e04-d03d-4802-982b-a9972fd692ff", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "Grab", - "type": "Button", - "id": "07d064b1-f208-4c9f-bd5a-2620a10e7bab", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "Thumb", - "type": "Button", - "id": "cc02894b-62a0-483f-8d1b-87b399099928", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "Open", - "type": "Button", - "id": "0221ceea-2049-4516-a5e4-23aab7d2185e", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "Fist", - "type": "Button", - "id": "5f81ec5a-1bc2-4ce7-852c-d84a8000be9b", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - } - ], - "bindings": [ - { - "name": "", - "id": "7c5ef312-b032-4eaa-9355-b7007e83617c", - "path": "/k", - "interactions": "", - "processors": "", - "groups": "", - "action": "Grab", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "f78285cd-b2ef-40bf-9d24-127a0109f36d", - "path": "/n", - "interactions": "", - "processors": "", - "groups": "", - "action": "Poke", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "3f69143f-8648-4219-94f6-4e9827ad00de", - "path": "/m", - "interactions": "", - "processors": "", - "groups": "", - "action": "Pinch", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "b132c4e0-c5db-4c99-ab71-5939b616cf07", - "path": "/l", - "interactions": "", - "processors": "", - "groups": "", - "action": "Thumb", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "aaffc690-326b-4676-96df-8e41b88bb7e8", - "path": "/p", - "interactions": "", - "processors": "", - "groups": "", - "action": "Fist", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "ebffb4d0-8629-4206-9457-5cccde9d7c65", - "path": "/o", - "interactions": "", - "processors": "", - "groups": "", - "action": "Open", - "isComposite": false, - "isPartOfComposite": false - } - ] - } - ], - "controlSchemes": [] -} \ No newline at end of file diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/XR Device Hand Controls.inputactions.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/XR Device Hand Controls.inputactions.meta deleted file mode 100644 index dd698dca..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/XR Device Hand Controls.inputactions.meta +++ /dev/null @@ -1,14 +0,0 @@ -fileFormatVersion: 2 -guid: b72ab2a46d9094be38774d023beb4d34 -ScriptedImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 2 - userData: - assetBundleName: - assetBundleVariant: - script: {fileID: 11500000, guid: 8404be70184654265930450def6a9037, type: 3} - generateWrapperCode: 0 - wrapperCodePath: - wrapperClassName: - wrapperCodeNamespace: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/XR Device Simulator Controls.inputactions b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/XR Device Simulator Controls.inputactions deleted file mode 100644 index ed5752b1..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/XR Device Simulator Controls.inputactions +++ /dev/null @@ -1,580 +0,0 @@ -{ - "name": "XR Device Simulator Controls", - "maps": [ - { - "name": "Main", - "id": "c96c4ddb-3eb8-4074-bbd9-a8ae6f1f6475", - "actions": [ - { - "name": "Keyboard X Translate", - "type": "Value", - "id": "d4eb7006-5077-4816-9d5c-f570b6d586f3", - "expectedControlType": "Axis", - "processors": "", - "interactions": "", - "initialStateCheck": true - }, - { - "name": "Keyboard Z Translate", - "type": "Value", - "id": "3ea275ac-e111-4610-891f-105676c72cd5", - "expectedControlType": "Axis", - "processors": "", - "interactions": "", - "initialStateCheck": true - }, - { - "name": "Keyboard Y Translate", - "type": "Value", - "id": "5cc58f95-e9dc-4675-a42e-dd66874c3ba3", - "expectedControlType": "Axis", - "processors": "", - "interactions": "", - "initialStateCheck": true - }, - { - "name": "Toggle Manipulate Left", - "type": "Button", - "id": "847b79d9-a69b-4484-8688-a4bf40e58163", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "Toggle Manipulate Right", - "type": "Button", - "id": "241f6068-ebc8-4c6d-b747-8bc2c1f74f87", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "Toggle Manipulate Body", - "type": "Button", - "id": "c81093ea-c17e-4430-a3df-bccabef74af4", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "Manipulate Left", - "type": "Button", - "id": "07c46cc4-c35d-4364-a878-68fad8ab8c64", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "Manipulate Right", - "type": "Button", - "id": "307cb608-f32e-48a3-8ce6-d1cd83a5fb90", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "Manipulate Head", - "type": "Button", - "id": "f5febf74-651b-4f73-8d0a-08b0acdabc4d", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "Hand-Controller Mode", - "type": "Button", - "id": "31a82fde-55bc-4b18-b15a-8adc7e75658e", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "Cycle Devices", - "type": "Button", - "id": "d728c6fb-4deb-4268-9110-d64c7861cd17", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "Stop Manipulation", - "type": "Button", - "id": "974ae49e-da4e-4dc8-a6be-cb63986d8f8e", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "Mouse Delta", - "type": "Value", - "id": "0b945dbf-d750-40cb-97c6-593686fcf012", - "expectedControlType": "Vector2", - "processors": "", - "interactions": "", - "initialStateCheck": true - }, - { - "name": "Mouse Scroll", - "type": "Value", - "id": "b2a408da-a9fd-4638-9af3-17fb9bc2811d", - "expectedControlType": "Vector2", - "processors": "", - "interactions": "", - "initialStateCheck": true - }, - { - "name": "Rotate Mode Override", - "type": "Button", - "id": "2e390909-c0f6-4ca5-b8bc-4c54090f96d9", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "Toggle Mouse Transformation Mode", - "type": "Button", - "id": "ae2b5c7f-b5e0-4b93-b674-172de9f68380", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "Negate Mode", - "type": "Button", - "id": "8c837143-e018-41f0-9e0e-907acb9d7360", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "Z Constraint", - "type": "Button", - "id": "d3e9308c-6f8c-46f7-bb6f-14422c345983", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "X Constraint", - "type": "Button", - "id": "11dc7a94-7230-49ff-b56d-06e6473e9951", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "Y Constraint", - "type": "Button", - "id": "11ab79c6-b9c6-4301-8086-3e9c6904ef14", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "Reset", - "type": "Button", - "id": "339ccb79-aee9-4ba4-8864-3b6c81c199db", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "Toggle Cursor Lock", - "type": "Button", - "id": "9bd36ab1-f676-4ff4-8a4d-ba0c6fb36268", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "Toggle Primary 2D Axis Target", - "type": "Button", - "id": "e0fdec2d-309b-4313-aad7-9dcc71f1394d", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "Toggle Secondary 2D Axis Target", - "type": "Button", - "id": "b3b49ea5-f80f-4d24-a782-d61a13a004b3", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "Toggle Device Position Target", - "type": "Button", - "id": "15cd3c4a-56b1-4a43-a924-a2118e2adaf4", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - } - ], - "bindings": [ - { - "name": "1D Axis", - "id": "db741065-2a46-439d-9e13-11960dc3355a", - "path": "1DAxis", - "interactions": "", - "processors": "", - "groups": "", - "action": "Keyboard X Translate", - "isComposite": true, - "isPartOfComposite": false - }, - { - "name": "negative", - "id": "3d2e07de-025e-4c2e-98df-250511a8ff6d", - "path": "/a", - "interactions": "", - "processors": "", - "groups": "", - "action": "Keyboard X Translate", - "isComposite": false, - "isPartOfComposite": true - }, - { - "name": "positive", - "id": "04e1437d-c862-4a04-8f8e-40e9f52c4f5e", - "path": "/d", - "interactions": "", - "processors": "", - "groups": "", - "action": "Keyboard X Translate", - "isComposite": false, - "isPartOfComposite": true - }, - { - "name": "1D Axis", - "id": "cb7c4679-31f4-4170-885a-e7d78c049443", - "path": "1DAxis", - "interactions": "", - "processors": "", - "groups": "", - "action": "Keyboard Z Translate", - "isComposite": true, - "isPartOfComposite": false - }, - { - "name": "negative", - "id": "732e790c-f2a2-4f90-b525-53139a358de7", - "path": "/s", - "interactions": "", - "processors": "", - "groups": "", - "action": "Keyboard Z Translate", - "isComposite": false, - "isPartOfComposite": true - }, - { - "name": "positive", - "id": "d5a98916-ade7-419d-a138-86bcdf05670f", - "path": "/w", - "interactions": "", - "processors": "", - "groups": "", - "action": "Keyboard Z Translate", - "isComposite": false, - "isPartOfComposite": true - }, - { - "name": "1D Axis", - "id": "fca20498-bf6f-4824-ba15-6dc2d191eb2f", - "path": "1DAxis", - "interactions": "", - "processors": "", - "groups": "", - "action": "Keyboard Y Translate", - "isComposite": true, - "isPartOfComposite": false - }, - { - "name": "negative", - "id": "2c01790c-a24a-4266-a2e9-74e2a1ca3fa7", - "path": "/q", - "interactions": "", - "processors": "", - "groups": "", - "action": "Keyboard Y Translate", - "isComposite": false, - "isPartOfComposite": true - }, - { - "name": "positive", - "id": "f5223aed-93c0-4633-8aa3-c393ce890872", - "path": "/e", - "interactions": "", - "processors": "", - "groups": "", - "action": "Keyboard Y Translate", - "isComposite": false, - "isPartOfComposite": true - }, - { - "name": "", - "id": "fcfb16fb-edee-474c-b1f2-f10b2a0a3569", - "path": "/leftShift", - "interactions": "", - "processors": "", - "groups": "", - "action": "Manipulate Left", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "e791caef-78d3-4f68-9104-212f73ac0642", - "path": "/space", - "interactions": "", - "processors": "", - "groups": "", - "action": "Manipulate Right", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "b2c1b1cd-6ea7-45b6-b68f-17b3662b4d3a", - "path": "/delta", - "interactions": "", - "processors": "", - "groups": "", - "action": "Mouse Delta", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "66e536bc-b5b6-4c7b-903a-fbcc05fc854e", - "path": "/scroll", - "interactions": "", - "processors": "", - "groups": "", - "action": "Mouse Scroll", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "2b070a4a-e044-4cbd-a8e2-6b362785bf21", - "path": "/leftCtrl", - "interactions": "", - "processors": "", - "groups": "", - "action": "Rotate Mode Override", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "0fa0d566-1e07-4e17-9b14-3e8fce69ec26", - "path": "/x", - "interactions": "", - "processors": "", - "groups": "", - "action": "X Constraint", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "71c185e1-73fb-4691-b910-70610f397b42", - "path": "/c", - "interactions": "", - "processors": "", - "groups": "", - "action": "Y Constraint", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "09809c10-d09e-4c49-b58f-1995e50cf685", - "path": "/z", - "interactions": "", - "processors": "", - "groups": "", - "action": "Z Constraint", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "7611d6eb-0ff4-431f-998d-6fa429e0e1e1", - "path": "/r", - "interactions": "", - "processors": "", - "groups": "", - "action": "Toggle Mouse Transformation Mode", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "5c889b78-f9fd-4cd7-96dd-5399428f6992", - "path": "/middleButton", - "interactions": "", - "processors": "", - "groups": "", - "action": "Negate Mode", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "85f27bdb-dfe8-48d3-8512-205b3ad6306a", - "path": "/backslash", - "interactions": "", - "processors": "", - "groups": "", - "action": "Toggle Cursor Lock", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "3542472e-e883-407a-b967-5b879b2d7dc4", - "path": "/rightButton", - "interactions": "", - "processors": "", - "groups": "", - "action": "Manipulate Head", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "cd7dcdd6-b569-4c25-87ea-c62a0fb1cf89", - "path": "/v", - "interactions": "", - "processors": "", - "groups": "", - "action": "Reset", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "4bfdd0e6-1936-4f44-8e97-20e16dbc879f", - "path": "/1", - "interactions": "", - "processors": "", - "groups": "", - "action": "Toggle Primary 2D Axis Target", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "81d47d9e-4920-4098-94d8-bac2888d6433", - "path": "/2", - "interactions": "", - "processors": "", - "groups": "", - "action": "Toggle Secondary 2D Axis Target", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "9404bec7-672a-4fb1-adb3-e2dc4e32801b", - "path": "/3", - "interactions": "", - "processors": "", - "groups": "", - "action": "Toggle Device Position Target", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "5dacc4c7-2e70-4500-8c72-99595c72b49e", - "path": "/tab", - "interactions": "", - "processors": "", - "groups": "", - "action": "Cycle Devices", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "84760c74-7de6-46dd-a097-3bc198cf63cd", - "path": "/escape", - "interactions": "", - "processors": "", - "groups": "", - "action": "Stop Manipulation", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "e8a0a3b9-06cf-40a8-86d8-1d8f1d704451", - "path": "/y", - "interactions": "", - "processors": "", - "groups": "", - "action": "Toggle Manipulate Right", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "b62df009-54c9-4b03-9721-07ca66fe1bdf", - "path": "/t", - "interactions": "", - "processors": "", - "groups": "", - "action": "Toggle Manipulate Left", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "51f71c9d-9024-4bdd-8ea6-19b987e261b1", - "path": "/u", - "interactions": "", - "processors": "", - "groups": "", - "action": "Toggle Manipulate Body", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "d7d20173-13ae-4c9f-b6a9-bf8a89517d6a", - "path": "/h", - "interactions": "", - "processors": "", - "groups": "", - "action": "Hand-Controller Mode", - "isComposite": false, - "isPartOfComposite": false - } - ] - } - ], - "controlSchemes": [] -} \ No newline at end of file diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/XR Device Simulator Controls.inputactions.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/XR Device Simulator Controls.inputactions.meta deleted file mode 100644 index 554f44e6..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/XR Device Simulator Controls.inputactions.meta +++ /dev/null @@ -1,14 +0,0 @@ -fileFormatVersion: 2 -guid: da2b439d1a2de5c46a4f428f8cf4fe19 -ScriptedImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 2 - userData: - assetBundleName: - assetBundleVariant: - script: {fileID: 11500000, guid: 8404be70184654265930450def6a9037, type: 3} - generateWrapperCode: 0 - wrapperCodePath: - wrapperClassName: - wrapperCodeNamespace: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/XR Device Simulator.prefab b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/XR Device Simulator.prefab deleted file mode 100644 index cd68795c..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/XR Device Simulator.prefab +++ /dev/null @@ -1,135 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &6598815579406187037 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6598815579406187027} - - component: {fileID: 6598815579406187026} - m_Layer: 0 - m_Name: XR Device Simulator - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6598815579406187027 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6598815579406187037} - 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: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &6598815579406187026 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6598815579406187037} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5b34befe5d0cbb642bb5d09104a47160, type: 3} - m_Name: - m_EditorClassIdentifier: - m_DeviceSimulatorActionAsset: {fileID: -944628639613478452, guid: da2b439d1a2de5c46a4f428f8cf4fe19, type: 3} - m_ControllerActionAsset: {fileID: -944628639613478452, guid: 0be0028c24f2a4c14a96b6aa39055933, type: 3} - m_KeyboardXTranslateAction: {fileID: -2435995061748527091, guid: da2b439d1a2de5c46a4f428f8cf4fe19, type: 3} - m_KeyboardYTranslateAction: {fileID: 4091624078112751379, guid: da2b439d1a2de5c46a4f428f8cf4fe19, type: 3} - m_KeyboardZTranslateAction: {fileID: 8957443236229058949, guid: da2b439d1a2de5c46a4f428f8cf4fe19, type: 3} - m_ManipulateLeftAction: {fileID: 3215650258570939094, guid: da2b439d1a2de5c46a4f428f8cf4fe19, type: 3} - m_ManipulateRightAction: {fileID: 138396950478516224, guid: da2b439d1a2de5c46a4f428f8cf4fe19, type: 3} - m_ToggleManipulateLeftAction: {fileID: 2547216639932606815, guid: da2b439d1a2de5c46a4f428f8cf4fe19, type: 3} - m_ToggleManipulateRightAction: {fileID: 743384497930276301, guid: da2b439d1a2de5c46a4f428f8cf4fe19, type: 3} - m_ToggleManipulateBodyAction: {fileID: -658012382136555628, guid: da2b439d1a2de5c46a4f428f8cf4fe19, type: 3} - m_ManipulateHeadAction: {fileID: -3619485213038975404, guid: da2b439d1a2de5c46a4f428f8cf4fe19, type: 3} - m_HandControllerModeAction: {fileID: -6730069882215067947, guid: da2b439d1a2de5c46a4f428f8cf4fe19, type: 3} - m_CycleDevicesAction: {fileID: -7837977739890211585, guid: da2b439d1a2de5c46a4f428f8cf4fe19, type: 3} - m_StopManipulationAction: {fileID: 1698315126802870675, guid: da2b439d1a2de5c46a4f428f8cf4fe19, type: 3} - m_MouseDeltaAction: {fileID: -1273072440521047205, guid: da2b439d1a2de5c46a4f428f8cf4fe19, type: 3} - m_MouseScrollAction: {fileID: 4546399164687744209, guid: da2b439d1a2de5c46a4f428f8cf4fe19, type: 3} - m_RotateModeOverrideAction: {fileID: -8754530952185592012, guid: da2b439d1a2de5c46a4f428f8cf4fe19, type: 3} - m_ToggleMouseTransformationModeAction: {fileID: 3100586429251580691, guid: da2b439d1a2de5c46a4f428f8cf4fe19, type: 3} - m_NegateModeAction: {fileID: 1882878426541990298, guid: da2b439d1a2de5c46a4f428f8cf4fe19, type: 3} - m_XConstraintAction: {fileID: -8086843181801629294, guid: da2b439d1a2de5c46a4f428f8cf4fe19, type: 3} - m_YConstraintAction: {fileID: 5691479700773754790, guid: da2b439d1a2de5c46a4f428f8cf4fe19, type: 3} - m_ZConstraintAction: {fileID: 1644704167276153141, guid: da2b439d1a2de5c46a4f428f8cf4fe19, type: 3} - m_ResetAction: {fileID: -2638007419058092452, guid: da2b439d1a2de5c46a4f428f8cf4fe19, type: 3} - m_ToggleCursorLockAction: {fileID: -2382836779261746822, guid: da2b439d1a2de5c46a4f428f8cf4fe19, type: 3} - m_ToggleDevicePositionTargetAction: {fileID: -6716103979869350223, guid: da2b439d1a2de5c46a4f428f8cf4fe19, type: 3} - m_TogglePrimary2DAxisTargetAction: {fileID: -7682297331024740639, guid: da2b439d1a2de5c46a4f428f8cf4fe19, type: 3} - m_ToggleSecondary2DAxisTargetAction: {fileID: 1155009490345466815, guid: da2b439d1a2de5c46a4f428f8cf4fe19, type: 3} - m_Axis2DAction: {fileID: 8275859971367427353, guid: 0be0028c24f2a4c14a96b6aa39055933, type: 3} - m_RestingHandAxis2DAction: {fileID: 6756245720351945193, guid: 0be0028c24f2a4c14a96b6aa39055933, type: 3} - m_GripAction: {fileID: 5667446173830999989, guid: 0be0028c24f2a4c14a96b6aa39055933, type: 3} - m_TriggerAction: {fileID: -2439264783773714294, guid: 0be0028c24f2a4c14a96b6aa39055933, type: 3} - m_PrimaryButtonAction: {fileID: -3599823989380923159, guid: 0be0028c24f2a4c14a96b6aa39055933, type: 3} - m_SecondaryButtonAction: {fileID: -8069514856583376848, guid: 0be0028c24f2a4c14a96b6aa39055933, type: 3} - m_MenuAction: {fileID: 4116954447336496447, guid: 0be0028c24f2a4c14a96b6aa39055933, type: 3} - m_Primary2DAxisClickAction: {fileID: 637922521265743415, guid: 0be0028c24f2a4c14a96b6aa39055933, type: 3} - m_Secondary2DAxisClickAction: {fileID: -8358032100899166728, guid: 0be0028c24f2a4c14a96b6aa39055933, type: 3} - m_Primary2DAxisTouchAction: {fileID: 2883175194488637904, guid: 0be0028c24f2a4c14a96b6aa39055933, type: 3} - m_Secondary2DAxisTouchAction: {fileID: -851591506940895311, guid: 0be0028c24f2a4c14a96b6aa39055933, type: 3} - m_PrimaryTouchAction: {fileID: -4201894270441249665, guid: 0be0028c24f2a4c14a96b6aa39055933, type: 3} - m_SecondaryTouchAction: {fileID: 5188782311186578770, guid: 0be0028c24f2a4c14a96b6aa39055933, type: 3} - m_HandActionAsset: {fileID: -944628639613478452, guid: b72ab2a46d9094be38774d023beb4d34, type: 3} - m_RestingHandExpressionCapture: {fileID: 11400000, guid: 5be099e6e6012c244bb41881b6c0ea07, type: 2} - m_SimulatedHandExpressions: - - m_Name: Poke - m_ToggleAction: {fileID: -5976510165261225158, guid: b72ab2a46d9094be38774d023beb4d34, type: 3} - m_Capture: {fileID: 11400000, guid: 95c319715e9d2644da8ae09af8ccfee6, type: 2} - - m_Name: Pinch - m_ToggleAction: {fileID: -8306000708137014372, guid: b72ab2a46d9094be38774d023beb4d34, type: 3} - m_Capture: {fileID: 11400000, guid: d6e15a52475c2564ca7d2977fdece24a, type: 2} - - m_Name: Grab - m_ToggleAction: {fileID: -4373459253818063952, guid: b72ab2a46d9094be38774d023beb4d34, type: 3} - m_Capture: {fileID: 11400000, guid: 3861c298d39c60c44b16920421444875, type: 2} - - m_Name: Thumb - m_ToggleAction: {fileID: -741559036651486339, guid: b72ab2a46d9094be38774d023beb4d34, type: 3} - m_Capture: {fileID: 11400000, guid: 9d8c9c84da35a7c4c89efd57343c1df8, type: 2} - - m_Name: Open - m_ToggleAction: {fileID: -9192331390769138535, guid: b72ab2a46d9094be38774d023beb4d34, type: 3} - m_Capture: {fileID: 11400000, guid: 05293ab353dc8a747a36ed129311686d, type: 2} - - m_Name: Fist - m_ToggleAction: {fileID: 6469712917552426222, guid: b72ab2a46d9094be38774d023beb4d34, type: 3} - m_Capture: {fileID: 11400000, guid: 2a7c8ca0feac7cc44a5c225164ef311d, type: 2} - m_CameraTransform: {fileID: 0} - m_KeyboardTranslateSpace: 0 - m_MouseTranslateSpace: 2 - m_KeyboardXTranslateSpeed: 0.2 - m_KeyboardYTranslateSpeed: 0.2 - m_KeyboardZTranslateSpeed: 0.2 - m_KeyboardBodyTranslateMultiplier: 5 - m_MouseXTranslateSensitivity: 0.0004 - m_MouseYTranslateSensitivity: 0.0004 - m_MouseScrollTranslateSensitivity: 0.0002 - m_MouseXRotateSensitivity: 0.2 - m_MouseYRotateSensitivity: 0.2 - m_MouseScrollRotateSensitivity: 0.05 - m_MouseYRotateInvert: 0 - m_DesiredCursorLockMode: 1 - m_RemoveOtherHMDDevices: 1 - m_HandTrackingCapability: 1 - m_DeviceSimulatorUI: {fileID: 7662076761675301960, guid: ead42e0472b7547fbba6c229aeaf37d3, type: 3} - m_GripAmount: 1 - m_TriggerAmount: 1 - m_HMDIsTracked: 1 - m_HMDTrackingState: 3 - m_LeftControllerIsTracked: 1 - m_LeftControllerTrackingState: 3 - m_RightControllerIsTracked: 1 - m_RightControllerTrackingState: 3 - m_LeftHandIsTracked: 1 - m_RightHandIsTracked: 1 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/XR Device Simulator.prefab.meta b/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/XR Device Simulator.prefab.meta deleted file mode 100644 index 547b6db2..00000000 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/XR Device Simulator.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 18ddb545287c546e19cc77dc9fbb2189 -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7.meta similarity index 77% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7.meta index f7e2034d..7948c35b 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint.meta +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 34e352a1666bde6488650a627865ac8b +guid: 933db1c1a66293846853af2f44218b1a folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo.meta similarity index 77% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo.meta index 30a69ce7..74ed3c5a 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo.meta +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: b7dc5072b751bf94e8e5c69ca96c2a87 +guid: be9dabad039de1f40953d60702db1f27 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/FingerColor.asset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/FingerColor.asset new file mode 100644 index 00000000..c4c1d996 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/FingerColor.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9621834aa6e391901d8c0f17bc52ff91245ce35d4b3b3db06334d28f678d588e +size 2607 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/FingerColorAffordanceTheme.asset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/FingerColor.asset.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/FingerColorAffordanceTheme.asset.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/FingerColor.asset.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/HandEdgeColor.asset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/HandEdgeColor.asset new file mode 100644 index 00000000..49520cda --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/HandEdgeColor.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc4ac6c0ad1fdc498b43ab27c9d6c840a90b54e37aba52c28a366042228ed398 +size 2494 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/HandEdgeColorAffordanceTheme.asset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/HandEdgeColor.asset.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/HandEdgeColorAffordanceTheme.asset.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/HandEdgeColor.asset.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/InteractionColor.asset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/InteractionColor.asset new file mode 100644 index 00000000..1f5eeae1 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/InteractionColor.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0f142420c2c22bfa05659d7c34be43c9fe38574521890cfb98f3d162220bc8f +size 2617 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/InteractionColorAffordanceTheme.asset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/InteractionColor.asset.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/InteractionColorAffordanceTheme.asset.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/InteractionColor.asset.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint/PinchPointBlendShape.asset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/PinchPointBlendShape.asset similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint/PinchPointBlendShape.asset rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/PinchPointBlendShape.asset diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint/PinchPointBlendShape.asset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/PinchPointBlendShape.asset.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint/PinchPointBlendShape.asset.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/PinchPointBlendShape.asset.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint/PinchPointColor.asset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/PinchPointColor.asset similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint/PinchPointColor.asset rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/PinchPointColor.asset diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint/PinchPointColor.asset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/PinchPointColor.asset.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint/PinchPointColor.asset.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/PinchPointColor.asset.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint/PinchPointEdgeStrength.asset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/PinchPointEdgeStrength.asset similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint/PinchPointEdgeStrength.asset rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/PinchPointEdgeStrength.asset diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint/PinchPointEdgeStrength.asset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/PinchPointEdgeStrength.asset.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint/PinchPointEdgeStrength.asset.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/PinchPointEdgeStrength.asset.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint/PinchPointHighlightColor.asset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/PinchPointHighlightColor.asset similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint/PinchPointHighlightColor.asset rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/PinchPointHighlightColor.asset diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint/PinchPointHighlightColor.asset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/PinchPointHighlightColor.asset.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint/PinchPointHighlightColor.asset.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/PinchPointHighlightColor.asset.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint/PinchPointLocalTransformOffset.asset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/PinchPointLocalTransformOffset.asset similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint/PinchPointLocalTransformOffset.asset rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/PinchPointLocalTransformOffset.asset diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint/PinchPointLocalTransformOffset.asset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/PinchPointLocalTransformOffset.asset.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint/PinchPointLocalTransformOffset.asset.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/PinchPointLocalTransformOffset.asset.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint/PinchPointUniformScaleScale.asset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/PinchPointUniformScaleScale.asset similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint/PinchPointUniformScaleScale.asset rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/PinchPointUniformScaleScale.asset diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint/PinchPointUniformScaleScale.asset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/PinchPointUniformScaleScale.asset.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/AffordanceThemes/PinchPoint/PinchPointUniformScaleScale.asset.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/AffordanceThemes/PinchPointUniformScaleScale.asset.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/DatumPresets.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/DatumPresets.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/DatumPresets.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/DatumPresets.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/DatumPresets/Menu Controller Follow Preset.asset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/DatumPresets/Menu Controller Follow Preset.asset similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/DatumPresets/Menu Controller Follow Preset.asset rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/DatumPresets/Menu Controller Follow Preset.asset diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/DatumPresets/Menu Controller Follow Preset.asset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/DatumPresets/Menu Controller Follow Preset.asset.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/DatumPresets/Menu Controller Follow Preset.asset.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/DatumPresets/Menu Controller Follow Preset.asset.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/DatumPresets/Menu Hands Follow Preset.asset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/DatumPresets/Menu Hands Follow Preset.asset similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/DatumPresets/Menu Hands Follow Preset.asset rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/DatumPresets/Menu Hands Follow Preset.asset diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/DatumPresets/Menu Hands Follow Preset.asset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/DatumPresets/Menu Hands Follow Preset.asset.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/DatumPresets/Menu Hands Follow Preset.asset.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/DatumPresets/Menu Hands Follow Preset.asset.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/DatumPresets/Under Watch Controller Follow Preset.asset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/DatumPresets/Under Watch Controller Follow Preset.asset similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/DatumPresets/Under Watch Controller Follow Preset.asset rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/DatumPresets/Under Watch Controller Follow Preset.asset diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/DatumPresets/Under Watch Controller Follow Preset.asset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/DatumPresets/Under Watch Controller Follow Preset.asset.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/DatumPresets/Under Watch Controller Follow Preset.asset.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/DatumPresets/Under Watch Controller Follow Preset.asset.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/DatumPresets/Under Watch Hands Follow Preset.asset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/DatumPresets/Under Watch Hands Follow Preset.asset similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/DatumPresets/Under Watch Hands Follow Preset.asset rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/DatumPresets/Under Watch Hands Follow Preset.asset diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/DatumPresets/Under Watch Hands Follow Preset.asset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/DatumPresets/Under Watch Hands Follow Preset.asset.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/DatumPresets/Under Watch Hands Follow Preset.asset.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/DatumPresets/Under Watch Hands Follow Preset.asset.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Editor.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Editor.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Editor.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Editor.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Editor/Unity.XR.Interaction.Toolkit.Samples.Hands.Editor.asmdef b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Editor/HandsInteractionDemo.Editor.asmdef similarity index 67% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Editor/Unity.XR.Interaction.Toolkit.Samples.Hands.Editor.asmdef rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Editor/HandsInteractionDemo.Editor.asmdef index 3e210060..dc978728 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Editor/Unity.XR.Interaction.Toolkit.Samples.Hands.Editor.asmdef +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Editor/HandsInteractionDemo.Editor.asmdef @@ -1,9 +1,11 @@ { "name": "Unity.XR.Interaction.Toolkit.Samples.Hands.Editor", - "rootNamespace": "", + "rootNamespace": "UnityEditor.XR.Interaction.Toolkit.Samples.Hands.Editor", "references": [ "Unity.XR.CoreUtils", - "Unity.XR.CoreUtils.Editor" + "Unity.XR.CoreUtils.Editor", + "Unity.XR.Interaction.Toolkit", + "Unity.XR.Interaction.Toolkit.Editor" ], "includePlatforms": [ "Editor" diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Editor/Unity.XR.Interaction.Toolkit.Samples.Hands.Editor.asmdef.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Editor/HandsInteractionDemo.Editor.asmdef.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Editor/Unity.XR.Interaction.Toolkit.Samples.Hands.Editor.asmdef.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Editor/HandsInteractionDemo.Editor.asmdef.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Editor/Scripts.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Editor/Scripts.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Editor/Scripts.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Editor/Scripts.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Editor/Scripts/HandsInteractionSampleProjectValidation.cs b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Editor/Scripts/HandsSampleProjectValidation.cs similarity index 83% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Editor/Scripts/HandsInteractionSampleProjectValidation.cs rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Editor/Scripts/HandsSampleProjectValidation.cs index 999f9a89..16134b4f 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Editor/Scripts/HandsInteractionSampleProjectValidation.cs +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Editor/Scripts/HandsSampleProjectValidation.cs @@ -5,21 +5,23 @@ using Unity.XR.CoreUtils.Editor; using UnityEditor.PackageManager; using UnityEditor.PackageManager.Requests; using UnityEditor.PackageManager.UI; +using UnityEditor.XR.Interaction.Toolkit.ProjectValidation; using UnityEngine; -namespace UnityEditor.XR.Interaction.Toolkit.Samples.Hands +namespace UnityEditor.XR.Interaction.Toolkit.Samples.Hands.Editor { /// /// Unity Editor class which registers Project Validation rules for the Hands Interaction Demo sample, /// checking that other required samples and packages are installed. /// - static class HandsInteractionSampleProjectValidation + static class HandsSampleProjectValidation { const string k_SampleDisplayName = "Hands Interaction Demo"; const string k_Category = "XR Interaction Toolkit"; const string k_StarterAssetsSampleName = "Starter Assets"; const string k_HandVisualizerSampleName = "HandVisualizer"; const string k_ProjectValidationSettingsPath = "Project/XR Plug-in Management/Project Validation"; + const string k_HandsPackageDisplayName = "XR Hands"; const string k_HandsPackageName = "com.unity.xr.hands"; const string k_XRIPackageName = "com.unity.xr.interaction.toolkit"; const string k_ShaderGraphPackageName = "com.unity.shadergraph"; @@ -64,7 +66,7 @@ namespace UnityEditor.XR.Interaction.Toolkit.Samples.Hands IsRuleEnabled = () => PackageVersionUtility.GetPackageVersion(k_HandsPackageName) >= s_MinimumPackageVersion, Message = $"[{k_SampleDisplayName}] {k_HandVisualizerSampleName} sample from XR Hands ({k_HandsPackageName}) package must be imported or updated to use this sample.", Category = k_Category, - CheckPredicate = () => TryFindSample(k_HandsPackageName, string.Empty, k_HandVisualizerSampleName, out var sample) && sample.isImported, + CheckPredicate = () => ProjectValidationUtility.SampleImportMeetsMinimumVersion(k_HandsPackageDisplayName, k_HandVisualizerSampleName, PackageVersionUtility.GetPackageVersion(k_HandsPackageName)), FixIt = () => { if (TryFindSample(k_HandsPackageName, string.Empty, k_HandVisualizerSampleName, out var sample)) @@ -73,13 +75,13 @@ namespace UnityEditor.XR.Interaction.Toolkit.Samples.Hands } }, FixItAutomatic = true, - Error = true, + Error = !ProjectValidationUtility.HasSampleImported(k_HandsPackageDisplayName, k_HandVisualizerSampleName), }, new BuildValidationRule { - Message = $"[{k_SampleDisplayName}] {k_StarterAssetsSampleName} sample from XR Interaction Toolkit ({k_XRIPackageName}) package must be imported or updated to use this sample.", + Message = $"[{k_SampleDisplayName}] {k_StarterAssetsSampleName} sample from XR Interaction Toolkit ({k_XRIPackageName}) package must be imported or updated to use this sample. {GetImportSampleVersionMessage(k_Category, k_StarterAssetsSampleName, PackageVersionUtility.GetPackageVersion(k_XRIPackageName))}", Category = k_Category, - CheckPredicate = () => TryFindSample(k_XRIPackageName, string.Empty, k_StarterAssetsSampleName, out var sample) && sample.isImported, + CheckPredicate = () => ProjectValidationUtility.SampleImportMeetsMinimumVersion(k_Category, k_StarterAssetsSampleName, PackageVersionUtility.GetPackageVersion(k_XRIPackageName)), FixIt = () => { if (TryFindSample(k_XRIPackageName, string.Empty, k_StarterAssetsSampleName, out var sample)) @@ -88,7 +90,7 @@ namespace UnityEditor.XR.Interaction.Toolkit.Samples.Hands } }, FixItAutomatic = true, - Error = true, + Error = !ProjectValidationUtility.HasSampleImported(k_Category, k_StarterAssetsSampleName), }, new BuildValidationRule { @@ -206,9 +208,13 @@ namespace UnityEditor.XR.Interaction.Toolkit.Samples.Hands if (request.Status == StatusCode.Success && request.Result.Length > 0) { var versions = request.Result[0].versions; - var verifiedVersion = new PackageVersion(versions.recommended); +#if UNITY_2022_2_OR_NEWER + var recommendedVersion = new PackageVersion(versions.recommended); +#else + var recommendedVersion = new PackageVersion(versions.verified); +#endif var latestCompatible = new PackageVersion(versions.latestCompatible); - if (verifiedVersion < s_RecommendedPackageVersion && s_RecommendedPackageVersion <= latestCompatible) + if (recommendedVersion < s_RecommendedPackageVersion && s_RecommendedPackageVersion <= latestCompatible) addRequest = $"{k_HandsPackageName}@{s_RecommendedPackageVersion}"; } @@ -218,5 +224,13 @@ namespace UnityEditor.XR.Interaction.Toolkit.Samples.Hands Debug.LogError($"Package installation error: {s_HandsPackageAddRequest.Error}: {s_HandsPackageAddRequest.Error.message}"); } } + + static string GetImportSampleVersionMessage(string packageFolderName, string sampleDisplayName, PackageVersion version) + { + if (ProjectValidationUtility.SampleImportMeetsMinimumVersion(packageFolderName, sampleDisplayName, version) || !ProjectValidationUtility.HasSampleImported(packageFolderName, sampleDisplayName)) + return string.Empty; + + return $"An older version of {sampleDisplayName} has been found. This may cause errors."; + } } } diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Editor/Scripts/HandsInteractionSampleProjectValidation.cs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Editor/Scripts/HandsSampleProjectValidation.cs.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Editor/Scripts/HandsInteractionSampleProjectValidation.cs.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Editor/Scripts/HandsSampleProjectValidation.cs.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoScene.unity b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoScene.unity similarity index 86% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoScene.unity rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoScene.unity index 0b151856..562db883 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoScene.unity +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoScene.unity @@ -38,7 +38,7 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.18387039, g: 0.22902612, b: 0.30317035, a: 1} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: @@ -104,7 +104,7 @@ NavMeshSettings: serializedVersion: 2 m_ObjectHideFlags: 0 m_BuildSettings: - serializedVersion: 3 + serializedVersion: 2 agentTypeID: 0 agentRadius: 0.5 agentHeight: 2 @@ -117,7 +117,7 @@ NavMeshSettings: cellSize: 0.16666667 manualTileSize: 0 tileSize: 256 - buildHeightMesh: 0 + accuratePlacement: 0 maxJobWorkers: 0 preserveTilesOutsideBounds: 0 debug: @@ -128,98 +128,61 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - serializedVersion: 3 m_TransformParent: {fileID: 2105799744} m_Modifications: - - target: {fileID: 106093692981118498, guid: aec71f91a8da27d418aa44bd0c543f9b, - type: 3} + - target: {fileID: 106093692981118498, guid: aec71f91a8da27d418aa44bd0c543f9b, type: 3} propertyPath: m_Name value: SimpleSocket objectReference: {fileID: 0} - - target: {fileID: 406981427254625433, guid: aec71f91a8da27d418aa44bd0c543f9b, - type: 3} - propertyPath: m_Materials.Array.data[0] - value: - objectReference: {fileID: 2100000, guid: 57322c1d21440ff4fb14fd9bc771353e, type: 2} - - target: {fileID: 468281548969361700, guid: aec71f91a8da27d418aa44bd0c543f9b, - type: 3} - propertyPath: m_Materials.Array.data[0] - value: - objectReference: {fileID: 2100000, guid: 57322c1d21440ff4fb14fd9bc771353e, type: 2} - - target: {fileID: 734996079564348568, guid: aec71f91a8da27d418aa44bd0c543f9b, - type: 3} + - target: {fileID: 734996079564348568, guid: aec71f91a8da27d418aa44bd0c543f9b, type: 3} propertyPath: m_RootOrder value: 2 objectReference: {fileID: 0} - - target: {fileID: 734996079564348568, guid: aec71f91a8da27d418aa44bd0c543f9b, - type: 3} + - target: {fileID: 734996079564348568, guid: aec71f91a8da27d418aa44bd0c543f9b, type: 3} propertyPath: m_LocalPosition.x value: 2.720022 objectReference: {fileID: 0} - - target: {fileID: 734996079564348568, guid: aec71f91a8da27d418aa44bd0c543f9b, - type: 3} + - target: {fileID: 734996079564348568, guid: aec71f91a8da27d418aa44bd0c543f9b, type: 3} propertyPath: m_LocalPosition.y value: -5.110141 objectReference: {fileID: 0} - - target: {fileID: 734996079564348568, guid: aec71f91a8da27d418aa44bd0c543f9b, - type: 3} + - target: {fileID: 734996079564348568, guid: aec71f91a8da27d418aa44bd0c543f9b, type: 3} propertyPath: m_LocalPosition.z value: -49.98017 objectReference: {fileID: 0} - - target: {fileID: 734996079564348568, guid: aec71f91a8da27d418aa44bd0c543f9b, - type: 3} + - target: {fileID: 734996079564348568, guid: aec71f91a8da27d418aa44bd0c543f9b, type: 3} propertyPath: m_LocalRotation.w value: 0.7010574 objectReference: {fileID: 0} - - target: {fileID: 734996079564348568, guid: aec71f91a8da27d418aa44bd0c543f9b, - type: 3} + - target: {fileID: 734996079564348568, guid: aec71f91a8da27d418aa44bd0c543f9b, type: 3} propertyPath: m_LocalRotation.x value: -0.09229593 objectReference: {fileID: 0} - - target: {fileID: 734996079564348568, guid: aec71f91a8da27d418aa44bd0c543f9b, - type: 3} + - target: {fileID: 734996079564348568, guid: aec71f91a8da27d418aa44bd0c543f9b, type: 3} propertyPath: m_LocalRotation.y value: 0.7010574 objectReference: {fileID: 0} - - target: {fileID: 734996079564348568, guid: aec71f91a8da27d418aa44bd0c543f9b, - type: 3} + - target: {fileID: 734996079564348568, guid: aec71f91a8da27d418aa44bd0c543f9b, type: 3} propertyPath: m_LocalRotation.z value: -0.09229593 objectReference: {fileID: 0} - - target: {fileID: 734996079564348568, guid: aec71f91a8da27d418aa44bd0c543f9b, - type: 3} + - target: {fileID: 734996079564348568, guid: aec71f91a8da27d418aa44bd0c543f9b, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 734996079564348568, guid: aec71f91a8da27d418aa44bd0c543f9b, - type: 3} + - target: {fileID: 734996079564348568, guid: aec71f91a8da27d418aa44bd0c543f9b, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 90 objectReference: {fileID: 0} - - target: {fileID: 734996079564348568, guid: aec71f91a8da27d418aa44bd0c543f9b, - type: 3} + - target: {fileID: 734996079564348568, guid: aec71f91a8da27d418aa44bd0c543f9b, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6317744024979905813, guid: aec71f91a8da27d418aa44bd0c543f9b, - type: 3} - propertyPath: m_Materials.Array.data[0] - value: - objectReference: {fileID: 2100000, guid: 57322c1d21440ff4fb14fd9bc771353e, type: 2} - - target: {fileID: 6390925710335525439, guid: aec71f91a8da27d418aa44bd0c543f9b, - type: 3} - propertyPath: m_Materials.Array.data[0] - value: - objectReference: {fileID: 2100000, guid: 57322c1d21440ff4fb14fd9bc771353e, type: 2} m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: aec71f91a8da27d418aa44bd0c543f9b, type: 3} --- !u!4 &9821839 stripped Transform: - m_CorrespondingSourceObject: {fileID: 734996079564348568, guid: aec71f91a8da27d418aa44bd0c543f9b, - type: 3} + m_CorrespondingSourceObject: {fileID: 734996079564348568, guid: aec71f91a8da27d418aa44bd0c543f9b, type: 3} m_PrefabInstance: {fileID: 9821838} m_PrefabAsset: {fileID: 0} --- !u!1 &42134093 @@ -254,6 +217,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1726903308} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} @@ -309,11 +273,9 @@ SortingGroup: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: -100 - m_SortAtRoot: 0 --- !u!114 &45925792 stripped MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 5664791683828586331, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + m_CorrespondingSourceObject: {fileID: 5664791683828586331, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} m_PrefabInstance: {fileID: 6183026901525796732} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 0} @@ -353,6 +315,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1120256391} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: -15, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} @@ -424,7 +387,6 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 123424312} - serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: -0.25} m_LocalScale: {x: 1, y: 1, z: 1} @@ -433,6 +395,7 @@ Transform: - {fileID: 1120256391} - {fileID: 992345761} m_Father: {fileID: 1434975003} + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &152278406 GameObject: @@ -465,6 +428,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1887197406} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 1, y: 1} @@ -518,179 +482,142 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - serializedVersion: 3 m_TransformParent: {fileID: 1930256998} m_Modifications: - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Pivot.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Pivot.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_RootOrder value: 2 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMax.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMax.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMin.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMin.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_SizeDelta.x value: 60 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_SizeDelta.y value: 60 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.x value: -0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.y value: -0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596673, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596673, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Name value: TouchPad Button 6 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size value: 1 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode value: 6 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target value: objectReference: {fileID: 1633829042} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState value: 2 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName value: set_isOn objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName value: UnityEngine.UI.Toggle, UnityEngine.UI objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_BoolArgument value: 1 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName value: UnityEngine.Object, UnityEngine objectReference: {fileID: 0} - - target: {fileID: 4455438663099779001, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438663099779001, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Text value: 6 objectReference: {fileID: 0} m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: b0c78422845bac948a9080175e57ffff, type: 3} --- !u!224 &170632161 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + m_CorrespondingSourceObject: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} m_PrefabInstance: {fileID: 170632160} m_PrefabAsset: {fileID: 0} --- !u!224 &182067613 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, - type: 3} + m_CorrespondingSourceObject: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, type: 3} m_PrefabInstance: {fileID: 1004097911546261873} m_PrefabAsset: {fileID: 0} --- !u!1 &187460342 @@ -728,6 +655,7 @@ RectTransform: - {fileID: 900557651} - {fileID: 1943824117} m_Father: {fileID: 1576716364} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 15, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -810,9 +738,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 m_AdditionalShaderChannelsFlag: 25 - m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 m_SortingOrder: 1 m_TargetDisplay: 0 @@ -821,173 +747,137 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - serializedVersion: 3 m_TransformParent: {fileID: 1648550613} m_Modifications: - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Pivot.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Pivot.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_RootOrder value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMax.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMax.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMin.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMin.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_SizeDelta.x value: 60 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_SizeDelta.y value: 60 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.x value: -0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.y value: -0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596673, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596673, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Name value: TouchPad Button 1 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size value: 1 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode value: 6 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target value: objectReference: {fileID: 9108665820597706860} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState value: 2 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName value: set_isOn objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName value: UnityEngine.UI.Toggle, UnityEngine.UI objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_BoolArgument value: 1 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName value: UnityEngine.Object, UnityEngine objectReference: {fileID: 0} - - target: {fileID: 4455438663099779001, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438663099779001, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Text value: 1 objectReference: {fileID: 0} m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: b0c78422845bac948a9080175e57ffff, type: 3} --- !u!224 &203859525 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + m_CorrespondingSourceObject: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} m_PrefabInstance: {fileID: 203859524} m_PrefabAsset: {fileID: 0} --- !u!1 &231362122 @@ -1021,6 +911,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 745358749} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -1098,6 +989,7 @@ RectTransform: - {fileID: 883783995} - {fileID: 2050916414} m_Father: {fileID: 2105827454} + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -1114,7 +1006,6 @@ GameObject: m_Component: - component: {fileID: 257810523} - component: {fileID: 257810522} - - component: {fileID: 257810524} m_Layer: 0 m_Name: Directional Light m_TagString: Untagged @@ -1191,41 +1082,17 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 257810521} - serializedVersion: 2 m_LocalRotation: {x: 0.3641889, y: -0.6962201, z: 0.036887143, w: 0.6174815} m_LocalPosition: {x: 0, y: 3, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 30.074001, y: -105.73701, z: -32.233} ---- !u!114 &257810524 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 257810521} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Version: 3 - m_UsePipelineSettings: 1 - m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 - m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 - m_LightCookieSize: {x: 1, y: 1} - m_LightCookieOffset: {x: 0, y: 0} - m_SoftShadowQuality: 0 --- !u!114 &260197484 stripped MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 195190420571543381, guid: 6a448845c7017044e8a9f3d711cfe825, - type: 3} + m_CorrespondingSourceObject: {fileID: 195190420571543381, guid: 6a448845c7017044e8a9f3d711cfe825, type: 3} m_PrefabInstance: {fileID: 195190421004440613} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 0} @@ -1265,6 +1132,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 246682137} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} @@ -1315,8 +1183,7 @@ CanvasRenderer: m_CullTransparentMesh: 1 --- !u!1 &276858880 stripped GameObject: - m_CorrespondingSourceObject: {fileID: 195190420563360911, guid: 6a448845c7017044e8a9f3d711cfe825, - type: 3} + m_CorrespondingSourceObject: {fileID: 195190420563360911, guid: 6a448845c7017044e8a9f3d711cfe825, type: 3} m_PrefabInstance: {fileID: 195190421004440613} m_PrefabAsset: {fileID: 0} --- !u!1 &293575449 @@ -1350,6 +1217,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2011190209} + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -1425,6 +1293,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2105799744} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: -15, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} @@ -1478,184 +1347,146 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - serializedVersion: 3 m_TransformParent: {fileID: 1643716050} m_Modifications: - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Pivot.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Pivot.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_RootOrder value: 2 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMax.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMax.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMin.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMin.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_SizeDelta.x value: 60 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_SizeDelta.y value: 60 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.x value: -0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.y value: -0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596673, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596673, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Name value: TouchPad Button 9 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596673, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596673, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size value: 1 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode value: 6 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target value: objectReference: {fileID: 452173682} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState value: 2 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName value: set_isOn objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName value: UnityEngine.UI.Toggle, UnityEngine.UI objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_BoolArgument value: 1 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName value: UnityEngine.Object, UnityEngine objectReference: {fileID: 0} - - target: {fileID: 4455438663099779001, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438663099779001, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Text value: 9 objectReference: {fileID: 0} m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: b0c78422845bac948a9080175e57ffff, type: 3} --- !u!224 &331857616 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + m_CorrespondingSourceObject: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} m_PrefabInstance: {fileID: 331857615} m_PrefabAsset: {fileID: 0} --- !u!114 &337741472 stripped MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 5715416336153000561, guid: 541ed11e270c6994ca5910042c7e04da, - type: 3} + m_CorrespondingSourceObject: {fileID: 5715416336153000561, guid: 541ed11e270c6994ca5910042c7e04da, type: 3} m_PrefabInstance: {fileID: 5715416335952834191} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 0} @@ -1698,6 +1529,7 @@ RectTransform: - {fileID: 2011190209} - {fileID: 1459892945} m_Father: {fileID: 992345761} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -1746,8 +1578,7 @@ MonoBehaviour: m_ReverseArrangement: 0 --- !u!224 &364340073 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + m_CorrespondingSourceObject: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} m_PrefabInstance: {fileID: 6183026901525796732} m_PrefabAsset: {fileID: 0} --- !u!1 &375196258 @@ -1781,6 +1612,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2011190209} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -1827,8 +1659,7 @@ CanvasRenderer: m_CullTransparentMesh: 1 --- !u!224 &448506027 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, - type: 3} + m_CorrespondingSourceObject: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, type: 3} m_PrefabInstance: {fileID: 195190421004440613} m_PrefabAsset: {fileID: 0} --- !u!114 &448506032 @@ -1847,8 +1678,7 @@ MonoBehaviour: m_ToggleOffGraphic: {fileID: 260197484} --- !u!114 &452173682 stripped MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 2089690465474535966, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + m_CorrespondingSourceObject: {fileID: 2089690465474535966, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} m_PrefabInstance: {fileID: 6183026901525796732} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 0} @@ -1862,87 +1692,65 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - serializedVersion: 3 m_TransformParent: {fileID: 1434975003} m_Modifications: - - target: {fileID: -8679921383154817045, guid: 365907f61b8b39a48aab9aacd4588f45, - type: 3} + - target: {fileID: -8679921383154817045, guid: 365907f61b8b39a48aab9aacd4588f45, type: 3} propertyPath: m_RootOrder value: 0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 365907f61b8b39a48aab9aacd4588f45, - type: 3} + - target: {fileID: -8679921383154817045, guid: 365907f61b8b39a48aab9aacd4588f45, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 365907f61b8b39a48aab9aacd4588f45, - type: 3} + - target: {fileID: -8679921383154817045, guid: 365907f61b8b39a48aab9aacd4588f45, type: 3} propertyPath: m_LocalPosition.y value: 0.73660004 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 365907f61b8b39a48aab9aacd4588f45, - type: 3} + - target: {fileID: -8679921383154817045, guid: 365907f61b8b39a48aab9aacd4588f45, type: 3} propertyPath: m_LocalPosition.z value: -0.25 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 365907f61b8b39a48aab9aacd4588f45, - type: 3} + - target: {fileID: -8679921383154817045, guid: 365907f61b8b39a48aab9aacd4588f45, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 365907f61b8b39a48aab9aacd4588f45, - type: 3} + - target: {fileID: -8679921383154817045, guid: 365907f61b8b39a48aab9aacd4588f45, type: 3} propertyPath: m_LocalRotation.x value: -0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 365907f61b8b39a48aab9aacd4588f45, - type: 3} + - target: {fileID: -8679921383154817045, guid: 365907f61b8b39a48aab9aacd4588f45, type: 3} propertyPath: m_LocalRotation.y value: -0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 365907f61b8b39a48aab9aacd4588f45, - type: 3} + - target: {fileID: -8679921383154817045, guid: 365907f61b8b39a48aab9aacd4588f45, type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 365907f61b8b39a48aab9aacd4588f45, - type: 3} + - target: {fileID: -8679921383154817045, guid: 365907f61b8b39a48aab9aacd4588f45, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 365907f61b8b39a48aab9aacd4588f45, - type: 3} + - target: {fileID: -8679921383154817045, guid: 365907f61b8b39a48aab9aacd4588f45, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 365907f61b8b39a48aab9aacd4588f45, - type: 3} + - target: {fileID: -8679921383154817045, guid: 365907f61b8b39a48aab9aacd4588f45, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: -7511558181221131132, guid: 365907f61b8b39a48aab9aacd4588f45, - type: 3} + - target: {fileID: -7511558181221131132, guid: 365907f61b8b39a48aab9aacd4588f45, type: 3} propertyPath: m_Materials.Array.data[0] value: objectReference: {fileID: 2100000, guid: 6c72d2d2ead00e54db4b71b27ffb03d4, type: 2} - - target: {fileID: 919132149155446097, guid: 365907f61b8b39a48aab9aacd4588f45, - type: 3} + - target: {fileID: 919132149155446097, guid: 365907f61b8b39a48aab9aacd4588f45, type: 3} propertyPath: m_Name value: VirtualTabletop objectReference: {fileID: 0} m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: 365907f61b8b39a48aab9aacd4588f45, - type: 3} - insertIndex: -1 - addedObject: {fileID: 982772613} m_SourcePrefab: {fileID: 100100000, guid: 365907f61b8b39a48aab9aacd4588f45, type: 3} --- !u!114 &501676794 stripped MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 3504782657351738374, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + m_CorrespondingSourceObject: {fileID: 3504782657351738374, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} m_PrefabInstance: {fileID: 6183026901525796732} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 0} @@ -1956,173 +1764,137 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - serializedVersion: 3 m_TransformParent: {fileID: 1643716050} m_Modifications: - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Pivot.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Pivot.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_RootOrder value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMax.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMax.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMin.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMin.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_SizeDelta.x value: 60 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_SizeDelta.y value: 60 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.x value: -0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.y value: -0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596673, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596673, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Name value: TouchPad Button 7 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size value: 1 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode value: 6 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target value: objectReference: {fileID: 45925792} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState value: 2 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName value: set_isOn objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName value: UnityEngine.UI.Toggle, UnityEngine.UI objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_BoolArgument value: 1 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName value: UnityEngine.Object, UnityEngine objectReference: {fileID: 0} - - target: {fileID: 4455438663099779001, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438663099779001, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Text value: 7 objectReference: {fileID: 0} m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: b0c78422845bac948a9080175e57ffff, type: 3} --- !u!224 &518872804 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + m_CorrespondingSourceObject: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} m_PrefabInstance: {fileID: 518872803} m_PrefabAsset: {fileID: 0} --- !u!1 &522548467 @@ -2156,6 +1928,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1459892945} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -2231,6 +2004,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2011190209} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -2280,84 +2054,70 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - serializedVersion: 3 m_TransformParent: {fileID: 1337396801} m_Modifications: - - target: {fileID: 6957000769822834732, guid: d81193b4b57486b46b4762e8b26d2de8, - type: 3} + - target: {fileID: 6957000769822834732, guid: d81193b4b57486b46b4762e8b26d2de8, type: 3} propertyPath: m_RootOrder value: 1 objectReference: {fileID: 0} - - target: {fileID: 6957000769822834732, guid: d81193b4b57486b46b4762e8b26d2de8, - type: 3} + - target: {fileID: 6957000769822834732, guid: d81193b4b57486b46b4762e8b26d2de8, type: 3} propertyPath: m_LocalPosition.x value: 0.05 objectReference: {fileID: 0} - - target: {fileID: 6957000769822834732, guid: d81193b4b57486b46b4762e8b26d2de8, - type: 3} + - target: {fileID: 6957000769822834732, guid: d81193b4b57486b46b4762e8b26d2de8, type: 3} propertyPath: m_LocalPosition.y value: 0.842 objectReference: {fileID: 0} - - target: {fileID: 6957000769822834732, guid: d81193b4b57486b46b4762e8b26d2de8, - type: 3} + - target: {fileID: 6957000769822834732, guid: d81193b4b57486b46b4762e8b26d2de8, type: 3} propertyPath: m_LocalPosition.z value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6957000769822834732, guid: d81193b4b57486b46b4762e8b26d2de8, - type: 3} + - target: {fileID: 6957000769822834732, guid: d81193b4b57486b46b4762e8b26d2de8, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 6957000769822834732, guid: d81193b4b57486b46b4762e8b26d2de8, - type: 3} + - target: {fileID: 6957000769822834732, guid: d81193b4b57486b46b4762e8b26d2de8, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6957000769822834732, guid: d81193b4b57486b46b4762e8b26d2de8, - type: 3} + - target: {fileID: 6957000769822834732, guid: d81193b4b57486b46b4762e8b26d2de8, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6957000769822834732, guid: d81193b4b57486b46b4762e8b26d2de8, - type: 3} + - target: {fileID: 6957000769822834732, guid: d81193b4b57486b46b4762e8b26d2de8, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6957000769822834732, guid: d81193b4b57486b46b4762e8b26d2de8, - type: 3} + - target: {fileID: 6957000769822834732, guid: d81193b4b57486b46b4762e8b26d2de8, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6957000769822834732, guid: d81193b4b57486b46b4762e8b26d2de8, - type: 3} + - target: {fileID: 6957000769822834732, guid: d81193b4b57486b46b4762e8b26d2de8, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6957000769822834732, guid: d81193b4b57486b46b4762e8b26d2de8, - type: 3} + - target: {fileID: 6957000769822834732, guid: d81193b4b57486b46b4762e8b26d2de8, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6957000769822834733, guid: d81193b4b57486b46b4762e8b26d2de8, - type: 3} + - target: {fileID: 6957000769822834733, guid: d81193b4b57486b46b4762e8b26d2de8, type: 3} propertyPath: m_Name value: SimpleSocketShape objectReference: {fileID: 0} + - target: {fileID: 6957000769822834733, guid: d81193b4b57486b46b4762e8b26d2de8, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: d81193b4b57486b46b4762e8b26d2de8, type: 3} --- !u!4 &547215373 stripped Transform: - m_CorrespondingSourceObject: {fileID: 6957000769822834732, guid: d81193b4b57486b46b4762e8b26d2de8, - type: 3} + m_CorrespondingSourceObject: {fileID: 6957000769822834732, guid: d81193b4b57486b46b4762e8b26d2de8, type: 3} m_PrefabInstance: {fileID: 547215372} m_PrefabAsset: {fileID: 0} --- !u!114 &574022040 stripped MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 195190419645158932, guid: 6a448845c7017044e8a9f3d711cfe825, - type: 3} + m_CorrespondingSourceObject: {fileID: 195190419645158932, guid: 6a448845c7017044e8a9f3d711cfe825, type: 3} m_PrefabInstance: {fileID: 195190421004440613} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 0} @@ -2371,83 +2131,65 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - serializedVersion: 3 m_TransformParent: {fileID: 1337110718} m_Modifications: - - target: {fileID: 3166814444043639594, guid: e2698219e3231e94c8765d49b9dd5cff, - type: 3} + - target: {fileID: 3166814444043639594, guid: e2698219e3231e94c8765d49b9dd5cff, type: 3} propertyPath: m_Camera value: objectReference: {fileID: 1948693200} - - target: {fileID: 5030734266366949668, guid: e2698219e3231e94c8765d49b9dd5cff, - type: 3} + - target: {fileID: 5030734266366949668, guid: e2698219e3231e94c8765d49b9dd5cff, type: 3} propertyPath: m_Camera value: objectReference: {fileID: 1948693200} - - target: {fileID: 5030734267259534324, guid: e2698219e3231e94c8765d49b9dd5cff, - type: 3} + - target: {fileID: 5030734267259534324, guid: e2698219e3231e94c8765d49b9dd5cff, type: 3} propertyPath: m_Name value: Hand Menu With Button Activation objectReference: {fileID: 0} - - target: {fileID: 5030734267259534325, guid: e2698219e3231e94c8765d49b9dd5cff, - type: 3} + - target: {fileID: 5030734267259534325, guid: e2698219e3231e94c8765d49b9dd5cff, type: 3} propertyPath: m_RootOrder value: 10 objectReference: {fileID: 0} - - target: {fileID: 5030734267259534325, guid: e2698219e3231e94c8765d49b9dd5cff, - type: 3} + - target: {fileID: 5030734267259534325, guid: e2698219e3231e94c8765d49b9dd5cff, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 5030734267259534325, guid: e2698219e3231e94c8765d49b9dd5cff, - type: 3} + - target: {fileID: 5030734267259534325, guid: e2698219e3231e94c8765d49b9dd5cff, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 5030734267259534325, guid: e2698219e3231e94c8765d49b9dd5cff, - type: 3} + - target: {fileID: 5030734267259534325, guid: e2698219e3231e94c8765d49b9dd5cff, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 5030734267259534325, guid: e2698219e3231e94c8765d49b9dd5cff, - type: 3} + - target: {fileID: 5030734267259534325, guid: e2698219e3231e94c8765d49b9dd5cff, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 5030734267259534325, guid: e2698219e3231e94c8765d49b9dd5cff, - type: 3} + - target: {fileID: 5030734267259534325, guid: e2698219e3231e94c8765d49b9dd5cff, type: 3} propertyPath: m_LocalRotation.x value: -0 objectReference: {fileID: 0} - - target: {fileID: 5030734267259534325, guid: e2698219e3231e94c8765d49b9dd5cff, - type: 3} + - target: {fileID: 5030734267259534325, guid: e2698219e3231e94c8765d49b9dd5cff, type: 3} propertyPath: m_LocalRotation.y value: -0 objectReference: {fileID: 0} - - target: {fileID: 5030734267259534325, guid: e2698219e3231e94c8765d49b9dd5cff, - type: 3} + - target: {fileID: 5030734267259534325, guid: e2698219e3231e94c8765d49b9dd5cff, type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - - target: {fileID: 5030734267259534325, guid: e2698219e3231e94c8765d49b9dd5cff, - type: 3} + - target: {fileID: 5030734267259534325, guid: e2698219e3231e94c8765d49b9dd5cff, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 5030734267259534325, guid: e2698219e3231e94c8765d49b9dd5cff, - type: 3} + - target: {fileID: 5030734267259534325, guid: e2698219e3231e94c8765d49b9dd5cff, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 5030734267259534325, guid: e2698219e3231e94c8765d49b9dd5cff, - type: 3} + - target: {fileID: 5030734267259534325, guid: e2698219e3231e94c8765d49b9dd5cff, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: e2698219e3231e94c8765d49b9dd5cff, type: 3} --- !u!1 &659511933 GameObject: @@ -2480,6 +2222,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1726903308} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} @@ -2556,6 +2299,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2105799744} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: -15, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -2625,123 +2369,97 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - serializedVersion: 3 m_TransformParent: {fileID: 1434975003} m_Modifications: - - target: {fileID: -8679921383154817045, guid: 171affcd2d7ddf545ae966acd2de57c2, - type: 3} + - target: {fileID: -8679921383154817045, guid: 171affcd2d7ddf545ae966acd2de57c2, type: 3} propertyPath: m_RootOrder value: 1 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 171affcd2d7ddf545ae966acd2de57c2, - type: 3} + - target: {fileID: -8679921383154817045, guid: 171affcd2d7ddf545ae966acd2de57c2, type: 3} propertyPath: m_LocalScale.x value: 0.825 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 171affcd2d7ddf545ae966acd2de57c2, - type: 3} + - target: {fileID: -8679921383154817045, guid: 171affcd2d7ddf545ae966acd2de57c2, type: 3} propertyPath: m_LocalScale.y value: 0.825 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 171affcd2d7ddf545ae966acd2de57c2, - type: 3} + - target: {fileID: -8679921383154817045, guid: 171affcd2d7ddf545ae966acd2de57c2, type: 3} propertyPath: m_LocalScale.z value: 0.825 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 171affcd2d7ddf545ae966acd2de57c2, - type: 3} + - target: {fileID: -8679921383154817045, guid: 171affcd2d7ddf545ae966acd2de57c2, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 171affcd2d7ddf545ae966acd2de57c2, - type: 3} + - target: {fileID: -8679921383154817045, guid: 171affcd2d7ddf545ae966acd2de57c2, type: 3} propertyPath: m_LocalPosition.y value: 0.202 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 171affcd2d7ddf545ae966acd2de57c2, - type: 3} + - target: {fileID: -8679921383154817045, guid: 171affcd2d7ddf545ae966acd2de57c2, type: 3} propertyPath: m_LocalPosition.z value: -0.04 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 171affcd2d7ddf545ae966acd2de57c2, - type: 3} + - target: {fileID: -8679921383154817045, guid: 171affcd2d7ddf545ae966acd2de57c2, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 171affcd2d7ddf545ae966acd2de57c2, - type: 3} + - target: {fileID: -8679921383154817045, guid: 171affcd2d7ddf545ae966acd2de57c2, type: 3} propertyPath: m_LocalRotation.x value: -0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 171affcd2d7ddf545ae966acd2de57c2, - type: 3} + - target: {fileID: -8679921383154817045, guid: 171affcd2d7ddf545ae966acd2de57c2, type: 3} propertyPath: m_LocalRotation.y value: -0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 171affcd2d7ddf545ae966acd2de57c2, - type: 3} + - target: {fileID: -8679921383154817045, guid: 171affcd2d7ddf545ae966acd2de57c2, type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 171affcd2d7ddf545ae966acd2de57c2, - type: 3} + - target: {fileID: -8679921383154817045, guid: 171affcd2d7ddf545ae966acd2de57c2, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 171affcd2d7ddf545ae966acd2de57c2, - type: 3} + - target: {fileID: -8679921383154817045, guid: 171affcd2d7ddf545ae966acd2de57c2, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 171affcd2d7ddf545ae966acd2de57c2, - type: 3} + - target: {fileID: -8679921383154817045, guid: 171affcd2d7ddf545ae966acd2de57c2, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: -4439102092742417607, guid: 171affcd2d7ddf545ae966acd2de57c2, - type: 3} + - target: {fileID: -4439102092742417607, guid: 171affcd2d7ddf545ae966acd2de57c2, type: 3} propertyPath: m_Materials.Array.data[0] value: objectReference: {fileID: 2100000, guid: 54f7c59213ac02b4d9f00104348dbac3, type: 2} - - target: {fileID: -2592982531892835197, guid: 171affcd2d7ddf545ae966acd2de57c2, - type: 3} + - target: {fileID: -2592982531892835197, guid: 171affcd2d7ddf545ae966acd2de57c2, type: 3} propertyPath: m_Materials.Array.data[0] value: objectReference: {fileID: 2100000, guid: 54f7c59213ac02b4d9f00104348dbac3, type: 2} - - target: {fileID: 352991350029454794, guid: 171affcd2d7ddf545ae966acd2de57c2, - type: 3} + - target: {fileID: 352991350029454794, guid: 171affcd2d7ddf545ae966acd2de57c2, type: 3} propertyPath: m_Materials.Array.data[0] value: objectReference: {fileID: 2100000, guid: 54f7c59213ac02b4d9f00104348dbac3, type: 2} - - target: {fileID: 919132149155446097, guid: 171affcd2d7ddf545ae966acd2de57c2, - type: 3} + - target: {fileID: 919132149155446097, guid: 171affcd2d7ddf545ae966acd2de57c2, type: 3} propertyPath: m_Name value: Frame objectReference: {fileID: 0} - - target: {fileID: 4387676272040780315, guid: 171affcd2d7ddf545ae966acd2de57c2, - type: 3} + - target: {fileID: 4387676272040780315, guid: 171affcd2d7ddf545ae966acd2de57c2, type: 3} propertyPath: m_Materials.Array.data[0] value: objectReference: {fileID: 2100000, guid: 54f7c59213ac02b4d9f00104348dbac3, type: 2} - - target: {fileID: 5501516358913157983, guid: 171affcd2d7ddf545ae966acd2de57c2, - type: 3} + - target: {fileID: 5501516358913157983, guid: 171affcd2d7ddf545ae966acd2de57c2, type: 3} propertyPath: m_Materials.Array.data[0] value: objectReference: {fileID: 2100000, guid: 54f7c59213ac02b4d9f00104348dbac3, type: 2} - - target: {fileID: 7239177940356296027, guid: 171affcd2d7ddf545ae966acd2de57c2, - type: 3} + - target: {fileID: 7239177940356296027, guid: 171affcd2d7ddf545ae966acd2de57c2, type: 3} propertyPath: m_Materials.Array.data[0] value: objectReference: {fileID: 2100000, guid: 54f7c59213ac02b4d9f00104348dbac3, type: 2} m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 171affcd2d7ddf545ae966acd2de57c2, type: 3} --- !u!224 &702756937 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, - type: 3} + m_CorrespondingSourceObject: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, type: 3} m_PrefabInstance: {fileID: 5715416335952834191} m_PrefabAsset: {fileID: 0} --- !u!1 &745358748 @@ -2777,6 +2495,7 @@ RectTransform: - {fileID: 861617807} - {fileID: 1308569717} m_Father: {fileID: 361856895} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -2832,7 +2551,6 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 797091099} - serializedVersion: 2 m_LocalRotation: {x: -0, y: -0.3090171, z: -0, w: 0.95105654} m_LocalPosition: {x: 0, y: 0, z: -0.25} m_LocalScale: {x: 1, y: 1, z: 1} @@ -2842,6 +2560,7 @@ Transform: - {fileID: 1961794668} - {fileID: 2063322578} m_Father: {fileID: 1434975003} + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: -36, z: 0} --- !u!1 &809110995 GameObject: @@ -2874,6 +2593,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1459892945} + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -2923,373 +2643,297 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - serializedVersion: 3 m_TransformParent: {fileID: 1943824117} m_Modifications: - - target: {fileID: 575213516256852194, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 575213516256852194, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMax.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 575213516256852194, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 575213516256852194, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMin.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 575213516256852194, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 575213516256852194, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_SizeDelta.x value: 252 objectReference: {fileID: 0} - - target: {fileID: 575213516256852194, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 575213516256852194, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.x value: 126 objectReference: {fileID: 0} - - target: {fileID: 575213516256852194, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 575213516256852194, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.y value: -432 objectReference: {fileID: 0} - - target: {fileID: 2459597453263534125, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 2459597453263534125, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMax.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 2459597453263534125, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 2459597453263534125, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMin.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 2459597453263534125, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 2459597453263534125, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_SizeDelta.x value: 252 objectReference: {fileID: 0} - - target: {fileID: 2459597453263534125, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 2459597453263534125, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.x value: 126 objectReference: {fileID: 0} - - target: {fileID: 2459597453263534125, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 2459597453263534125, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.y value: -97 objectReference: {fileID: 0} - - target: {fileID: 3318402603881556472, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 3318402603881556472, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMax.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 3318402603881556472, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 3318402603881556472, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMin.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 3318402603881556472, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 3318402603881556472, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_SizeDelta.x value: 252 objectReference: {fileID: 0} - - target: {fileID: 3318402603881556472, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 3318402603881556472, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.x value: 126 objectReference: {fileID: 0} - - target: {fileID: 3318402603881556472, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 3318402603881556472, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.y value: -499 objectReference: {fileID: 0} - - target: {fileID: 4545177384989293878, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 4545177384989293878, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMax.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 4545177384989293878, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 4545177384989293878, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMin.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 4545177384989293878, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 4545177384989293878, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_SizeDelta.x value: 252 objectReference: {fileID: 0} - - target: {fileID: 4545177384989293878, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 4545177384989293878, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.x value: 126 objectReference: {fileID: 0} - - target: {fileID: 4545177384989293878, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 4545177384989293878, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.y value: -231 objectReference: {fileID: 0} - - target: {fileID: 6081796599383575975, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6081796599383575975, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMax.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 6081796599383575975, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6081796599383575975, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMin.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 6081796599383575975, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6081796599383575975, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_SizeDelta.x value: 252 objectReference: {fileID: 0} - - target: {fileID: 6081796599383575975, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6081796599383575975, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.x value: 126 objectReference: {fileID: 0} - - target: {fileID: 6081796599383575975, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6081796599383575975, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.y value: -566 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721044, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721044, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_Name value: Scroll View objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_Pivot.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_Pivot.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_RootOrder value: 2 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMax.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMax.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMin.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMin.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_SizeDelta.x value: -48 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_SizeDelta.y value: -119 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_LocalRotation.x value: -0 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_LocalRotation.y value: -0 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.y value: -35.49995 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6183026902371939695, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026902371939695, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_SizeDelta.y value: 596 objectReference: {fileID: 0} - - target: {fileID: 6183026902669923109, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026902669923109, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMax.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 6183026902669923109, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026902669923109, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMax.y value: 0.9999999 objectReference: {fileID: 0} - - target: {fileID: 6183026902669923109, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026902669923109, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMin.y value: 0.6409395 objectReference: {fileID: 0} - - target: {fileID: 6371800052681497148, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6371800052681497148, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMax.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 6371800052681497148, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6371800052681497148, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMin.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 6371800052681497148, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6371800052681497148, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_SizeDelta.x value: 252 objectReference: {fileID: 0} - - target: {fileID: 6371800052681497148, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6371800052681497148, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.x value: 126 objectReference: {fileID: 0} - - target: {fileID: 6371800052681497148, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6371800052681497148, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.y value: -365 objectReference: {fileID: 0} - - target: {fileID: 7050254453680010381, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 7050254453680010381, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMax.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 7050254453680010381, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 7050254453680010381, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMin.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 7050254453680010381, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 7050254453680010381, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_SizeDelta.x value: 252 objectReference: {fileID: 0} - - target: {fileID: 7050254453680010381, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 7050254453680010381, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.x value: 126 objectReference: {fileID: 0} - - target: {fileID: 7050254453680010381, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 7050254453680010381, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.y value: -298 objectReference: {fileID: 0} - - target: {fileID: 7115703732978342057, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 7115703732978342057, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMax.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 7115703732978342057, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 7115703732978342057, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMin.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 7115703732978342057, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 7115703732978342057, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_SizeDelta.x value: 252 objectReference: {fileID: 0} - - target: {fileID: 7115703732978342057, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 7115703732978342057, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.x value: 126 objectReference: {fileID: 0} - - target: {fileID: 7115703732978342057, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 7115703732978342057, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.y value: -30 objectReference: {fileID: 0} - - target: {fileID: 8774576546710604735, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 8774576546710604735, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMax.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 8774576546710604735, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 8774576546710604735, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMin.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 8774576546710604735, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 8774576546710604735, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_SizeDelta.x value: 252 objectReference: {fileID: 0} - - target: {fileID: 8774576546710604735, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 8774576546710604735, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.x value: 126 objectReference: {fileID: 0} - - target: {fileID: 8774576546710604735, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 8774576546710604735, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.y value: -164 objectReference: {fileID: 0} m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} --- !u!224 &812076692 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + m_CorrespondingSourceObject: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} m_PrefabInstance: {fileID: 812076691} m_PrefabAsset: {fileID: 0} --- !u!1001 &820107586 @@ -3297,173 +2941,137 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - serializedVersion: 3 m_TransformParent: {fileID: 1648550613} m_Modifications: - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Pivot.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Pivot.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_RootOrder value: 1 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMax.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMax.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMin.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMin.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_SizeDelta.x value: 60 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_SizeDelta.y value: 60 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.x value: -0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.y value: -0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596673, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596673, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Name value: TouchPad Button 2 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size value: 1 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode value: 6 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target value: objectReference: {fileID: 1784880961} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState value: 2 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName value: set_isOn objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName value: UnityEngine.UI.Toggle, UnityEngine.UI objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_BoolArgument value: 1 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName value: UnityEngine.Object, UnityEngine objectReference: {fileID: 0} - - target: {fileID: 4455438663099779001, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438663099779001, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Text value: 2 objectReference: {fileID: 0} m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: b0c78422845bac948a9080175e57ffff, type: 3} --- !u!224 &820107587 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + m_CorrespondingSourceObject: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} m_PrefabInstance: {fileID: 820107586} m_PrefabAsset: {fileID: 0} --- !u!1 &852312762 @@ -3498,6 +3106,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1120256391} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: -15, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -3593,6 +3202,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 745358749} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -3669,6 +3279,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2105827454} + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -3764,6 +3375,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 246682137} + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} @@ -3845,6 +3457,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 187460343} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} @@ -3927,6 +3540,7 @@ RectTransform: - {fileID: 1930256998} - {fileID: 1643716050} m_Father: {fileID: 992345761} + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -3978,103 +3592,73 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - serializedVersion: 3 m_TransformParent: {fileID: 1129778166} m_Modifications: - - target: {fileID: 1988286665728152634, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} - propertyPath: m_PermittedDisplacementAxes - value: -1 - objectReference: {fileID: 0} - - target: {fileID: 2603633290551499573, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} - propertyPath: m_Materials.Array.data[0] - value: - objectReference: {fileID: 2100000, guid: e2fab14359f78ac44b6fb07523f664d7, type: 2} - - target: {fileID: 5268460675038366902, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 5268460675038366902, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_Name - value: Cube (Blue) + value: Cube 2 objectReference: {fileID: 0} - - target: {fileID: 8715892259302707255, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 8715892259302707255, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalScale.x value: 9.5 objectReference: {fileID: 0} - - target: {fileID: 8715892259302707255, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 8715892259302707255, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalScale.y value: 9.5 objectReference: {fileID: 0} - - target: {fileID: 8715892259302707255, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 8715892259302707255, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalScale.z value: 9.5 objectReference: {fileID: 0} - - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_RootOrder value: 1 objectReference: {fileID: 0} - - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalPosition.x value: -0.000000011395885 objectReference: {fileID: 0} - - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalPosition.z value: 0.000000035072926 objectReference: {fileID: 0} - - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalRotation.w value: 0.67182606 objectReference: {fileID: 0} - - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalRotation.x value: -0.24036595 objectReference: {fileID: 0} - - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalRotation.y value: 0.19515198 objectReference: {fileID: 0} - - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalRotation.z value: -0.6728965 objectReference: {fileID: 0} - - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 116.218 objectReference: {fileID: 0} - - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: -85.48 objectReference: {fileID: 0} - - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: -18.765 objectReference: {fileID: 0} m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} --- !u!4 &938402503 stripped Transform: - m_CorrespondingSourceObject: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + m_CorrespondingSourceObject: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} m_PrefabInstance: {fileID: 938402502} m_PrefabAsset: {fileID: 0} --- !u!1001 &975642589 @@ -4082,169 +3666,134 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - serializedVersion: 3 m_TransformParent: {fileID: 1726903308} m_Modifications: - - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, - type: 3} + - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, type: 3} propertyPath: m_Pivot.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, - type: 3} + - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, type: 3} propertyPath: m_Pivot.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, - type: 3} + - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, type: 3} propertyPath: m_RootOrder value: 9 objectReference: {fileID: 0} - - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, - type: 3} + - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, type: 3} propertyPath: m_AnchorMax.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, - type: 3} + - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, type: 3} propertyPath: m_AnchorMax.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, - type: 3} + - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, type: 3} propertyPath: m_AnchorMin.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, - type: 3} + - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, type: 3} propertyPath: m_AnchorMin.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, - type: 3} + - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, type: 3} propertyPath: m_SizeDelta.x value: 260 objectReference: {fileID: 0} - - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, - type: 3} + - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, type: 3} propertyPath: m_SizeDelta.y value: 60 objectReference: {fileID: 0} - - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, - type: 3} + - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, - type: 3} + - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, - type: 3} + - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, type: 3} propertyPath: m_LocalPosition.z value: 0.096935034 objectReference: {fileID: 0} - - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, - type: 3} + - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, - type: 3} + - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, type: 3} propertyPath: m_LocalRotation.x value: -0 objectReference: {fileID: 0} - - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, - type: 3} + - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, type: 3} propertyPath: m_LocalRotation.y value: -0 objectReference: {fileID: 0} - - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, - type: 3} + - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, - type: 3} + - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, type: 3} propertyPath: m_AnchoredPosition.x value: -29.927155 objectReference: {fileID: 0} - - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, - type: 3} + - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, type: 3} propertyPath: m_AnchoredPosition.y value: -169.97406 objectReference: {fileID: 0} - - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, - type: 3} + - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, - type: 3} + - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, - type: 3} + - target: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4779813318549682554, guid: 870459f1cb8d7b7428337cc5935feb67, - type: 3} + - target: {fileID: 4779813318549682554, guid: 870459f1cb8d7b7428337cc5935feb67, type: 3} propertyPath: m_Name value: Dropdown objectReference: {fileID: 0} - - target: {fileID: 4779813318549682554, guid: 870459f1cb8d7b7428337cc5935feb67, - type: 3} + - target: {fileID: 4779813318549682554, guid: 870459f1cb8d7b7428337cc5935feb67, type: 3} propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} - - target: {fileID: 4779813318609936197, guid: 870459f1cb8d7b7428337cc5935feb67, - type: 3} + - target: {fileID: 4779813318609936197, guid: 870459f1cb8d7b7428337cc5935feb67, type: 3} propertyPath: m_AnchorMax.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4779813318609936197, guid: 870459f1cb8d7b7428337cc5935feb67, - type: 3} + - target: {fileID: 4779813318609936197, guid: 870459f1cb8d7b7428337cc5935feb67, type: 3} propertyPath: m_AnchorMax.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4779813319869900771, guid: 870459f1cb8d7b7428337cc5935feb67, - type: 3} + - target: {fileID: 4779813319869900771, guid: 870459f1cb8d7b7428337cc5935feb67, type: 3} propertyPath: m_AnchorMax.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4779813319869900771, guid: 870459f1cb8d7b7428337cc5935feb67, - type: 3} + - target: {fileID: 4779813319869900771, guid: 870459f1cb8d7b7428337cc5935feb67, type: 3} propertyPath: m_AnchorMax.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4779813319869900771, guid: 870459f1cb8d7b7428337cc5935feb67, - type: 3} + - target: {fileID: 4779813319869900771, guid: 870459f1cb8d7b7428337cc5935feb67, type: 3} propertyPath: m_SizeDelta.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4779813320191324749, guid: 870459f1cb8d7b7428337cc5935feb67, - type: 3} + - target: {fileID: 4779813320191324749, guid: 870459f1cb8d7b7428337cc5935feb67, type: 3} propertyPath: m_IsActive value: 0 objectReference: {fileID: 0} m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 870459f1cb8d7b7428337cc5935feb67, type: 3} --- !u!224 &975642590 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, - type: 3} + m_CorrespondingSourceObject: {fileID: 4779813318549682533, guid: 870459f1cb8d7b7428337cc5935feb67, type: 3} m_PrefabInstance: {fileID: 975642589} m_PrefabAsset: {fileID: 0} --- !u!1 &982772612 stripped GameObject: - m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 365907f61b8b39a48aab9aacd4588f45, - type: 3} + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 365907f61b8b39a48aab9aacd4588f45, type: 3} m_PrefabInstance: {fileID: 496326443} m_PrefabAsset: {fileID: 0} --- !u!64 &982772613 @@ -4255,17 +3804,9 @@ MeshCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 982772612} m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 m_IsTrigger: 0 - m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 5 + serializedVersion: 4 m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: 8207010926609093179, guid: 365907f61b8b39a48aab9aacd4588f45, type: 3} @@ -4305,6 +3846,7 @@ RectTransform: - {fileID: 361856895} - {fileID: 929444318} m_Father: {fileID: 123424313} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -4387,9 +3929,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 m_AdditionalShaderChannelsFlag: 25 - m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 m_SortingOrder: 1 m_TargetDisplay: 0 @@ -4398,173 +3938,137 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - serializedVersion: 3 m_TransformParent: {fileID: 1643716050} m_Modifications: - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Pivot.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Pivot.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_RootOrder value: 1 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMax.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMax.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMin.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMin.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_SizeDelta.x value: 60 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_SizeDelta.y value: 60 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.x value: -0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.y value: -0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596673, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596673, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Name value: TouchPad Button 8 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size value: 1 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode value: 6 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target value: objectReference: {fileID: 1495165417} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState value: 2 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName value: set_isOn objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName value: UnityEngine.UI.Toggle, UnityEngine.UI objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_BoolArgument value: 1 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName value: UnityEngine.Object, UnityEngine objectReference: {fileID: 0} - - target: {fileID: 4455438663099779001, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438663099779001, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Text value: 8 objectReference: {fileID: 0} m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: b0c78422845bac948a9080175e57ffff, type: 3} --- !u!224 &1004500091 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + m_CorrespondingSourceObject: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} m_PrefabInstance: {fileID: 1004500090} m_PrefabAsset: {fileID: 0} --- !u!1 &1007358708 @@ -4598,6 +4102,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 246682137} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} @@ -4648,8 +4153,7 @@ CanvasRenderer: m_CullTransparentMesh: 1 --- !u!1 &1109258394 stripped GameObject: - m_CorrespondingSourceObject: {fileID: 5715416335250216647, guid: 541ed11e270c6994ca5910042c7e04da, - type: 3} + m_CorrespondingSourceObject: {fileID: 5715416335250216647, guid: 541ed11e270c6994ca5910042c7e04da, type: 3} m_PrefabInstance: {fileID: 5715416335952834191} m_PrefabAsset: {fileID: 0} --- !u!114 &1109258399 @@ -4701,6 +4205,7 @@ RectTransform: - {fileID: 1874101526} - {fileID: 1618199120} m_Father: {fileID: 1972783598} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 15, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -4783,9 +4288,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 m_AdditionalShaderChannelsFlag: 25 - m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 m_SortingOrder: 1 m_TargetDisplay: 0 @@ -4885,9 +4388,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 m_AdditionalShaderChannelsFlag: 25 - m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 m_SortingOrder: 1 m_TargetDisplay: 0 @@ -4907,6 +4408,7 @@ RectTransform: - {fileID: 89318627} - {fileID: 1887197406} m_Father: {fileID: 123424313} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 15, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -4936,7 +4438,6 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1129778165} - serializedVersion: 2 m_LocalRotation: {x: -0, y: -0.58778524, z: -0, w: 0.809017} m_LocalPosition: {x: 0.047972523, y: 0.773, z: 0.5700773} m_LocalScale: {x: 0.606102, y: 0.606102, z: 0.606102} @@ -4946,11 +4447,11 @@ Transform: - {fileID: 938402503} - {fileID: 1935852348} m_Father: {fileID: 1972783598} + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &1159150007 stripped Transform: - m_CorrespondingSourceObject: {fileID: 6689389171845895219, guid: a5f97d75a3184ad46aef39618607e083, - type: 3} + m_CorrespondingSourceObject: {fileID: 6689389171845895219, guid: a5f97d75a3184ad46aef39618607e083, type: 3} m_PrefabInstance: {fileID: 6689389173002939780} m_PrefabAsset: {fileID: 0} --- !u!1 &1170633772 @@ -4984,6 +4485,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1351530911} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} @@ -5037,158 +4539,125 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - serializedVersion: 3 m_TransformParent: {fileID: 1726903308} m_Modifications: - - target: {fileID: 8969571751951368413, guid: 657321a07c3561043af55547ec4b0ed7, - type: 3} + - target: {fileID: 8969571751951368413, guid: 657321a07c3561043af55547ec4b0ed7, type: 3} propertyPath: m_AnchorMax.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 8969571751951368413, guid: 657321a07c3561043af55547ec4b0ed7, - type: 3} + - target: {fileID: 8969571751951368413, guid: 657321a07c3561043af55547ec4b0ed7, type: 3} propertyPath: m_AnchorMax.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 8969571752320557268, guid: 657321a07c3561043af55547ec4b0ed7, - type: 3} + - target: {fileID: 8969571752320557268, guid: 657321a07c3561043af55547ec4b0ed7, type: 3} propertyPath: m_AnchorMax.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 8969571752320557268, guid: 657321a07c3561043af55547ec4b0ed7, - type: 3} + - target: {fileID: 8969571752320557268, guid: 657321a07c3561043af55547ec4b0ed7, type: 3} propertyPath: m_AnchorMax.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 8969571752320557268, guid: 657321a07c3561043af55547ec4b0ed7, - type: 3} + - target: {fileID: 8969571752320557268, guid: 657321a07c3561043af55547ec4b0ed7, type: 3} propertyPath: m_AnchorMin.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 8969571752666551113, guid: 657321a07c3561043af55547ec4b0ed7, - type: 3} + - target: {fileID: 8969571752666551113, guid: 657321a07c3561043af55547ec4b0ed7, type: 3} propertyPath: m_Name value: MinMaxSlider objectReference: {fileID: 0} - - target: {fileID: 8969571752666551113, guid: 657321a07c3561043af55547ec4b0ed7, - type: 3} + - target: {fileID: 8969571752666551113, guid: 657321a07c3561043af55547ec4b0ed7, type: 3} propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} - - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, - type: 3} + - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, type: 3} propertyPath: m_Pivot.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, - type: 3} + - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, type: 3} propertyPath: m_Pivot.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, - type: 3} + - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, type: 3} propertyPath: m_RootOrder value: 4 objectReference: {fileID: 0} - - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, - type: 3} + - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, type: 3} propertyPath: m_AnchorMax.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, - type: 3} + - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, type: 3} propertyPath: m_AnchorMax.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, - type: 3} + - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, type: 3} propertyPath: m_AnchorMin.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, - type: 3} + - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, type: 3} propertyPath: m_AnchorMin.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, - type: 3} + - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, type: 3} propertyPath: m_SizeDelta.x value: 260 objectReference: {fileID: 0} - - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, - type: 3} + - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, type: 3} propertyPath: m_SizeDelta.y value: 60 objectReference: {fileID: 0} - - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, - type: 3} + - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, - type: 3} + - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, - type: 3} + - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, - type: 3} + - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, - type: 3} + - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, type: 3} propertyPath: m_LocalRotation.x value: -0 objectReference: {fileID: 0} - - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, - type: 3} + - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, type: 3} propertyPath: m_LocalRotation.y value: -0 objectReference: {fileID: 0} - - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, - type: 3} + - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, - type: 3} + - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, type: 3} propertyPath: m_AnchoredPosition.x value: -30 objectReference: {fileID: 0} - - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, - type: 3} + - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, type: 3} propertyPath: m_AnchoredPosition.y value: 159.99994 objectReference: {fileID: 0} - - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, - type: 3} + - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, - type: 3} + - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, - type: 3} + - target: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 657321a07c3561043af55547ec4b0ed7, type: 3} --- !u!224 &1189763046 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, - type: 3} + m_CorrespondingSourceObject: {fileID: 8969571752666551114, guid: 657321a07c3561043af55547ec4b0ed7, type: 3} m_PrefabInstance: {fileID: 1189763045} m_PrefabAsset: {fileID: 0} --- !u!1 &1260218105 @@ -5215,13 +4684,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1260218105} - serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0.2, z: -0.15799998} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1434975003} + m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &1260218107 MonoBehaviour: @@ -5273,6 +4742,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2105827454} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: -15, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} @@ -5352,6 +4822,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 745358749} + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -5427,6 +4898,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1726903308} + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} @@ -5473,9 +4945,8 @@ CanvasRenderer: m_CullTransparentMesh: 1 --- !u!4 &1337110718 stripped Transform: - m_CorrespondingSourceObject: {fileID: 7990873191187716717, guid: 5eccbf4be2c00e94689ee8062e4e7276, - type: 3} - m_PrefabInstance: {fileID: 3113582726696116334} + m_CorrespondingSourceObject: {fileID: 657184242161839408, guid: d6878e1999eb4b44a9f5a263af86c185, type: 3} + m_PrefabInstance: {fileID: 5534409079552104243} m_PrefabAsset: {fileID: 0} --- !u!1 &1337396800 GameObject: @@ -5500,7 +4971,6 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1337396800} - serializedVersion: 2 m_LocalRotation: {x: 0.000000026041338, y: 0.5877853, z: 0.000000016295347, w: 0.80901706} m_LocalPosition: {x: -0.000000082124764, y: 0.00000011920929, z: -0.2500001} m_LocalScale: {x: 0.9999999, y: 1, z: 0.9999999} @@ -5509,6 +4979,7 @@ Transform: - {fileID: 2105799744} - {fileID: 547215373} m_Father: {fileID: 1434975003} + m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 72, z: 0} --- !u!1 &1351530910 GameObject: @@ -5542,6 +5013,7 @@ RectTransform: m_Children: - {fileID: 1170633773} m_Father: {fileID: 1576716364} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: -75, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -5588,16 +5060,13 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 m_AdditionalShaderChannelsFlag: 25 - m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 m_SortingOrder: 1 m_TargetDisplay: 0 --- !u!114 &1359436870 stripped MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 5715416335971100667, guid: 541ed11e270c6994ca5910042c7e04da, - type: 3} + m_CorrespondingSourceObject: {fileID: 5715416335971100667, guid: 541ed11e270c6994ca5910042c7e04da, type: 3} m_PrefabInstance: {fileID: 5715416335952834191} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 0} @@ -5637,6 +5106,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1943824117} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 1, y: 1} @@ -5708,7 +5178,6 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1434975002} - serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0.15799998} m_LocalScale: {x: 1, y: 1, z: 1} @@ -5723,6 +5192,7 @@ Transform: - {fileID: 1337396801} - {fileID: 1260218106} m_Father: {fileID: 0} + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1459892944 GameObject: @@ -5757,6 +5227,7 @@ RectTransform: - {fileID: 522548468} - {fileID: 809110996} m_Father: {fileID: 361856895} + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -5791,8 +5262,7 @@ MonoBehaviour: m_ReverseArrangement: 0 --- !u!114 &1495165417 stripped MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 7452232763456472641, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + m_CorrespondingSourceObject: {fileID: 7452232763456472641, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} m_PrefabInstance: {fileID: 6183026901525796732} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 0} @@ -5806,173 +5276,137 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - serializedVersion: 3 m_TransformParent: {fileID: 1930256998} m_Modifications: - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Pivot.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Pivot.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_RootOrder value: 1 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMax.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMax.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMin.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMin.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_SizeDelta.x value: 60 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_SizeDelta.y value: 60 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.x value: -0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.y value: -0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596673, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596673, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Name value: TouchPad Button 5 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size value: 1 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode value: 6 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target value: objectReference: {fileID: 1607142550} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState value: 2 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName value: set_isOn objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName value: UnityEngine.UI.Toggle, UnityEngine.UI objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_BoolArgument value: 1 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName value: UnityEngine.Object, UnityEngine objectReference: {fileID: 0} - - target: {fileID: 4455438663099779001, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438663099779001, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Text value: 5 objectReference: {fileID: 0} m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: b0c78422845bac948a9080175e57ffff, type: 3} --- !u!224 &1542318348 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + m_CorrespondingSourceObject: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} m_PrefabInstance: {fileID: 1542318347} m_PrefabAsset: {fileID: 0} --- !u!1 &1576716363 @@ -5998,7 +5432,6 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1576716363} - serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -0.6, y: 0.75, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} @@ -6008,11 +5441,11 @@ Transform: - {fileID: 1351530911} - {fileID: 1985586552} m_Father: {fileID: 1434975003} + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &1607142550 stripped MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 2932259739682790196, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + m_CorrespondingSourceObject: {fileID: 2932259739682790196, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} m_PrefabInstance: {fileID: 6183026901525796732} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 0} @@ -6052,6 +5485,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1109639964} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: -15, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} @@ -6131,6 +5565,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1943824117} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 1, y: 1} @@ -6177,8 +5612,7 @@ CanvasRenderer: m_CullTransparentMesh: 0 --- !u!114 &1633829042 stripped MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 1228319155873904005, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + m_CorrespondingSourceObject: {fileID: 1228319155873904005, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} m_PrefabInstance: {fileID: 6183026901525796732} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 0} @@ -6192,98 +5626,77 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - serializedVersion: 3 m_TransformParent: {fileID: 1985586552} m_Modifications: - - target: {fileID: -8679921383154817045, guid: 714a27c3372b8074d8370e2bc0cecf56, - type: 3} + - target: {fileID: -8679921383154817045, guid: 714a27c3372b8074d8370e2bc0cecf56, type: 3} propertyPath: m_RootOrder value: 0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 714a27c3372b8074d8370e2bc0cecf56, - type: 3} + - target: {fileID: -8679921383154817045, guid: 714a27c3372b8074d8370e2bc0cecf56, type: 3} propertyPath: m_LocalScale.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 714a27c3372b8074d8370e2bc0cecf56, - type: 3} + - target: {fileID: -8679921383154817045, guid: 714a27c3372b8074d8370e2bc0cecf56, type: 3} propertyPath: m_LocalScale.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 714a27c3372b8074d8370e2bc0cecf56, - type: 3} + - target: {fileID: -8679921383154817045, guid: 714a27c3372b8074d8370e2bc0cecf56, type: 3} propertyPath: m_LocalScale.z value: 0.5 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 714a27c3372b8074d8370e2bc0cecf56, - type: 3} + - target: {fileID: -8679921383154817045, guid: 714a27c3372b8074d8370e2bc0cecf56, type: 3} propertyPath: m_LocalPosition.x value: 0.004 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 714a27c3372b8074d8370e2bc0cecf56, - type: 3} + - target: {fileID: -8679921383154817045, guid: 714a27c3372b8074d8370e2bc0cecf56, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 714a27c3372b8074d8370e2bc0cecf56, - type: 3} + - target: {fileID: -8679921383154817045, guid: 714a27c3372b8074d8370e2bc0cecf56, type: 3} propertyPath: m_LocalPosition.z value: 0.005 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 714a27c3372b8074d8370e2bc0cecf56, - type: 3} + - target: {fileID: -8679921383154817045, guid: 714a27c3372b8074d8370e2bc0cecf56, type: 3} propertyPath: m_LocalRotation.w value: 0.9999985 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 714a27c3372b8074d8370e2bc0cecf56, - type: 3} + - target: {fileID: -8679921383154817045, guid: 714a27c3372b8074d8370e2bc0cecf56, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 714a27c3372b8074d8370e2bc0cecf56, - type: 3} + - target: {fileID: -8679921383154817045, guid: 714a27c3372b8074d8370e2bc0cecf56, type: 3} propertyPath: m_LocalRotation.y value: 0.0017452955 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 714a27c3372b8074d8370e2bc0cecf56, - type: 3} + - target: {fileID: -8679921383154817045, guid: 714a27c3372b8074d8370e2bc0cecf56, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 714a27c3372b8074d8370e2bc0cecf56, - type: 3} + - target: {fileID: -8679921383154817045, guid: 714a27c3372b8074d8370e2bc0cecf56, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 714a27c3372b8074d8370e2bc0cecf56, - type: 3} + - target: {fileID: -8679921383154817045, guid: 714a27c3372b8074d8370e2bc0cecf56, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0.2 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 714a27c3372b8074d8370e2bc0cecf56, - type: 3} + - target: {fileID: -8679921383154817045, guid: 714a27c3372b8074d8370e2bc0cecf56, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 714a27c3372b8074d8370e2bc0cecf56, - type: 3} + - target: {fileID: -8679921383154817045, guid: 714a27c3372b8074d8370e2bc0cecf56, type: 3} propertyPath: m_ConstrainProportionsScale value: 1 objectReference: {fileID: 0} - - target: {fileID: 919132149155446097, guid: 714a27c3372b8074d8370e2bc0cecf56, - type: 3} + - target: {fileID: 919132149155446097, guid: 714a27c3372b8074d8370e2bc0cecf56, type: 3} propertyPath: m_Name value: Chess Board Square objectReference: {fileID: 0} m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 714a27c3372b8074d8370e2bc0cecf56, type: 3} --- !u!4 &1636806582 stripped Transform: - m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 714a27c3372b8074d8370e2bc0cecf56, - type: 3} + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 714a27c3372b8074d8370e2bc0cecf56, type: 3} m_PrefabInstance: {fileID: 1636806581} m_PrefabAsset: {fileID: 0} --- !u!1 &1643716049 @@ -6319,6 +5732,7 @@ RectTransform: - {fileID: 1004500091} - {fileID: 331857616} m_Father: {fileID: 929444318} + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -6384,6 +5798,7 @@ RectTransform: - {fileID: 820107587} - {fileID: 2069439979} m_Father: {fileID: 929444318} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -6418,8 +5833,7 @@ MonoBehaviour: m_ReverseArrangement: 0 --- !u!4 &1648686084 stripped Transform: - m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 171affcd2d7ddf545ae966acd2de57c2, - type: 3} + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 171affcd2d7ddf545ae966acd2de57c2, type: 3} m_PrefabInstance: {fileID: 691032629} m_PrefabAsset: {fileID: 0} --- !u!1 &1675184741 @@ -6453,6 +5867,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1459892945} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -6529,6 +5944,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2105827454} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: -15, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -6632,6 +6048,7 @@ RectTransform: - {fileID: 702756937} - {fileID: 975642590} m_Father: {fileID: 2105827454} + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -6669,6 +6086,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 992345761} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -6744,6 +6162,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1961794668} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} @@ -6794,14 +6213,12 @@ CanvasRenderer: m_CullTransparentMesh: 1 --- !u!4 &1765827126 stripped Transform: - m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 365907f61b8b39a48aab9aacd4588f45, - type: 3} + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 365907f61b8b39a48aab9aacd4588f45, type: 3} m_PrefabInstance: {fileID: 496326443} m_PrefabAsset: {fileID: 0} --- !u!114 &1784880961 stripped MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 7729528788630165396, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + m_CorrespondingSourceObject: {fileID: 7729528788630165396, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} m_PrefabInstance: {fileID: 6183026901525796732} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 0} @@ -6842,6 +6259,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1109639964} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: -15, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -6908,8 +6326,7 @@ CanvasRenderer: m_CullTransparentMesh: 0 --- !u!114 &1879067437 stripped MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 8535804950626849423, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + m_CorrespondingSourceObject: {fileID: 8535804950626849423, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} m_PrefabInstance: {fileID: 6183026901525796732} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 0} @@ -6953,6 +6370,7 @@ RectTransform: - {fileID: 1895556602} - {fileID: 364340073} m_Father: {fileID: 1120256391} + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} @@ -7048,6 +6466,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1887197406} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 1, y: 1} @@ -7125,6 +6544,7 @@ RectTransform: - {fileID: 1542318348} - {fileID: 170632161} m_Father: {fileID: 929444318} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -7162,108 +6582,77 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - serializedVersion: 3 m_TransformParent: {fileID: 1129778166} m_Modifications: - - target: {fileID: 1988286665728152634, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} - propertyPath: m_PermittedDisplacementAxes - value: -1 - objectReference: {fileID: 0} - - target: {fileID: 2603633290551499573, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} - propertyPath: m_Materials.Array.data[0] - value: - objectReference: {fileID: 2100000, guid: a05114129e33f6a4ebf59935affa0661, type: 2} - - target: {fileID: 5268460675038366902, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 5268460675038366902, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_Name - value: Cube (Yellow) + value: Cube 3 objectReference: {fileID: 0} - - target: {fileID: 8715892259302707255, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 8715892259302707255, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalScale.x value: 13.5 objectReference: {fileID: 0} - - target: {fileID: 8715892259302707255, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 8715892259302707255, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalScale.y value: 13.5 objectReference: {fileID: 0} - - target: {fileID: 8715892259302707255, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 8715892259302707255, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalScale.z value: 13.5 objectReference: {fileID: 0} - - target: {fileID: 8715892259302707255, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 8715892259302707255, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_ConstrainProportionsScale value: 1 objectReference: {fileID: 0} - - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_RootOrder value: 2 objectReference: {fileID: 0} - - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalPosition.x value: 0.080486774 objectReference: {fileID: 0} - - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalPosition.y value: 0.105406225 objectReference: {fileID: 0} - - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalPosition.z value: 0.05591418 objectReference: {fileID: 0} - - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalRotation.w value: 0.43192205 objectReference: {fileID: 0} - - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalRotation.x value: 0.45761725 objectReference: {fileID: 0} - - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalRotation.y value: 0.75258726 objectReference: {fileID: 0} - - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalRotation.z value: 0.19401608 objectReference: {fileID: 0} - - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 18.713 objectReference: {fileID: 0} - - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} --- !u!4 &1935852348 stripped Transform: - m_CorrespondingSourceObject: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + m_CorrespondingSourceObject: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} m_PrefabInstance: {fileID: 1935852347} m_PrefabAsset: {fileID: 0} --- !u!1 &1943824116 @@ -7301,6 +6690,7 @@ RectTransform: - {fileID: 1633600915} - {fileID: 812076692} m_Father: {fileID: 187460343} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} @@ -7367,15 +6757,8 @@ CanvasRenderer: m_CullTransparentMesh: 0 --- !u!20 &1948693200 stripped Camera: - m_CorrespondingSourceObject: {fileID: 7990873191231833673, guid: 5eccbf4be2c00e94689ee8062e4e7276, - type: 3} - m_PrefabInstance: {fileID: 3113582726696116334} - m_PrefabAsset: {fileID: 0} ---- !u!4 &1949637319 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 5030734267259534325, guid: e2698219e3231e94c8765d49b9dd5cff, - type: 3} - m_PrefabInstance: {fileID: 611616339} + m_CorrespondingSourceObject: {fileID: 657184242118504724, guid: d6878e1999eb4b44a9f5a263af86c185, type: 3} + m_PrefabInstance: {fileID: 5534409079552104243} m_PrefabAsset: {fileID: 0} --- !u!1 &1961794667 GameObject: @@ -7409,6 +6792,7 @@ RectTransform: m_Children: - {fileID: 1746021765} m_Father: {fileID: 797091100} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -7455,9 +6839,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 m_AdditionalShaderChannelsFlag: 25 - m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 m_SortingOrder: 1 m_TargetDisplay: 0 @@ -7484,7 +6866,6 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1972783597} - serializedVersion: 2 m_LocalRotation: {x: -0, y: 0.309017, z: -0, w: 0.95105654} m_LocalPosition: {x: 0, y: 0, z: -0.25} m_LocalScale: {x: 1, y: 1, z: 1} @@ -7495,6 +6876,7 @@ Transform: - {fileID: 5006512735865308539} - {fileID: 1129778166} m_Father: {fileID: 1434975003} + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 36, z: 0} --- !u!1 &1985586551 GameObject: @@ -7519,7 +6901,6 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1985586551} - serializedVersion: 2 m_LocalRotation: {x: -0, y: 0.13052616, z: -0, w: 0.9914449} m_LocalPosition: {x: 0.0379, y: -0.008099973, z: -0.0849} m_LocalScale: {x: 1, y: 1, z: 1} @@ -7529,6 +6910,7 @@ Transform: - {fileID: 1159150007} - {fileID: 5765833378047162190} m_Father: {fileID: 1576716364} + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 15, z: 0} --- !u!1 &2011190208 GameObject: @@ -7563,6 +6945,7 @@ RectTransform: - {fileID: 375196259} - {fileID: 293575450} m_Father: {fileID: 361856895} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -7626,6 +7009,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1726903308} + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} @@ -7701,6 +7085,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 246682137} + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} @@ -7753,8 +7138,7 @@ CanvasRenderer: m_CullTransparentMesh: 1 --- !u!4 &2063322578 stripped Transform: - m_CorrespondingSourceObject: {fileID: 2130331530761912220, guid: d661f645c81f29b4aa596207971ae441, - type: 3} + m_CorrespondingSourceObject: {fileID: 2130331530761912220, guid: d661f645c81f29b4aa596207971ae441, type: 3} m_PrefabInstance: {fileID: 2130331532795802190} m_PrefabAsset: {fileID: 0} --- !u!1001 &2069439978 @@ -7762,173 +7146,137 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - serializedVersion: 3 m_TransformParent: {fileID: 1648550613} m_Modifications: - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Pivot.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Pivot.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_RootOrder value: 2 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMax.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMax.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMin.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMin.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_SizeDelta.x value: 60 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_SizeDelta.y value: 60 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.x value: -0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.y value: -0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596673, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596673, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Name value: TouchPad Button 3 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size value: 1 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode value: 6 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target value: objectReference: {fileID: 501676794} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState value: 2 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName value: set_isOn objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName value: UnityEngine.UI.Toggle, UnityEngine.UI objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_BoolArgument value: 1 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName value: UnityEngine.Object, UnityEngine objectReference: {fileID: 0} - - target: {fileID: 4455438663099779001, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438663099779001, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Text value: 3 objectReference: {fileID: 0} m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: b0c78422845bac948a9080175e57ffff, type: 3} --- !u!224 &2069439979 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + m_CorrespondingSourceObject: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} m_PrefabInstance: {fileID: 2069439978} m_PrefabAsset: {fileID: 0} --- !u!1 &2105799743 @@ -7967,6 +7315,7 @@ RectTransform: - {fileID: 323906123} - {fileID: 9821839} m_Father: {fileID: 1337396801} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 15, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -8049,9 +7398,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 m_AdditionalShaderChannelsFlag: 25 - m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 m_SortingOrder: 1 m_TargetDisplay: 0 @@ -8093,6 +7440,7 @@ RectTransform: - {fileID: 246682137} - {fileID: 1726903308} m_Father: {fileID: 797091100} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 15, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -8175,9 +7523,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 m_AdditionalShaderChannelsFlag: 25 - m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 m_SortingOrder: 1 m_TargetDisplay: 0 @@ -8186,173 +7532,137 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - serializedVersion: 3 m_TransformParent: {fileID: 1930256998} m_Modifications: - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Pivot.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Pivot.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_RootOrder value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMax.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMax.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMin.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchorMin.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_SizeDelta.x value: 60 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_SizeDelta.y value: 60 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.x value: -0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.y value: -0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596673, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596673, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Name value: TouchPad Button 4 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size value: 1 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode value: 6 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target value: objectReference: {fileID: 1879067437} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState value: 2 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName value: set_isOn objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName value: UnityEngine.UI.Toggle, UnityEngine.UI objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_BoolArgument value: 1 objectReference: {fileID: 0} - - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438662752596683, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName value: UnityEngine.Object, UnityEngine objectReference: {fileID: 0} - - target: {fileID: 4455438663099779001, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + - target: {fileID: 4455438663099779001, guid: b0c78422845bac948a9080175e57ffff, type: 3} propertyPath: m_Text value: 4 objectReference: {fileID: 0} m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: b0c78422845bac948a9080175e57ffff, type: 3} --- !u!224 &2113631881 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, - type: 3} + m_CorrespondingSourceObject: {fileID: 4455438662752596672, guid: b0c78422845bac948a9080175e57ffff, type: 3} m_PrefabInstance: {fileID: 2113631880} m_PrefabAsset: {fileID: 0} --- !u!1001 &65600831110779464 @@ -8360,471 +7670,368 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - serializedVersion: 3 m_TransformParent: {fileID: 1972783598} m_Modifications: - - target: {fileID: 5013556786019211059, guid: d56cf1aacbea4704cac4d7983df1a0ad, - type: 3} + - target: {fileID: 5013556786019211059, guid: d56cf1aacbea4704cac4d7983df1a0ad, type: 3} propertyPath: m_RootOrder value: 2 objectReference: {fileID: 0} - - target: {fileID: 5013556786019211059, guid: d56cf1aacbea4704cac4d7983df1a0ad, - type: 3} + - target: {fileID: 5013556786019211059, guid: d56cf1aacbea4704cac4d7983df1a0ad, type: 3} propertyPath: m_LocalPosition.x value: -0.091 objectReference: {fileID: 0} - - target: {fileID: 5013556786019211059, guid: d56cf1aacbea4704cac4d7983df1a0ad, - type: 3} + - target: {fileID: 5013556786019211059, guid: d56cf1aacbea4704cac4d7983df1a0ad, type: 3} propertyPath: m_LocalPosition.y value: 1.091 objectReference: {fileID: 0} - - target: {fileID: 5013556786019211059, guid: d56cf1aacbea4704cac4d7983df1a0ad, - type: 3} + - target: {fileID: 5013556786019211059, guid: d56cf1aacbea4704cac4d7983df1a0ad, type: 3} propertyPath: m_LocalPosition.z value: 0.643 objectReference: {fileID: 0} - - target: {fileID: 5013556786019211059, guid: d56cf1aacbea4704cac4d7983df1a0ad, - type: 3} + - target: {fileID: 5013556786019211059, guid: d56cf1aacbea4704cac4d7983df1a0ad, type: 3} propertyPath: m_LocalRotation.w value: 0.70105743 objectReference: {fileID: 0} - - target: {fileID: 5013556786019211059, guid: d56cf1aacbea4704cac4d7983df1a0ad, - type: 3} + - target: {fileID: 5013556786019211059, guid: d56cf1aacbea4704cac4d7983df1a0ad, type: 3} propertyPath: m_LocalRotation.x value: 0.09229594 objectReference: {fileID: 0} - - target: {fileID: 5013556786019211059, guid: d56cf1aacbea4704cac4d7983df1a0ad, - type: 3} + - target: {fileID: 5013556786019211059, guid: d56cf1aacbea4704cac4d7983df1a0ad, type: 3} propertyPath: m_LocalRotation.y value: -0.09229592 objectReference: {fileID: 0} - - target: {fileID: 5013556786019211059, guid: d56cf1aacbea4704cac4d7983df1a0ad, - type: 3} + - target: {fileID: 5013556786019211059, guid: d56cf1aacbea4704cac4d7983df1a0ad, type: 3} propertyPath: m_LocalRotation.z value: 0.70105743 objectReference: {fileID: 0} - - target: {fileID: 5013556786019211059, guid: d56cf1aacbea4704cac4d7983df1a0ad, - type: 3} + - target: {fileID: 5013556786019211059, guid: d56cf1aacbea4704cac4d7983df1a0ad, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 5013556786019211059, guid: d56cf1aacbea4704cac4d7983df1a0ad, - type: 3} + - target: {fileID: 5013556786019211059, guid: d56cf1aacbea4704cac4d7983df1a0ad, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 5013556786019211059, guid: d56cf1aacbea4704cac4d7983df1a0ad, - type: 3} + - target: {fileID: 5013556786019211059, guid: d56cf1aacbea4704cac4d7983df1a0ad, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 90 objectReference: {fileID: 0} - - target: {fileID: 8343167407413159200, guid: d56cf1aacbea4704cac4d7983df1a0ad, - type: 3} + - target: {fileID: 8343167407413159200, guid: d56cf1aacbea4704cac4d7983df1a0ad, type: 3} propertyPath: m_Name value: Arrow objectReference: {fileID: 0} m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: d56cf1aacbea4704cac4d7983df1a0ad, type: 3} --- !u!1001 &195190421004440613 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - serializedVersion: 3 m_TransformParent: {fileID: 1726903308} m_Modifications: - - target: {fileID: 195190420563360905, guid: 6a448845c7017044e8a9f3d711cfe825, - type: 3} + - target: {fileID: 195190420563360905, guid: 6a448845c7017044e8a9f3d711cfe825, type: 3} propertyPath: onValueChanged.m_PersistentCalls.m_Calls.Array.size value: 0 objectReference: {fileID: 0} - - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, - type: 3} + - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, type: 3} propertyPath: m_Pivot.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, - type: 3} + - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, type: 3} propertyPath: m_Pivot.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, - type: 3} + - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, type: 3} propertyPath: m_RootOrder value: 7 objectReference: {fileID: 0} - - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, - type: 3} + - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, type: 3} propertyPath: m_AnchorMax.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, - type: 3} + - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, type: 3} propertyPath: m_AnchorMax.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, - type: 3} + - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, type: 3} propertyPath: m_AnchorMin.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, - type: 3} + - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, type: 3} propertyPath: m_AnchorMin.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, - type: 3} + - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, type: 3} propertyPath: m_SizeDelta.x value: 170 objectReference: {fileID: 0} - - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, - type: 3} + - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, type: 3} propertyPath: m_SizeDelta.y value: 60 objectReference: {fileID: 0} - - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, - type: 3} + - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, - type: 3} + - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, - type: 3} + - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, type: 3} propertyPath: m_LocalPosition.z value: 20 objectReference: {fileID: 0} - - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, - type: 3} + - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, - type: 3} + - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, type: 3} propertyPath: m_LocalRotation.x value: -0 objectReference: {fileID: 0} - - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, - type: 3} + - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, type: 3} propertyPath: m_LocalRotation.y value: -0 objectReference: {fileID: 0} - - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, - type: 3} + - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, - type: 3} + - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, type: 3} propertyPath: m_AnchoredPosition.x value: -29.99997 objectReference: {fileID: 0} - - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, - type: 3} + - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, type: 3} propertyPath: m_AnchoredPosition.y value: -19.99998 objectReference: {fileID: 0} - - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, - type: 3} + - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, - type: 3} + - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, - type: 3} + - target: {fileID: 195190420563360910, guid: 6a448845c7017044e8a9f3d711cfe825, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 195190420563360911, guid: 6a448845c7017044e8a9f3d711cfe825, - type: 3} + - target: {fileID: 195190420563360911, guid: 6a448845c7017044e8a9f3d711cfe825, type: 3} propertyPath: m_Name value: Text Toggle objectReference: {fileID: 0} - - target: {fileID: 195190420563360911, guid: 6a448845c7017044e8a9f3d711cfe825, - type: 3} + - target: {fileID: 195190420563360911, guid: 6a448845c7017044e8a9f3d711cfe825, type: 3} propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 195190420563360911, guid: 6a448845c7017044e8a9f3d711cfe825, - type: 3} - insertIndex: -1 - addedObject: {fileID: 448506032} m_SourcePrefab: {fileID: 100100000, guid: 6a448845c7017044e8a9f3d711cfe825, type: 3} --- !u!1001 &1004097911546261873 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - serializedVersion: 3 m_TransformParent: {fileID: 1726903308} m_Modifications: - - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, - type: 3} + - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, type: 3} propertyPath: m_Pivot.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, - type: 3} + - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, type: 3} propertyPath: m_Pivot.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, - type: 3} + - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, type: 3} propertyPath: m_RootOrder value: 6 objectReference: {fileID: 0} - - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, - type: 3} + - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, type: 3} propertyPath: m_AnchorMax.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, - type: 3} + - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, type: 3} propertyPath: m_AnchorMax.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, - type: 3} + - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, type: 3} propertyPath: m_AnchorMin.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, - type: 3} + - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, type: 3} propertyPath: m_AnchorMin.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, - type: 3} + - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, type: 3} propertyPath: m_SizeDelta.x value: 60 objectReference: {fileID: 0} - - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, - type: 3} + - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, type: 3} propertyPath: m_SizeDelta.y value: 60 objectReference: {fileID: 0} - - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, - type: 3} + - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, - type: 3} + - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, - type: 3} + - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, type: 3} propertyPath: m_LocalPosition.z value: 20 objectReference: {fileID: 0} - - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, - type: 3} + - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, - type: 3} + - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, type: 3} propertyPath: m_LocalRotation.x value: -0 objectReference: {fileID: 0} - - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, - type: 3} + - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, type: 3} propertyPath: m_LocalRotation.y value: -0 objectReference: {fileID: 0} - - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, - type: 3} + - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, - type: 3} + - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, type: 3} propertyPath: m_AnchoredPosition.x value: 169.99992 objectReference: {fileID: 0} - - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, - type: 3} + - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, type: 3} propertyPath: m_AnchoredPosition.y value: 70.00003 objectReference: {fileID: 0} - - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, - type: 3} + - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, - type: 3} + - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, - type: 3} + - target: {fileID: 1004097911450439916, guid: 56686f82f64b0af4688a89676403a500, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 1004097911450439917, guid: 56686f82f64b0af4688a89676403a500, - type: 3} + - target: {fileID: 1004097911450439917, guid: 56686f82f64b0af4688a89676403a500, type: 3} propertyPath: m_Name value: Icon Button objectReference: {fileID: 0} - - target: {fileID: 1004097911450439917, guid: 56686f82f64b0af4688a89676403a500, - type: 3} + - target: {fileID: 1004097911450439917, guid: 56686f82f64b0af4688a89676403a500, type: 3} propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 56686f82f64b0af4688a89676403a500, type: 3} --- !u!1001 &2005650193314499417 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - serializedVersion: 3 m_TransformParent: {fileID: 1726903308} m_Modifications: - - target: {fileID: 5289182684458692540, guid: e5db301629853dd4a99835fa70099d79, - type: 3} + - target: {fileID: 5289182684458692540, guid: e5db301629853dd4a99835fa70099d79, type: 3} propertyPath: m_Name value: TextButton objectReference: {fileID: 0} - - target: {fileID: 5289182684458692540, guid: e5db301629853dd4a99835fa70099d79, - type: 3} + - target: {fileID: 5289182684458692540, guid: e5db301629853dd4a99835fa70099d79, type: 3} propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} - - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, - type: 3} + - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, type: 3} propertyPath: m_Pivot.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, - type: 3} + - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, type: 3} propertyPath: m_Pivot.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, - type: 3} + - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, type: 3} propertyPath: m_RootOrder value: 5 objectReference: {fileID: 0} - - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, - type: 3} + - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, type: 3} propertyPath: m_AnchorMax.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, - type: 3} + - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, type: 3} propertyPath: m_AnchorMax.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, - type: 3} + - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, type: 3} propertyPath: m_AnchorMin.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, - type: 3} + - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, type: 3} propertyPath: m_AnchorMin.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, - type: 3} + - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, type: 3} propertyPath: m_SizeDelta.x value: 170 objectReference: {fileID: 0} - - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, - type: 3} + - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, type: 3} propertyPath: m_SizeDelta.y value: 70 objectReference: {fileID: 0} - - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, - type: 3} + - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, - type: 3} + - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, - type: 3} + - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, type: 3} propertyPath: m_LocalPosition.z value: 20 objectReference: {fileID: 0} - - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, - type: 3} + - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, - type: 3} + - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, type: 3} propertyPath: m_LocalRotation.x value: -0 objectReference: {fileID: 0} - - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, - type: 3} + - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, type: 3} propertyPath: m_LocalRotation.y value: -0 objectReference: {fileID: 0} - - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, - type: 3} + - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, - type: 3} + - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, type: 3} propertyPath: m_AnchoredPosition.x value: 5 objectReference: {fileID: 0} - - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, - type: 3} + - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, type: 3} propertyPath: m_AnchoredPosition.y value: 90 objectReference: {fileID: 0} - - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, - type: 3} + - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, - type: 3} + - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, - type: 3} + - target: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: e5db301629853dd4a99835fa70099d79, type: 3} --- !u!224 &2005650193314499418 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, - type: 3} + m_CorrespondingSourceObject: {fileID: 5289182684458692541, guid: e5db301629853dd4a99835fa70099d79, type: 3} m_PrefabInstance: {fileID: 2005650193314499417} m_PrefabAsset: {fileID: 0} --- !u!1001 &2130331532795802190 @@ -8832,200 +8039,81 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - serializedVersion: 3 m_TransformParent: {fileID: 797091100} m_Modifications: - - target: {fileID: 2130331530761912218, guid: d661f645c81f29b4aa596207971ae441, - type: 3} + - target: {fileID: 2130331530761912218, guid: d661f645c81f29b4aa596207971ae441, type: 3} propertyPath: m_InteractionManager value: objectReference: {fileID: 7578513822832117758} - - target: {fileID: 2130331530761912220, guid: d661f645c81f29b4aa596207971ae441, - type: 3} + - target: {fileID: 2130331530761912220, guid: d661f645c81f29b4aa596207971ae441, type: 3} propertyPath: m_RootOrder value: 2 objectReference: {fileID: 0} - - target: {fileID: 2130331530761912220, guid: d661f645c81f29b4aa596207971ae441, - type: 3} + - target: {fileID: 2130331530761912220, guid: d661f645c81f29b4aa596207971ae441, type: 3} propertyPath: m_LocalPosition.x value: -0 objectReference: {fileID: 0} - - target: {fileID: 2130331530761912220, guid: d661f645c81f29b4aa596207971ae441, - type: 3} + - target: {fileID: 2130331530761912220, guid: d661f645c81f29b4aa596207971ae441, type: 3} propertyPath: m_LocalPosition.y value: 0.7577 objectReference: {fileID: 0} - - target: {fileID: 2130331530761912220, guid: d661f645c81f29b4aa596207971ae441, - type: 3} + - target: {fileID: 2130331530761912220, guid: d661f645c81f29b4aa596207971ae441, type: 3} propertyPath: m_LocalPosition.z value: 0.5693 objectReference: {fileID: 0} - - target: {fileID: 2130331530761912220, guid: d661f645c81f29b4aa596207971ae441, - type: 3} + - target: {fileID: 2130331530761912220, guid: d661f645c81f29b4aa596207971ae441, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 2130331530761912220, guid: d661f645c81f29b4aa596207971ae441, - type: 3} + - target: {fileID: 2130331530761912220, guid: d661f645c81f29b4aa596207971ae441, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2130331530761912220, guid: d661f645c81f29b4aa596207971ae441, - type: 3} + - target: {fileID: 2130331530761912220, guid: d661f645c81f29b4aa596207971ae441, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2130331530761912220, guid: d661f645c81f29b4aa596207971ae441, - type: 3} + - target: {fileID: 2130331530761912220, guid: d661f645c81f29b4aa596207971ae441, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 2130331530761912220, guid: d661f645c81f29b4aa596207971ae441, - type: 3} + - target: {fileID: 2130331530761912220, guid: d661f645c81f29b4aa596207971ae441, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2130331530761912220, guid: d661f645c81f29b4aa596207971ae441, - type: 3} + - target: {fileID: 2130331530761912220, guid: d661f645c81f29b4aa596207971ae441, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2130331530761912220, guid: d661f645c81f29b4aa596207971ae441, - type: 3} + - target: {fileID: 2130331530761912220, guid: d661f645c81f29b4aa596207971ae441, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 2130331530761912223, guid: d661f645c81f29b4aa596207971ae441, - type: 3} + - target: {fileID: 2130331530761912223, guid: d661f645c81f29b4aa596207971ae441, type: 3} propertyPath: m_Name value: PokeButton objectReference: {fileID: 0} - - target: {fileID: 2130331530761912223, guid: d661f645c81f29b4aa596207971ae441, - type: 3} + - target: {fileID: 2130331530761912223, guid: d661f645c81f29b4aa596207971ae441, type: 3} propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} - - target: {fileID: 2130331532155778801, guid: d661f645c81f29b4aa596207971ae441, - type: 3} + - target: {fileID: 2130331532155778801, guid: d661f645c81f29b4aa596207971ae441, type: 3} propertyPath: m_LocalPosition.x value: -0.00000008940697 objectReference: {fileID: 0} - - target: {fileID: 2130331532155778801, guid: d661f645c81f29b4aa596207971ae441, - type: 3} + - target: {fileID: 2130331532155778801, guid: d661f645c81f29b4aa596207971ae441, type: 3} propertyPath: m_LocalPosition.y value: -0.01969999 objectReference: {fileID: 0} - - target: {fileID: 2130331532155778801, guid: d661f645c81f29b4aa596207971ae441, - type: 3} + - target: {fileID: 2130331532155778801, guid: d661f645c81f29b4aa596207971ae441, type: 3} propertyPath: m_LocalPosition.z value: 0.00000011920929 objectReference: {fileID: 0} m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: d661f645c81f29b4aa596207971ae441, type: 3} ---- !u!1001 &3113582726696116334 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 865075385244835223, guid: 5eccbf4be2c00e94689ee8062e4e7276, - type: 3} - propertyPath: m_Name - value: XR Interaction Hands Setup - objectReference: {fileID: 0} - - target: {fileID: 1942626908999483018, guid: 5eccbf4be2c00e94689ee8062e4e7276, - type: 3} - propertyPath: m_LocalScale.x - value: 1.5 - objectReference: {fileID: 0} - - target: {fileID: 1942626908999483018, guid: 5eccbf4be2c00e94689ee8062e4e7276, - type: 3} - propertyPath: m_LocalScale.y - value: 1.5 - objectReference: {fileID: 0} - - target: {fileID: 1942626908999483018, guid: 5eccbf4be2c00e94689ee8062e4e7276, - type: 3} - propertyPath: m_LocalScale.z - value: 1.5 - objectReference: {fileID: 0} - - target: {fileID: 5773256366622995465, guid: 5eccbf4be2c00e94689ee8062e4e7276, - type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5773256366622995465, guid: 5eccbf4be2c00e94689ee8062e4e7276, - type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5773256366622995465, guid: 5eccbf4be2c00e94689ee8062e4e7276, - type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5773256366622995465, guid: 5eccbf4be2c00e94689ee8062e4e7276, - type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5773256366622995465, guid: 5eccbf4be2c00e94689ee8062e4e7276, - type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5773256366622995465, guid: 5eccbf4be2c00e94689ee8062e4e7276, - type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5773256366622995465, guid: 5eccbf4be2c00e94689ee8062e4e7276, - type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5773256366622995465, guid: 5eccbf4be2c00e94689ee8062e4e7276, - type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5773256366622995465, guid: 5eccbf4be2c00e94689ee8062e4e7276, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5773256366622995465, guid: 5eccbf4be2c00e94689ee8062e4e7276, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5773256366622995465, guid: 5eccbf4be2c00e94689ee8062e4e7276, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7838028093091575039, guid: 5eccbf4be2c00e94689ee8062e4e7276, - type: 3} - propertyPath: m_UseGravity - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: - - targetCorrespondingSourceObject: {fileID: 7990873191187716717, guid: 5eccbf4be2c00e94689ee8062e4e7276, - type: 3} - insertIndex: -1 - addedObject: {fileID: 1949637319} - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 5eccbf4be2c00e94689ee8062e4e7276, type: 3} --- !u!4 &3154726581514219159 stripped Transform: - m_CorrespondingSourceObject: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + m_CorrespondingSourceObject: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} m_PrefabInstance: {fileID: 6089389884994424882} m_PrefabAsset: {fileID: 0} --- !u!1001 &4330884014604818162 @@ -9033,89 +8121,66 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - serializedVersion: 3 m_TransformParent: {fileID: 1972783598} m_Modifications: - - target: {fileID: 5709307613756117032, guid: 531d9182cdbe93948a57bd87a1e47fdf, - type: 3} + - target: {fileID: 5709307613756117032, guid: 531d9182cdbe93948a57bd87a1e47fdf, type: 3} propertyPath: m_Name value: Cylinder objectReference: {fileID: 0} - - target: {fileID: 5709307613756117039, guid: 531d9182cdbe93948a57bd87a1e47fdf, - type: 3} - propertyPath: m_PermittedDisplacementAxes - value: -1 - objectReference: {fileID: 0} - - target: {fileID: 8746220130012963387, guid: 531d9182cdbe93948a57bd87a1e47fdf, - type: 3} + - target: {fileID: 8746220130012963387, guid: 531d9182cdbe93948a57bd87a1e47fdf, type: 3} propertyPath: m_RootOrder value: 1 objectReference: {fileID: 0} - - target: {fileID: 8746220130012963387, guid: 531d9182cdbe93948a57bd87a1e47fdf, - type: 3} + - target: {fileID: 8746220130012963387, guid: 531d9182cdbe93948a57bd87a1e47fdf, type: 3} propertyPath: m_LocalPosition.x value: 0.09374997 objectReference: {fileID: 0} - - target: {fileID: 8746220130012963387, guid: 531d9182cdbe93948a57bd87a1e47fdf, - type: 3} + - target: {fileID: 8746220130012963387, guid: 531d9182cdbe93948a57bd87a1e47fdf, type: 3} propertyPath: m_LocalPosition.y value: 1.0551852 objectReference: {fileID: 0} - - target: {fileID: 8746220130012963387, guid: 531d9182cdbe93948a57bd87a1e47fdf, - type: 3} + - target: {fileID: 8746220130012963387, guid: 531d9182cdbe93948a57bd87a1e47fdf, type: 3} propertyPath: m_LocalPosition.z value: 0.6330882 objectReference: {fileID: 0} - - target: {fileID: 8746220130012963387, guid: 531d9182cdbe93948a57bd87a1e47fdf, - type: 3} + - target: {fileID: 8746220130012963387, guid: 531d9182cdbe93948a57bd87a1e47fdf, type: 3} propertyPath: m_LocalRotation.w value: 0.95846367 objectReference: {fileID: 0} - - target: {fileID: 8746220130012963387, guid: 531d9182cdbe93948a57bd87a1e47fdf, - type: 3} + - target: {fileID: 8746220130012963387, guid: 531d9182cdbe93948a57bd87a1e47fdf, type: 3} propertyPath: m_LocalRotation.x value: 0.1261841 objectReference: {fileID: 0} - - target: {fileID: 8746220130012963387, guid: 531d9182cdbe93948a57bd87a1e47fdf, - type: 3} + - target: {fileID: 8746220130012963387, guid: 531d9182cdbe93948a57bd87a1e47fdf, type: 3} propertyPath: m_LocalRotation.y value: 0.03338638 objectReference: {fileID: 0} - - target: {fileID: 8746220130012963387, guid: 531d9182cdbe93948a57bd87a1e47fdf, - type: 3} + - target: {fileID: 8746220130012963387, guid: 531d9182cdbe93948a57bd87a1e47fdf, type: 3} propertyPath: m_LocalRotation.z value: -0.25359496 objectReference: {fileID: 0} - - target: {fileID: 8746220130012963387, guid: 531d9182cdbe93948a57bd87a1e47fdf, - type: 3} + - target: {fileID: 8746220130012963387, guid: 531d9182cdbe93948a57bd87a1e47fdf, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 8746220130012963387, guid: 531d9182cdbe93948a57bd87a1e47fdf, - type: 3} + - target: {fileID: 8746220130012963387, guid: 531d9182cdbe93948a57bd87a1e47fdf, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 8746220130012963387, guid: 531d9182cdbe93948a57bd87a1e47fdf, - type: 3} + - target: {fileID: 8746220130012963387, guid: 531d9182cdbe93948a57bd87a1e47fdf, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: -29.64 objectReference: {fileID: 0} m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 531d9182cdbe93948a57bd87a1e47fdf, type: 3} --- !u!4 &5006512735865308539 stripped Transform: - m_CorrespondingSourceObject: {fileID: 5013556786019211059, guid: d56cf1aacbea4704cac4d7983df1a0ad, - type: 3} + m_CorrespondingSourceObject: {fileID: 5013556786019211059, guid: d56cf1aacbea4704cac4d7983df1a0ad, type: 3} m_PrefabInstance: {fileID: 65600831110779464} m_PrefabAsset: {fileID: 0} --- !u!4 &5006512736343635145 stripped Transform: - m_CorrespondingSourceObject: {fileID: 8746220130012963387, guid: 531d9182cdbe93948a57bd87a1e47fdf, - type: 3} + m_CorrespondingSourceObject: {fileID: 8746220130012963387, guid: 531d9182cdbe93948a57bd87a1e47fdf, type: 3} m_PrefabInstance: {fileID: 4330884014604818162} m_PrefabAsset: {fileID: 0} --- !u!1001 &5509715586133197775 @@ -9123,230 +8188,239 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - serializedVersion: 3 m_TransformParent: {fileID: 1985586552} m_Modifications: - - target: {fileID: 2049748930621633664, guid: 6b7188f9e149bd64cb26cec516eb470c, - type: 3} + - target: {fileID: 2049748930621633664, guid: 6b7188f9e149bd64cb26cec516eb470c, type: 3} propertyPath: m_Name value: FlatSphereController objectReference: {fileID: 0} - - target: {fileID: 2049748930621633665, guid: 6b7188f9e149bd64cb26cec516eb470c, - type: 3} + - target: {fileID: 2049748930621633665, guid: 6b7188f9e149bd64cb26cec516eb470c, type: 3} propertyPath: m_RootOrder value: 2 objectReference: {fileID: 0} - - target: {fileID: 2049748930621633665, guid: 6b7188f9e149bd64cb26cec516eb470c, - type: 3} + - target: {fileID: 2049748930621633665, guid: 6b7188f9e149bd64cb26cec516eb470c, type: 3} propertyPath: m_LocalPosition.x value: 0.0642 objectReference: {fileID: 0} - - target: {fileID: 2049748930621633665, guid: 6b7188f9e149bd64cb26cec516eb470c, - type: 3} + - target: {fileID: 2049748930621633665, guid: 6b7188f9e149bd64cb26cec516eb470c, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2049748930621633665, guid: 6b7188f9e149bd64cb26cec516eb470c, - type: 3} + - target: {fileID: 2049748930621633665, guid: 6b7188f9e149bd64cb26cec516eb470c, type: 3} propertyPath: m_LocalPosition.z value: -0.0584 objectReference: {fileID: 0} - - target: {fileID: 2049748930621633665, guid: 6b7188f9e149bd64cb26cec516eb470c, - type: 3} + - target: {fileID: 2049748930621633665, guid: 6b7188f9e149bd64cb26cec516eb470c, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 2049748930621633665, guid: 6b7188f9e149bd64cb26cec516eb470c, - type: 3} + - target: {fileID: 2049748930621633665, guid: 6b7188f9e149bd64cb26cec516eb470c, type: 3} propertyPath: m_LocalRotation.x value: -0 objectReference: {fileID: 0} - - target: {fileID: 2049748930621633665, guid: 6b7188f9e149bd64cb26cec516eb470c, - type: 3} + - target: {fileID: 2049748930621633665, guid: 6b7188f9e149bd64cb26cec516eb470c, type: 3} propertyPath: m_LocalRotation.y value: -0 objectReference: {fileID: 0} - - target: {fileID: 2049748930621633665, guid: 6b7188f9e149bd64cb26cec516eb470c, - type: 3} + - target: {fileID: 2049748930621633665, guid: 6b7188f9e149bd64cb26cec516eb470c, type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - - target: {fileID: 2049748930621633665, guid: 6b7188f9e149bd64cb26cec516eb470c, - type: 3} + - target: {fileID: 2049748930621633665, guid: 6b7188f9e149bd64cb26cec516eb470c, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2049748930621633665, guid: 6b7188f9e149bd64cb26cec516eb470c, - type: 3} + - target: {fileID: 2049748930621633665, guid: 6b7188f9e149bd64cb26cec516eb470c, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2049748930621633665, guid: 6b7188f9e149bd64cb26cec516eb470c, - type: 3} + - target: {fileID: 2049748930621633665, guid: 6b7188f9e149bd64cb26cec516eb470c, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 6b7188f9e149bd64cb26cec516eb470c, type: 3} +--- !u!1001 &5534409079552104243 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 810019319561094050, guid: d6878e1999eb4b44a9f5a263af86c185, type: 3} + propertyPath: m_UseGravity + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2218496723442559053, guid: d6878e1999eb4b44a9f5a263af86c185, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2218496723442559053, guid: d6878e1999eb4b44a9f5a263af86c185, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2218496723442559053, guid: d6878e1999eb4b44a9f5a263af86c185, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2218496723442559053, guid: d6878e1999eb4b44a9f5a263af86c185, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2218496723442559053, guid: d6878e1999eb4b44a9f5a263af86c185, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2218496723442559053, guid: d6878e1999eb4b44a9f5a263af86c185, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2218496723442559053, guid: d6878e1999eb4b44a9f5a263af86c185, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2218496723442559053, guid: d6878e1999eb4b44a9f5a263af86c185, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2218496723442559053, guid: d6878e1999eb4b44a9f5a263af86c185, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2218496723442559053, guid: d6878e1999eb4b44a9f5a263af86c185, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2218496723442559053, guid: d6878e1999eb4b44a9f5a263af86c185, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2218496723442559054, guid: d6878e1999eb4b44a9f5a263af86c185, type: 3} + propertyPath: m_Name + value: XR Origin (XR Rig) + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d6878e1999eb4b44a9f5a263af86c185, type: 3} --- !u!1001 &5715416335952834191 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - serializedVersion: 3 m_TransformParent: {fileID: 1726903308} m_Modifications: - - target: {fileID: 5715416334889072034, guid: 541ed11e270c6994ca5910042c7e04da, - type: 3} + - target: {fileID: 5715416334889072034, guid: 541ed11e270c6994ca5910042c7e04da, type: 3} propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} - - target: {fileID: 5715416335250216645, guid: 541ed11e270c6994ca5910042c7e04da, - type: 3} + - target: {fileID: 5715416335250216645, guid: 541ed11e270c6994ca5910042c7e04da, type: 3} propertyPath: onValueChanged.m_PersistentCalls.m_Calls.Array.size value: 0 objectReference: {fileID: 0} - - target: {fileID: 5715416335250216645, guid: 541ed11e270c6994ca5910042c7e04da, - type: 3} + - target: {fileID: 5715416335250216645, guid: 541ed11e270c6994ca5910042c7e04da, type: 3} propertyPath: onValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_Target value: objectReference: {fileID: 0} - - target: {fileID: 5715416335250216645, guid: 541ed11e270c6994ca5910042c7e04da, - type: 3} + - target: {fileID: 5715416335250216645, guid: 541ed11e270c6994ca5910042c7e04da, type: 3} propertyPath: onValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName value: objectReference: {fileID: 0} - - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, - type: 3} + - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, type: 3} propertyPath: m_Pivot.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, - type: 3} + - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, type: 3} propertyPath: m_Pivot.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, - type: 3} + - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, type: 3} propertyPath: m_RootOrder value: 8 objectReference: {fileID: 0} - - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, - type: 3} + - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, type: 3} propertyPath: m_AnchorMax.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, - type: 3} + - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, type: 3} propertyPath: m_AnchorMax.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, - type: 3} + - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, type: 3} propertyPath: m_AnchorMin.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, - type: 3} + - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, type: 3} propertyPath: m_AnchorMin.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, - type: 3} + - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, type: 3} propertyPath: m_SizeDelta.x value: 60 objectReference: {fileID: 0} - - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, - type: 3} + - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, type: 3} propertyPath: m_SizeDelta.y value: 60 objectReference: {fileID: 0} - - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, - type: 3} + - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, - type: 3} + - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, - type: 3} + - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, type: 3} propertyPath: m_LocalPosition.z value: 20 objectReference: {fileID: 0} - - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, - type: 3} + - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, - type: 3} + - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, type: 3} propertyPath: m_LocalRotation.x value: -0 objectReference: {fileID: 0} - - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, - type: 3} + - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, type: 3} propertyPath: m_LocalRotation.y value: -0 objectReference: {fileID: 0} - - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, - type: 3} + - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, - type: 3} + - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, type: 3} propertyPath: m_AnchoredPosition.x value: 170 objectReference: {fileID: 0} - - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, - type: 3} + - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, type: 3} propertyPath: m_AnchoredPosition.y value: -19.99998 objectReference: {fileID: 0} - - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, - type: 3} + - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, - type: 3} + - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, - type: 3} + - target: {fileID: 5715416335250216646, guid: 541ed11e270c6994ca5910042c7e04da, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 5715416335250216647, guid: 541ed11e270c6994ca5910042c7e04da, - type: 3} + - target: {fileID: 5715416335250216647, guid: 541ed11e270c6994ca5910042c7e04da, type: 3} propertyPath: m_Name value: Icon Toggle objectReference: {fileID: 0} - - target: {fileID: 5715416335250216647, guid: 541ed11e270c6994ca5910042c7e04da, - type: 3} + - target: {fileID: 5715416335250216647, guid: 541ed11e270c6994ca5910042c7e04da, type: 3} propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 5715416335250216647, guid: 541ed11e270c6994ca5910042c7e04da, - type: 3} - insertIndex: -1 - addedObject: {fileID: 1109258399} m_SourcePrefab: {fileID: 100100000, guid: 541ed11e270c6994ca5910042c7e04da, type: 3} --- !u!4 &5765833378047162190 stripped Transform: - m_CorrespondingSourceObject: {fileID: 2049748930621633665, guid: 6b7188f9e149bd64cb26cec516eb470c, - type: 3} + m_CorrespondingSourceObject: {fileID: 2049748930621633665, guid: 6b7188f9e149bd64cb26cec516eb470c, type: 3} m_PrefabInstance: {fileID: 5509715586133197775} m_PrefabAsset: {fileID: 0} --- !u!1001 &6089389884994424882 @@ -9354,629 +8428,608 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - serializedVersion: 3 m_TransformParent: {fileID: 1129778166} m_Modifications: - - target: {fileID: 1988286665728152634, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} - propertyPath: m_PermittedDisplacementAxes - value: -1 - objectReference: {fileID: 0} - - target: {fileID: 2603633290551499573, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} - propertyPath: m_Materials.Array.data[0] - value: - objectReference: {fileID: 2100000, guid: ef3ba06669db5df45a16a8f9d1003dd3, type: 2} - - target: {fileID: 5268460675038366902, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 5268460675038366902, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_Name - value: Cube (Coral) + value: Cube 1 objectReference: {fileID: 0} - - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_RootOrder value: 0 objectReference: {fileID: 0} - - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalPosition.x value: -0.0045190454 objectReference: {fileID: 0} - - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalPosition.y value: 0.018455446 objectReference: {fileID: 0} - - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalPosition.z value: 0.16146101 objectReference: {fileID: 0} - - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalRotation.w value: 0.47675768 objectReference: {fileID: 0} - - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalRotation.x value: 0.6736901 objectReference: {fileID: 0} - - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalRotation.y value: -0.2520906 objectReference: {fileID: 0} - - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalRotation.z value: 0.5052665 objectReference: {fileID: 0} - - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 116.218 objectReference: {fileID: 0} - - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: -85.48 objectReference: {fileID: 0} - - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, - type: 3} + - target: {fileID: 9171031756790316709, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: -18.765 objectReference: {fileID: 0} m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: f5afcb7f49afad5419049090809f5cc7, type: 3} --- !u!1001 &6183026901525796732 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - serializedVersion: 3 m_TransformParent: {fileID: 1887197406} m_Modifications: - - target: {fileID: 575213516256852194, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 575213516256852194, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMax.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 575213516256852194, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 575213516256852194, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMin.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 575213516256852194, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 575213516256852194, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_SizeDelta.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 575213516256852194, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 575213516256852194, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 575213516256852194, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 575213516256852194, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2459597453263534125, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 2459597453263534125, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMax.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2459597453263534125, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 2459597453263534125, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMin.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 2459597453263534125, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 2459597453263534125, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_SizeDelta.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2459597453263534125, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 2459597453263534125, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 2459597453263534125, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 2459597453263534125, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 3318402603881556472, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 3318402603881556472, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMax.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 3318402603881556472, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 3318402603881556472, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMin.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 3318402603881556472, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 3318402603881556472, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_SizeDelta.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 3318402603881556472, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 3318402603881556472, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 3318402603881556472, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 3318402603881556472, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4545177384989293878, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 4545177384989293878, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMax.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4545177384989293878, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 4545177384989293878, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMin.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4545177384989293878, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 4545177384989293878, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_SizeDelta.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4545177384989293878, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 4545177384989293878, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4545177384989293878, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 4545177384989293878, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6081796599383575975, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6081796599383575975, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMax.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6081796599383575975, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6081796599383575975, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMin.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6081796599383575975, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6081796599383575975, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_SizeDelta.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6081796599383575975, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6081796599383575975, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6081796599383575975, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6081796599383575975, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721044, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721044, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_Name value: Scroll View objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_Pivot.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_Pivot.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_RootOrder value: 2 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMax.x value: 1 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMax.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMin.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMin.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_SizeDelta.x value: -48 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_SizeDelta.y value: -119 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_LocalRotation.x value: -0 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_LocalRotation.y value: -0 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.y value: -35.49995 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026901214721045, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6183026902371939695, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026902371939695, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_SizeDelta.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6183026902669923109, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026902669923109, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMax.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6183026902669923109, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026902669923109, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMax.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6183026902669923109, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6183026902669923109, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMin.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6371800052681497148, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6371800052681497148, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMax.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6371800052681497148, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6371800052681497148, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMin.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6371800052681497148, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6371800052681497148, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_SizeDelta.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6371800052681497148, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6371800052681497148, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6371800052681497148, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 6371800052681497148, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 7050254453680010381, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 7050254453680010381, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMax.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 7050254453680010381, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 7050254453680010381, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMin.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 7050254453680010381, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 7050254453680010381, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_SizeDelta.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 7050254453680010381, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 7050254453680010381, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 7050254453680010381, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 7050254453680010381, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 7115703732978342057, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 7115703732978342057, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMax.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 7115703732978342057, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 7115703732978342057, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMin.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 7115703732978342057, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 7115703732978342057, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_SizeDelta.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 7115703732978342057, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 7115703732978342057, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 7115703732978342057, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 7115703732978342057, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 8774576546710604735, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 8774576546710604735, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMax.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 8774576546710604735, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 8774576546710604735, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchorMin.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 8774576546710604735, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 8774576546710604735, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_SizeDelta.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 8774576546710604735, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 8774576546710604735, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 8774576546710604735, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + - target: {fileID: 8774576546710604735, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} --- !u!1001 &6689389173002939780 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - serializedVersion: 3 m_TransformParent: {fileID: 1985586552} m_Modifications: - - target: {fileID: 6689389171845895218, guid: a5f97d75a3184ad46aef39618607e083, - type: 3} + - target: {fileID: 6689389171845895218, guid: a5f97d75a3184ad46aef39618607e083, type: 3} propertyPath: m_Name value: PawnController objectReference: {fileID: 0} - - target: {fileID: 6689389171845895219, guid: a5f97d75a3184ad46aef39618607e083, - type: 3} + - target: {fileID: 6689389171845895219, guid: a5f97d75a3184ad46aef39618607e083, type: 3} propertyPath: m_RootOrder value: 1 objectReference: {fileID: 0} - - target: {fileID: 6689389171845895219, guid: a5f97d75a3184ad46aef39618607e083, - type: 3} + - target: {fileID: 6689389171845895219, guid: a5f97d75a3184ad46aef39618607e083, type: 3} propertyPath: m_LocalPosition.x value: 0.0649 objectReference: {fileID: 0} - - target: {fileID: 6689389171845895219, guid: a5f97d75a3184ad46aef39618607e083, - type: 3} + - target: {fileID: 6689389171845895219, guid: a5f97d75a3184ad46aef39618607e083, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6689389171845895219, guid: a5f97d75a3184ad46aef39618607e083, - type: 3} + - target: {fileID: 6689389171845895219, guid: a5f97d75a3184ad46aef39618607e083, type: 3} propertyPath: m_LocalPosition.z value: 0.0422 objectReference: {fileID: 0} - - target: {fileID: 6689389171845895219, guid: a5f97d75a3184ad46aef39618607e083, - type: 3} + - target: {fileID: 6689389171845895219, guid: a5f97d75a3184ad46aef39618607e083, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 6689389171845895219, guid: a5f97d75a3184ad46aef39618607e083, - type: 3} + - target: {fileID: 6689389171845895219, guid: a5f97d75a3184ad46aef39618607e083, type: 3} propertyPath: m_LocalRotation.x value: -0 objectReference: {fileID: 0} - - target: {fileID: 6689389171845895219, guid: a5f97d75a3184ad46aef39618607e083, - type: 3} + - target: {fileID: 6689389171845895219, guid: a5f97d75a3184ad46aef39618607e083, type: 3} propertyPath: m_LocalRotation.y value: -0 objectReference: {fileID: 0} - - target: {fileID: 6689389171845895219, guid: a5f97d75a3184ad46aef39618607e083, - type: 3} + - target: {fileID: 6689389171845895219, guid: a5f97d75a3184ad46aef39618607e083, type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - - target: {fileID: 6689389171845895219, guid: a5f97d75a3184ad46aef39618607e083, - type: 3} + - target: {fileID: 6689389171845895219, guid: a5f97d75a3184ad46aef39618607e083, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6689389171845895219, guid: a5f97d75a3184ad46aef39618607e083, - type: 3} + - target: {fileID: 6689389171845895219, guid: a5f97d75a3184ad46aef39618607e083, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6689389171845895219, guid: a5f97d75a3184ad46aef39618607e083, - type: 3} + - target: {fileID: 6689389171845895219, guid: a5f97d75a3184ad46aef39618607e083, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: a5f97d75a3184ad46aef39618607e083, type: 3} --- !u!1001 &7403072357405031663 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - serializedVersion: 3 m_TransformParent: {fileID: 0} m_Modifications: - - target: {fileID: 7403072356416083904, guid: ed5fdb8d3e523e94ca6d8a239d40615a, - type: 3} + - target: {fileID: 7403072356416083904, guid: ed5fdb8d3e523e94ca6d8a239d40615a, type: 3} propertyPath: m_Name value: TableHandle objectReference: {fileID: 0} - - target: {fileID: 7403072356416083929, guid: ed5fdb8d3e523e94ca6d8a239d40615a, - type: 3} - propertyPath: m_PermittedDisplacementAxes - value: -1 - objectReference: {fileID: 0} - - target: {fileID: 7403072356416083930, guid: ed5fdb8d3e523e94ca6d8a239d40615a, - type: 3} + - target: {fileID: 7403072356416083930, guid: ed5fdb8d3e523e94ca6d8a239d40615a, type: 3} propertyPath: m_RootOrder - value: 2 + value: 4 objectReference: {fileID: 0} - - target: {fileID: 7403072356416083930, guid: ed5fdb8d3e523e94ca6d8a239d40615a, - type: 3} + - target: {fileID: 7403072356416083930, guid: ed5fdb8d3e523e94ca6d8a239d40615a, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 7403072356416083930, guid: ed5fdb8d3e523e94ca6d8a239d40615a, - type: 3} + - target: {fileID: 7403072356416083930, guid: ed5fdb8d3e523e94ca6d8a239d40615a, type: 3} propertyPath: m_LocalPosition.y value: 0.65 objectReference: {fileID: 0} - - target: {fileID: 7403072356416083930, guid: ed5fdb8d3e523e94ca6d8a239d40615a, - type: 3} + - target: {fileID: 7403072356416083930, guid: ed5fdb8d3e523e94ca6d8a239d40615a, type: 3} propertyPath: m_LocalPosition.z value: 0.35 objectReference: {fileID: 0} - - target: {fileID: 7403072356416083930, guid: ed5fdb8d3e523e94ca6d8a239d40615a, - type: 3} + - target: {fileID: 7403072356416083930, guid: ed5fdb8d3e523e94ca6d8a239d40615a, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 7403072356416083930, guid: ed5fdb8d3e523e94ca6d8a239d40615a, - type: 3} + - target: {fileID: 7403072356416083930, guid: ed5fdb8d3e523e94ca6d8a239d40615a, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 7403072356416083930, guid: ed5fdb8d3e523e94ca6d8a239d40615a, - type: 3} + - target: {fileID: 7403072356416083930, guid: ed5fdb8d3e523e94ca6d8a239d40615a, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 7403072356416083930, guid: ed5fdb8d3e523e94ca6d8a239d40615a, - type: 3} + - target: {fileID: 7403072356416083930, guid: ed5fdb8d3e523e94ca6d8a239d40615a, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 7403072356416083930, guid: ed5fdb8d3e523e94ca6d8a239d40615a, - type: 3} + - target: {fileID: 7403072356416083930, guid: ed5fdb8d3e523e94ca6d8a239d40615a, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 7403072356416083930, guid: ed5fdb8d3e523e94ca6d8a239d40615a, - type: 3} + - target: {fileID: 7403072356416083930, guid: ed5fdb8d3e523e94ca6d8a239d40615a, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 7403072356416083930, guid: ed5fdb8d3e523e94ca6d8a239d40615a, - type: 3} + - target: {fileID: 7403072356416083930, guid: ed5fdb8d3e523e94ca6d8a239d40615a, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 7403072357328242341, guid: ed5fdb8d3e523e94ca6d8a239d40615a, - type: 3} + - target: {fileID: 7403072357328242341, guid: ed5fdb8d3e523e94ca6d8a239d40615a, type: 3} propertyPath: m_Camera value: objectReference: {fileID: 1948693200} - - target: {fileID: 7403072357431632352, guid: ed5fdb8d3e523e94ca6d8a239d40615a, - type: 3} + - target: {fileID: 7403072357431632352, guid: ed5fdb8d3e523e94ca6d8a239d40615a, type: 3} propertyPath: m_TargetTransform value: objectReference: {fileID: 1434975003} m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: ed5fdb8d3e523e94ca6d8a239d40615a, type: 3} ---- !u!114 &7578513822832117758 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 4763085286836561808, guid: 5eccbf4be2c00e94689ee8062e4e7276, - type: 3} - m_PrefabInstance: {fileID: 3113582726696116334} +--- !u!1 &7578513822832117753 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7578513822832117759} + - component: {fileID: 7578513822832117758} + 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 &7578513822832117758 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7578513822832117753} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 83e4e6cca11330d4088d729ab4fc9d9f, type: 3} m_Name: m_EditorClassIdentifier: + m_StartingHoverFilters: [] + m_StartingSelectFilters: [] +--- !u!4 &7578513822832117759 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7578513822832117753} + 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 &7578513823358268780 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7578513823358268787} + - component: {fileID: 7578513823358268786} + - component: {fileID: 7578513823358268784} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &7578513823358268784 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7578513823358268780} + 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: 1 + m_EnableXRInput: 1 + m_EnableMouseInput: 1 + m_EnableTouchInput: 1 + m_PointAction: {fileID: 2869410428622933342, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_LeftClickAction: {fileID: 1855836014308820768, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_MiddleClickAction: {fileID: -6289560987278519447, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_RightClickAction: {fileID: -2562941478296515153, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_ScrollWheelAction: {fileID: 5825226938762934180, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_NavigateAction: {fileID: -7967456002180160679, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_SubmitAction: {fileID: 3994978066732806534, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_CancelAction: {fileID: 2387711382375263438, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_EnableBuiltinActionsAsFallback: 1 + m_EnableGamepadInput: 1 + m_EnableJoystickInput: 1 + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel +--- !u!114 &7578513823358268786 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7578513823358268780} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &7578513823358268787 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7578513823358268780} + 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: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &9108665820597706860 stripped MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 3145480085366568720, guid: cc0d6bd3aca3b5d4a986e27ce112e071, - type: 3} + m_CorrespondingSourceObject: {fileID: 3145480085366568720, guid: cc0d6bd3aca3b5d4a986e27ce112e071, type: 3} m_PrefabInstance: {fileID: 6183026901525796732} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 0} @@ -9985,11 +9038,3 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!1660057539 &9223372036854775807 -SceneRoots: - m_ObjectHideFlags: 0 - m_Roots: - - {fileID: 3113582726696116334} - - {fileID: 257810523} - - {fileID: 7403072357405031663} - - {fileID: 1434975003} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoScene.unity.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoScene.unity.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoScene.unity.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoScene.unity.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/Audio.asset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/Audio.asset new file mode 100644 index 00000000..b0492956 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/Audio.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec1bfd616c6df22671818cecba74f2ad090d6f19e0bda8ce7dbce510a66ada4d +size 1183 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/AudioAffordanceTheme.asset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/Audio.asset.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/AudioAffordanceTheme.asset.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/Audio.asset.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/BlendShapeValue.asset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/BlendShapeValue.asset new file mode 100644 index 00000000..4d15c9f0 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/BlendShapeValue.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:782b612d4f2201289e8790b3744f4a2647fa30804889a71cbdf084f4f6e9c519 +size 1750 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/Chess/InteractionBlendShapeAffordanceTheme.asset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/BlendShapeValue.asset.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/Chess/InteractionBlendShapeAffordanceTheme.asset.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/BlendShapeValue.asset.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/CapsuleScale.asset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/CapsuleScale.asset new file mode 100644 index 00000000..18fee749 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/CapsuleScale.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a09defbffeded2aa9cf544c4c4d040d53236e0812df79063ed6e032386434663 +size 2316 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/CapsuleScaleTheme.asset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/CapsuleScale.asset.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/CapsuleScaleTheme.asset.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/CapsuleScale.asset.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/ChessPieceColor.asset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/ChessPieceColor.asset new file mode 100644 index 00000000..f3dea383 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/ChessPieceColor.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49f11b46bfe1463ce5ffb8f49a5af8cff6587a2cb2cd08cf02346e06f571bbb1 +size 2281 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/Chess/WhiteChessPieceColorTheme.asset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/ChessPieceColor.asset.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/Chess/WhiteChessPieceColorTheme.asset.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/ChessPieceColor.asset.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/LargeScale.asset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/LargeScale.asset new file mode 100644 index 00000000..f6015c53 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/LargeScale.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0ebe958fb105d6409dfb09a1591c246da45beba214b0b6c42ff5debc60ce8d2a +size 1751 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/InteractionLargeScaleAffordanceTheme.asset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/LargeScale.asset.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/InteractionLargeScaleAffordanceTheme.asset.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/LargeScale.asset.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/Scale.asset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/Scale.asset new file mode 100644 index 00000000..af820b2c --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/Scale.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e178d15cc1f5794f5262cd4068fec922bd927cf593f961eecf46390deb05af1 +size 1745 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/InteractionScaleAffordanceTheme.asset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/Scale.asset.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/InteractionScaleAffordanceTheme.asset.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Affordances/Scale.asset.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Audio.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Audio.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Audio.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Audio.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Audio/ButtonClick.wav b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Audio/ButtonClick.wav similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Audio/ButtonClick.wav rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Audio/ButtonClick.wav diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Audio/ButtonClick.wav.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Audio/ButtonClick.wav.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Audio/ButtonClick.wav.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Audio/ButtonClick.wav.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Audio/ButtonHover.wav b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Audio/ButtonHover.wav similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Audio/ButtonHover.wav rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Audio/ButtonHover.wav diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Audio/ButtonHover.wav.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Audio/ButtonHover.wav.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Audio/ButtonHover.wav.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Audio/ButtonHover.wav.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/AccentButton.mat b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/AccentButton.mat new file mode 100644 index 00000000..37406b91 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/AccentButton.mat @@ -0,0 +1,180 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-8120562580438748798 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 7 +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: AccentButton + m_Shader: {fileID: 4800000, guid: 8d2bb70cbf9db8d4da26e15b26e74248, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _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} + - _MainTexture: + 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} + - _NormalMap: + 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} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _BUILTIN_AlphaClip: 0 + - _BUILTIN_Blend: 0 + - _BUILTIN_CullMode: 2 + - _BUILTIN_DstBlend: 0 + - _BUILTIN_QueueControl: 0 + - _BUILTIN_QueueOffset: 0 + - _BUILTIN_SrcBlend: 1 + - _BUILTIN_Surface: 0 + - _BUILTIN_ZTest: 4 + - _BUILTIN_ZWrite: 1 + - _BUILTIN_ZWriteControl: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _CastShadows: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _NormalStrength: 0.2 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _QueueControl: 0 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _RimPower: 5 + - _Shininess: 0 + - _Smoothness: 0.5 + - _SmoothnessSource: 0 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _UVSec: 0 + - _WorkflowMode: 1 + - _ZTest: 4 + - _ZWrite: 1 + - _ZWriteControl: 0 + m_Colors: + - _BaseColor: {r: 0.9275999, g: 0.58167726, b: 0.58167726, a: 1} + - _Color: {r: 0.9275999, g: 0.5816772, b: 0.5816772, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _NormalOffset: {r: 0, g: 0, b: 0, a: 0} + - _NormalTiling: {r: 1, g: 1, b: 0, a: 0} + - _RimColor: {r: 1, g: 1, b: 1, a: 0.5803922} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] +--- !u!114 &1604840317777982163 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/AccentButton.mat.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/AccentButton.mat.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/AccentButton.mat.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/AccentButton.mat.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/ChessPiece.mat b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/ChessPiece.mat new file mode 100644 index 00000000..f7aaf407 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/ChessPiece.mat @@ -0,0 +1,167 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-4177236750999561618 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 0 +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: ChessPiece + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _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} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _BUILTIN_AlphaClip: 0 + - _BUILTIN_Blend: 0 + - _BUILTIN_CullMode: 2 + - _BUILTIN_DstBlend: 0 + - _BUILTIN_QueueControl: 0 + - _BUILTIN_QueueOffset: 0 + - _BUILTIN_SrcBlend: 1 + - _BUILTIN_Surface: 0 + - _BUILTIN_ZTest: 4 + - _BUILTIN_ZWrite: 1 + - _BUILTIN_ZWriteControl: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _CastShadows: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossinessSource: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueControl: 0 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Shininess: 0 + - _Smoothness: 0.5 + - _SmoothnessSource: 0 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _UVSec: 0 + - _WorkflowMode: 1 + - _ZTest: 4 + - _ZWrite: 1 + - _ZWriteControl: 0 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 1} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] +--- !u!114 &7412609096850590555 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 7 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/ChessPiece.mat.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/ChessPiece.mat.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/ChessPiece.mat.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/ChessPiece.mat.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Chrome.mat b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Chrome.mat similarity index 75% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Chrome.mat rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Chrome.mat index c7748fe1..4239ce7b 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Chrome.mat +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Chrome.mat @@ -12,7 +12,20 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 4 + version: 7 +--- !u!114 &-4118503124237194887 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 0 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -21,15 +34,19 @@ Material: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: Chrome - m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 m_ValidKeywords: [] m_InvalidKeywords: [] m_LightmapFlags: 4 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 m_CustomRenderQueue: -1 - stringTagMap: {} + stringTagMap: + RenderType: Opaque disabledShaderPasses: [] + m_LockedProperties: m_SavedProperties: serializedVersion: 3 m_TexEnvs: @@ -92,8 +109,22 @@ Material: m_Ints: [] m_Floats: - _AlphaClip: 0 + - _AlphaToMask: 0 + - _BUILTIN_AlphaClip: 0 + - _BUILTIN_Blend: 0 + - _BUILTIN_CullMode: 2 + - _BUILTIN_DstBlend: 0 + - _BUILTIN_QueueControl: 0 + - _BUILTIN_QueueOffset: 0 + - _BUILTIN_SrcBlend: 1 + - _BUILTIN_Surface: 0 + - _BUILTIN_ZTest: 4 + - _BUILTIN_ZWrite: 1 + - _BUILTIN_ZWriteControl: 0 - _Blend: 0 + - _BlendModePreserveSpecular: 1 - _BumpScale: 1 + - _CastShadows: 1 - _ClearCoatMask: 0 - _ClearCoatSmoothness: 0 - _Cull: 2 @@ -101,6 +132,7 @@ Material: - _DetailAlbedoMapScale: 1 - _DetailNormalMapScale: 1 - _DstBlend: 0 + - _DstBlendAlpha: 0 - _EnvironmentReflections: 1 - _GlossMapScale: 1 - _Glossiness: 0.251 @@ -109,16 +141,20 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 + - _QueueControl: 0 - _QueueOffset: 0 - _ReceiveShadows: 1 - _Smoothness: 0.7 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 + - _SrcBlendAlpha: 1 - _Surface: 0 - _UVSec: 0 - _WorkflowMode: 1 + - _ZTest: 4 - _ZWrite: 1 + - _ZWriteControl: 0 m_Colors: - _BaseColor: {r: 0.61483705, g: 0.7287318, b: 0.71826583, a: 1} - _Color: {r: 0.61483705, g: 0.7287318, b: 0.71826583, a: 1} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Chrome.mat.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Chrome.mat.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Chrome.mat.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Chrome.mat.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Controls_Black.mat b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Controls_Black.mat new file mode 100644 index 00000000..42563f3b --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Controls_Black.mat @@ -0,0 +1,167 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-8512279004525987911 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 0 +--- !u!114 &-6052782388386979577 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 7 +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Controls_Black + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _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} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _BUILTIN_AlphaClip: 0 + - _BUILTIN_Blend: 0 + - _BUILTIN_CullMode: 2 + - _BUILTIN_DstBlend: 0 + - _BUILTIN_QueueControl: 0 + - _BUILTIN_QueueOffset: 0 + - _BUILTIN_SrcBlend: 1 + - _BUILTIN_Surface: 0 + - _BUILTIN_ZTest: 4 + - _BUILTIN_ZWrite: 1 + - _BUILTIN_ZWriteControl: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _CastShadows: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _QueueControl: 0 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Shininess: 0 + - _Smoothness: 0.672 + - _SmoothnessSource: 0 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _UVSec: 0 + - _WorkflowMode: 1 + - _ZTest: 4 + - _ZWrite: 1 + - _ZWriteControl: 0 + m_Colors: + - _BaseColor: {r: 0.254717, g: 0.2535155, b: 0.2535155, a: 1} + - _Color: {r: 0.25471696, g: 0.25351545, b: 0.25351545, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Controls_Black.mat.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Controls_Black.mat.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Controls_Black.mat.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Controls_Black.mat.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/FrameOutline.mat b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/FrameOutline.mat similarity index 72% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/FrameOutline.mat rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/FrameOutline.mat index 90a6dd2d..c430b29f 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/FrameOutline.mat +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/FrameOutline.mat @@ -8,18 +8,23 @@ Material: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: FrameOutline - m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 m_ValidKeywords: + - _SURFACE_TYPE_TRANSPARENT + m_InvalidKeywords: - _ALPHABLEND_ON - m_InvalidKeywords: [] m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 + m_EnableInstancingVariants: 1 m_DoubleSidedGI: 0 m_CustomRenderQueue: 3000 stringTagMap: RenderType: Transparent disabledShaderPasses: + - DepthOnly - SHADOWCASTER + m_LockedProperties: m_SavedProperties: serializedVersion: 3 m_TexEnvs: @@ -82,8 +87,22 @@ Material: m_Ints: [] m_Floats: - _AlphaClip: 0 + - _AlphaToMask: 0 + - _BUILTIN_AlphaClip: 0 + - _BUILTIN_Blend: 0 + - _BUILTIN_CullMode: 2 + - _BUILTIN_DstBlend: 0 + - _BUILTIN_QueueControl: 1 + - _BUILTIN_QueueOffset: 0 + - _BUILTIN_SrcBlend: 1 + - _BUILTIN_Surface: 0 + - _BUILTIN_ZTest: 4 + - _BUILTIN_ZWrite: 1 + - _BUILTIN_ZWriteControl: 0 - _Blend: 0 + - _BlendModePreserveSpecular: 0 - _BumpScale: 1 + - _CastShadows: 1 - _ClearCoatMask: 0 - _ClearCoatSmoothness: 0 - _Cull: 2 @@ -91,32 +110,50 @@ Material: - _DetailAlbedoMapScale: 1 - _DetailNormalMapScale: 1 - _DstBlend: 10 + - _DstBlendAlpha: 10 - _EnvironmentReflections: 1 - _GlossMapScale: 1 - _Glossiness: 0.5 - _GlossyReflections: 1 - - _Metallic: 0 + - _Metallic: 1 - _Mode: 2 - _OcclusionStrength: 1 - _Parallax: 0.02 + - _QueueControl: 0 - _QueueOffset: 0 - _ReceiveShadows: 1 - _Smoothness: 0.5 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 5 + - _SrcBlendAlpha: 1 - _Surface: 1 - _UVSec: 0 - _WorkflowMode: 1 + - _ZTest: 4 - _ZWrite: 0 + - _ZWriteControl: 0 m_Colors: - - _BaseColor: {r: 1, g: 1, b: 1, a: 0.13333334} - - _Color: {r: 1, g: 1, b: 1, a: 0.13333334} + - _BaseColor: {r: 1, g: 1, b: 1, a: 0.12156863} + - _Color: {r: 1, g: 1, b: 1, a: 0.12156863} - _EdgeColor: {r: 1, g: 1, b: 1, a: 0.2627451} - _EdgeData: {r: 0, g: 0.85, b: 0.5, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] +--- !u!114 &2933908090109234080 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 0 --- !u!114 &9048737277979502610 MonoBehaviour: m_ObjectHideFlags: 11 @@ -129,4 +166,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 4 + version: 7 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/FrameOutline.mat.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/FrameOutline.mat.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/FrameOutline.mat.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/FrameOutline.mat.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Interactable White.mat b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Interactable White.mat new file mode 100644 index 00000000..f5fc8be1 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Interactable White.mat @@ -0,0 +1,183 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-3335879748548489386 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 0 +--- !u!114 &-2536893978736553219 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 7 +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Interactable White + m_Shader: {fileID: -6465566751694194690, guid: 0927d29e476ce5843b1f7d2a96943c51, + type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _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} + - _MainTexture: + 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} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: cdebec39dbf81a14688e1de8d12897b4, type: 3} + 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} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Texture2DAsset_46c74e5059524c9b9656d53d13cff555_Out_0: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Texture2DAsset_ced3e0f4340741a1b36c259c8f49d0c7_Out_0: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _BUILTIN_AlphaClip: 0 + - _BUILTIN_Blend: 0 + - _BUILTIN_CullMode: 2 + - _BUILTIN_DstBlend: 0 + - _BUILTIN_QueueControl: 0 + - _BUILTIN_QueueOffset: 0 + - _BUILTIN_SrcBlend: 1 + - _BUILTIN_Surface: 0 + - _BUILTIN_ZTest: 4 + - _BUILTIN_ZWrite: 1 + - _BUILTIN_ZWriteControl: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 0 + - _BumpScale: 1 + - _CastShadows: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0.05 + - _NormalStrength: 0.75 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueControl: 0 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _RimPower: 4 + - _Smoothness: 0.2 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _Surface: 0 + - _WorkflowMode: 1 + - _ZTest: 4 + - _ZWrite: 1 + - _ZWriteControl: 0 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 1} + - _BumpOffset: {r: 0, g: 0, b: 0, a: 0} + - _BumpTiling: {r: 4, g: 2, b: 0, a: 0} + - _Color: {r: 0.5686274, g: 0.78431374, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _NormalOffset: {r: 0, g: 0, b: 0, a: 0} + - _NormalTiling: {r: 4, g: 2, b: 0, a: 0} + - _RimColor: {r: 1, g: 1, b: 1, a: 0.09803922} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/PrimitivesCoral.mat.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Interactable White.mat.meta similarity index 79% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/PrimitivesCoral.mat.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Interactable White.mat.meta index 92477cb0..6b32bc61 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/PrimitivesCoral.mat.meta +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Interactable White.mat.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 31a376bc4ad62f24dae7ced0e38f6309 +guid: b3c19a119577be64885886bfcc8792fe NativeFormatImporter: externalObjects: {} mainObjectFileID: 2100000 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/RPMaterialHandler.asset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/RPMaterialHandler.asset new file mode 100644 index 00000000..651ba3b7 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/RPMaterialHandler.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f2a873d738e8fbb3fa23cc3b21e55c9dd6d85235950841c9437c9349b86cabe1 +size 2894 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Fist Expression Capture.asset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/RPMaterialHandler.asset.meta similarity index 79% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Fist Expression Capture.asset.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/RPMaterialHandler.asset.meta index 1a58ccfc..268755d3 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Fist Expression Capture.asset.meta +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/RPMaterialHandler.asset.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 2a7c8ca0feac7cc44a5c225164ef311d +guid: 84966892245e3a742b5a7a3e6d830f34 NativeFormatImporter: externalObjects: {} mainObjectFileID: 11400000 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Table Surface.mat b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Table Surface.mat new file mode 100644 index 00000000..95774ac2 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Table Surface.mat @@ -0,0 +1,170 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Table Surface + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _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} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _BUILTIN_AlphaClip: 0 + - _BUILTIN_Blend: 0 + - _BUILTIN_CullMode: 2 + - _BUILTIN_DstBlend: 0 + - _BUILTIN_QueueControl: 0 + - _BUILTIN_QueueOffset: 0 + - _BUILTIN_SrcBlend: 1 + - _BUILTIN_Surface: 0 + - _BUILTIN_ZTest: 4 + - _BUILTIN_ZWrite: 1 + - _BUILTIN_ZWriteControl: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _BumpStrength: 1 + - _CastShadows: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossinessSource: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueControl: 0 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Shininess: 0 + - _Smoothness: 0.5 + - _SmoothnessSource: 0 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _UVSec: 0 + - _WorkflowMode: 1 + - _ZTest: 4 + - _ZWrite: 1 + - _ZWriteControl: 0 + m_Colors: + - _BaseColor: {r: 0.57155573, g: 0.65465593, b: 0.7169812, a: 1} + - _BumpOffset: {r: 0, g: 0, b: 0, a: 0} + - _BumpTiling: {r: 4, g: 2, b: 0, a: 0} + - _Color: {r: 0.57155573, g: 0.6546559, b: 0.7169812, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] +--- !u!114 &2642942474496021612 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 0 +--- !u!114 &7412609096850590555 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 7 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Table Surface.mat.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Table Surface.mat.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Table Surface.mat.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Materials/Table Surface.mat.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/Chess.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/Chess.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/Chess.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/Chess.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/Chess/Chess_Board.fbx b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/Chess/Chess_Board.fbx similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/Chess/Chess_Board.fbx rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/Chess/Chess_Board.fbx diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/Chess/Chess_Board.fbx.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/Chess/Chess_Board.fbx.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/Chess/Chess_Board.fbx.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/Chess/Chess_Board.fbx.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/Chess/Chess_Pawn.fbx b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/Chess/Chess_Pawn.fbx similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/Chess/Chess_Pawn.fbx rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/Chess/Chess_Pawn.fbx diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/Chess/Chess_Pawn.fbx.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/Chess/Chess_Pawn.fbx.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/Chess/Chess_Pawn.fbx.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/Chess/Chess_Pawn.fbx.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/Frame.fbx b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/Frame.fbx similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/Frame.fbx rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/Frame.fbx diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/Frame.fbx.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/Frame.fbx.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/Frame.fbx.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/Frame.fbx.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Cone.fbx b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Cone.fbx similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Cone.fbx rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Cone.fbx diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Cone.fbx.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Cone.fbx.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Cone.fbx.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Cone.fbx.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Cube.fbx b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Cube.fbx similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Cube.fbx rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Cube.fbx diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Cube.fbx.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Cube.fbx.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Cube.fbx.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Cube.fbx.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Cylinder.fbx b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Cylinder.fbx similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Cylinder.fbx rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Cylinder.fbx diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Cylinder.fbx.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Cylinder.fbx.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Cylinder.fbx.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Cylinder.fbx.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Disc.fbx b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Disc.fbx similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Disc.fbx rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Disc.fbx diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Disc.fbx.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Disc.fbx.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Disc.fbx.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/Primitives/Disc.fbx.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/VirtualTabletop.fbx b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/VirtualTabletop.fbx similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/VirtualTabletop.fbx rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/VirtualTabletop.fbx diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/VirtualTabletop.fbx.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/VirtualTabletop.fbx.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Models/VirtualTabletop.fbx.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Models/VirtualTabletop.fbx.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Arrow.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Arrow.prefab similarity index 63% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Arrow.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Arrow.prefab index e8f5ff4a..1585a842 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Arrow.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Arrow.prefab @@ -1,123 +1,5 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1 &65600830325180216 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 65600830325180217} - - component: {fileID: 65600830325180219} - - component: {fileID: 65600830325180218} - m_Layer: 0 - m_Name: ColorAffordance - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &65600830325180217 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 65600830325180216} - 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: 339307769875072284} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &65600830325180219 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 65600830325180216} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1410cbaaadf84a7aaa6459d37ad21b3a, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Renderer: {fileID: 7670699472714972690} - m_MaterialIndex: 0 ---- !u!114 &65600830325180218 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 65600830325180216} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f86d13fca2ec430d870c0f7765ad0dde, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AffordanceStateProvider: {fileID: 1741595051117736027} - m_ReplaceIdleStateValueWithInitialValue: 1 - m_AffordanceThemeDatum: - m_UseConstant: 0 - m_ConstantValue: - m_StateAnimationCurve: - m_UseConstant: 1 - m_ConstantValue: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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_Variable: {fileID: 0} - m_List: - - stateName: disabled - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - - stateName: idle - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - - stateName: hovered - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - - stateName: hoveredPriority - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - - stateName: selected - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - - stateName: activated - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - m_ColorBlendMode: 0 - m_BlendAmount: 1 - m_Variable: {fileID: 11400000, guid: 2447c2ae63ed301429bb0f32f88ef8ce, type: 2} - m_ValueUpdated: - m_PersistentCalls: - m_Calls: [] - m_MaterialPropertyBlockHelper: {fileID: 65600830325180219} - m_ColorPropertyName: --- !u!1 &4318511848014193775 GameObject: m_ObjectHideFlags: 0 @@ -151,7 +33,7 @@ Transform: m_Children: - {fileID: 4905619921565087965} m_Father: {fileID: 5013556786019211059} - m_RootOrder: 1 + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90} --- !u!33 &2418615375201463647 MeshFilter: @@ -181,7 +63,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 31a376bc4ad62f24dae7ced0e38f6309, type: 2} + - {fileID: 2100000, guid: 76618f7490c40334fa7b685859587d2e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -216,6 +98,104 @@ SphereCollider: serializedVersion: 2 m_Radius: 0.006500003 m_Center: {x: 0, y: -0.002, z: 0} +--- !u!1 &8236831428665510606 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4905619921565087965} + - component: {fileID: 4129596266679649003} + - component: {fileID: 7670699472714972690} + - component: {fileID: 4477334520055318792} + m_Layer: 0 + m_Name: Cylinder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4905619921565087965 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8236831428665510606} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: -0.0096, z: -0} + m_LocalScale: {x: 0.41586, y: 1.3768293, z: 0.41586} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4978570559794932741} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4129596266679649003 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8236831428665510606} + m_Mesh: {fileID: -5076798556035486163, guid: bf65382e5e6d14e7f8140e4204ce07e2, type: 3} +--- !u!23 &7670699472714972690 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8236831428665510606} + 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: 76618f7490c40334fa7b685859587d2e, 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!136 &4477334520055318792 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8236831428665510606} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.005500003 + m_Height: 0.0100000035 + m_Direction: 1 + m_Center: {x: 0, y: -0.001, z: 0} --- !u!1 &8343167407413159200 GameObject: m_ObjectHideFlags: 0 @@ -247,8 +227,8 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 339307769875072284} - {fileID: 4978570559794932741} + - {fileID: 8777580590156759232} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -282,9 +262,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_InteractionManager: {fileID: 0} m_Colliders: [] - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 m_InteractionLayers: m_Bits: 1 m_DistanceCalculationMode: 1 @@ -343,33 +320,6 @@ MonoBehaviour: 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: 1 @@ -416,10 +366,10 @@ MonoBehaviour: m_ThrowAngularVelocityScale: 1 m_ForceGravityOnDetach: 0 m_RetainTransformParent: 1 - m_AttachPointCompatibilityMode: 0 m_StartingSingleGrabTransformers: [] m_StartingMultipleGrabTransformers: [] m_AddDefaultGrabTransformers: 1 + m_FarAttachMode: 0 --- !u!114 &8343167407413159203 MonoBehaviour: m_ObjectHideFlags: 0 @@ -443,84 +393,269 @@ MonoBehaviour: m_MinimumScaleRatio: 0.25 m_MaximumScaleRatio: 3 m_ScaleMultiplier: 0.25 ---- !u!1001 &65600831374321780 +--- !u!1 &8439317372374805806 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3848225726396102574} + - component: {fileID: 5408859887124869817} + - component: {fileID: 8874141616362956421} + - component: {fileID: 2522668584211318101} + m_Layer: 0 + m_Name: Material Affordance + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3848225726396102574 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8439317372374805806} + 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: 8777580590156759232} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &5408859887124869817 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8439317372374805806} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1410cbaaadf84a7aaa6459d37ad21b3a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Renderer: {fileID: 7670699472714972690} + m_MaterialIndex: 0 +--- !u!114 &8874141616362956421 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8439317372374805806} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f86d13fca2ec430d870c0f7765ad0dde, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AffordanceStateProvider: {fileID: 5114438700417830185} + m_ReplaceIdleStateValueWithInitialValue: 0 + m_AffordanceThemeDatum: + m_UseConstant: 0 + m_ConstantValue: + m_StateAnimationCurve: + m_UseConstant: 1 + m_ConstantValue: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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_Variable: {fileID: 0} + m_List: + - stateName: disabled + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: idle + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: hovered + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: hoveredPriority + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: selected + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: activated + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: focused + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + m_ColorBlendMode: 0 + m_BlendAmount: 1 + m_Variable: {fileID: 11400000, guid: 8b0b5aede76faac438e02d2a468f4805, type: 2} + m_ValueUpdated: + m_PersistentCalls: + m_Calls: [] + m_MaterialPropertyBlockHelper: {fileID: 5408859887124869817} + m_ColorPropertyName: _RimColor +--- !u!114 &2522668584211318101 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8439317372374805806} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 629ea686265f47f082ba5732cffad1cf, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AffordanceStateProvider: {fileID: 5114438700417830185} + m_ReplaceIdleStateValueWithInitialValue: 0 + m_AffordanceThemeDatum: + m_UseConstant: 0 + m_ConstantValue: + m_StateAnimationCurve: + m_UseConstant: 1 + m_ConstantValue: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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_Variable: {fileID: 0} + m_List: + - stateName: disabled + animationStateStartValue: 0 + animationStateEndValue: 0 + - stateName: idle + animationStateStartValue: 0 + animationStateEndValue: 0 + - stateName: hovered + animationStateStartValue: 0 + animationStateEndValue: 0 + - stateName: hoveredPriority + animationStateStartValue: 0 + animationStateEndValue: 0 + - stateName: selected + animationStateStartValue: 0 + animationStateEndValue: 0 + - stateName: activated + animationStateStartValue: 0 + animationStateEndValue: 0 + - stateName: focused + animationStateStartValue: 0 + animationStateEndValue: 0 + m_Variable: {fileID: 11400000, guid: 795305341a8dbbd46ae54e9a01d6ea95, type: 2} + m_ValueUpdated: + m_PersistentCalls: + m_Calls: [] + m_MaterialPropertyBlockHelper: {fileID: 5408859887124869817} + m_FloatPropertyName: _RimPower +--- !u!1001 &3542471709012220395 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: m_TransformParent: {fileID: 5013556786019211059} m_Modifications: - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} - propertyPath: m_RootOrder - value: 0 + - target: {fileID: 3774509235512974894, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_Name + value: Highlight Interaction Affordance objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 1784108126610004015, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} - propertyPath: m_InteractableSource - value: - objectReference: {fileID: 8343167407413159201} - - target: {fileID: 4104645014554624858, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} + - target: {fileID: 7396278978564332023, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_Renderer value: objectReference: {fileID: 8159150361180033376} - - target: {fileID: 4696973491166461409, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} - propertyPath: m_Name - value: InteractionAffordance - objectReference: {fileID: 0} - - target: {fileID: 7275325890891809550, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} - propertyPath: m_RootOrder - value: 2 - objectReference: {fileID: 0} + - target: {fileID: 8634317094661461186, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_InteractableSource + value: + objectReference: {fileID: 8343167407413159201} m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} ---- !u!4 &339307769875072284 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} - m_PrefabInstance: {fileID: 65600831374321780} - m_PrefabAsset: {fileID: 0} ---- !u!114 &1741595051117736027 stripped + m_SourcePrefab: {fileID: 100100000, guid: 6b12f432fa58c224baf0d659706362be, type: 3} +--- !u!114 &5114438700417830185 stripped MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 1784108126610004015, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} - m_PrefabInstance: {fileID: 65600831374321780} + m_CorrespondingSourceObject: {fileID: 8634317094661461186, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + m_PrefabInstance: {fileID: 3542471709012220395} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 0} m_Enabled: 1 @@ -528,110 +663,8 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 49e0a5b5ff5540f5b14dd29d46faec22, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!1001 &103292096675238855 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 4978570559794932741} - m_Modifications: - - target: {fileID: -6860895033569716450, guid: bf65382e5e6d14e7f8140e4204ce07e2, type: 3} - propertyPath: m_Convex - value: 1 - objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: bf65382e5e6d14e7f8140e4204ce07e2, type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: bf65382e5e6d14e7f8140e4204ce07e2, type: 3} - propertyPath: m_LocalScale.x - value: 0.41586 - objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: bf65382e5e6d14e7f8140e4204ce07e2, type: 3} - propertyPath: m_LocalScale.y - value: 1.3768293 - objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: bf65382e5e6d14e7f8140e4204ce07e2, type: 3} - propertyPath: m_LocalScale.z - value: 0.41586 - objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: bf65382e5e6d14e7f8140e4204ce07e2, type: 3} - propertyPath: m_LocalPosition.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: bf65382e5e6d14e7f8140e4204ce07e2, type: 3} - propertyPath: m_LocalPosition.y - value: -0.0096 - objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: bf65382e5e6d14e7f8140e4204ce07e2, type: 3} - propertyPath: m_LocalPosition.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: bf65382e5e6d14e7f8140e4204ce07e2, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: bf65382e5e6d14e7f8140e4204ce07e2, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: bf65382e5e6d14e7f8140e4204ce07e2, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: bf65382e5e6d14e7f8140e4204ce07e2, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: bf65382e5e6d14e7f8140e4204ce07e2, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: bf65382e5e6d14e7f8140e4204ce07e2, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: bf65382e5e6d14e7f8140e4204ce07e2, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -1504981713932161579, guid: bf65382e5e6d14e7f8140e4204ce07e2, type: 3} - propertyPath: m_Materials.Array.data[0] - value: - objectReference: {fileID: 2100000, guid: 31a376bc4ad62f24dae7ced0e38f6309, type: 2} - - target: {fileID: -927199367670048503, guid: bf65382e5e6d14e7f8140e4204ce07e2, type: 3} - propertyPath: m_Name - value: Cylinder - objectReference: {fileID: 0} - m_RemovedComponents: - - {fileID: -6860895033569716450, guid: bf65382e5e6d14e7f8140e4204ce07e2, type: 3} - m_SourcePrefab: {fileID: 100100000, guid: bf65382e5e6d14e7f8140e4204ce07e2, type: 3} ---- !u!4 &4905619921565087965 stripped +--- !u!4 &8777580590156759232 stripped Transform: - m_CorrespondingSourceObject: {fileID: -4216859302048453862, guid: bf65382e5e6d14e7f8140e4204ce07e2, type: 3} - m_PrefabInstance: {fileID: 103292096675238855} + m_CorrespondingSourceObject: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + m_PrefabInstance: {fileID: 3542471709012220395} m_PrefabAsset: {fileID: 0} ---- !u!23 &7670699472714972690 stripped -MeshRenderer: - m_CorrespondingSourceObject: {fileID: -1504981713932161579, guid: bf65382e5e6d14e7f8140e4204ce07e2, type: 3} - m_PrefabInstance: {fileID: 103292096675238855} - m_PrefabAsset: {fileID: 0} ---- !u!1 &8236831428665510606 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: -927199367670048503, guid: bf65382e5e6d14e7f8140e4204ce07e2, type: 3} - m_PrefabInstance: {fileID: 103292096675238855} - m_PrefabAsset: {fileID: 0} ---- !u!136 &4477334520055318792 -CapsuleCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8236831428665510606} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - m_Radius: 0.005500003 - m_Height: 0.0100000035 - m_Direction: 1 - m_Center: {x: 0, y: -0.001, z: 0} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Arrow.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Arrow.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Arrow.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Arrow.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/AudioAffordance.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/AudioAffordance.prefab new file mode 100644 index 00000000..a0e6ecd9 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/AudioAffordance.prefab @@ -0,0 +1,171 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1515492005369169331 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8501457409089496690} + - component: {fileID: 6772632406345170694} + - component: {fileID: 5746416808058614602} + m_Layer: 0 + m_Name: AudioAffordance + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8501457409089496690 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1515492005369169331} + 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: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!82 &6772632406345170694 +AudioSource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1515492005369169331} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 0} + m_PlayOnAwake: 0 + 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_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_Curve: + - serializedVersion: 3 + time: 0 + value: 0.75 + 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!114 &5746416808058614602 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1515492005369169331} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 186056f485a2493b80cc81571ac8cd9b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AffordanceStateProvider: {fileID: 0} + m_AffordanceThemeDatum: + m_UseConstant: 0 + m_ConstantValue: + m_List: + - stateName: disabled + stateEntered: {fileID: 0} + stateExited: {fileID: 0} + - stateName: idle + stateEntered: {fileID: 0} + stateExited: {fileID: 0} + - stateName: hovered + stateEntered: {fileID: 0} + stateExited: {fileID: 0} + - stateName: hoveredPriority + stateEntered: {fileID: 0} + stateExited: {fileID: 0} + - stateName: selected + stateEntered: {fileID: 0} + stateExited: {fileID: 0} + - stateName: activated + stateEntered: {fileID: 0} + stateExited: {fileID: 0} + - stateName: focused + stateEntered: {fileID: 0} + stateExited: {fileID: 0} + m_Variable: {fileID: 11400000, guid: 57def9352cdee8548bfc9ebc6a55914a, type: 2} + m_AudioSource: {fileID: 6772632406345170694} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Affordances/Hand Ray Interactor Affordances.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/AudioAffordance.prefab.meta similarity index 74% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Affordances/Hand Ray Interactor Affordances.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/AudioAffordance.prefab.meta index 96afb7f2..d4469af5 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Affordances/Hand Ray Interactor Affordances.prefab.meta +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/AudioAffordance.prefab.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: e411b46c5d2514e49b26bd300e9ed8ce +guid: 1c54cdd9a14d96049a8d37d422bd0e17 PrefabImporter: externalObjects: {} userData: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Cube.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Cube.prefab similarity index 79% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Cube.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Cube.prefab index 24ef3df8..da866bc8 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Cube.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Cube.prefab @@ -32,7 +32,7 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 9171031756790316709} - m_RootOrder: 1 + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 116.218, y: -85.48, z: -18.765} --- !u!33 &8468258526941819482 MeshFilter: @@ -62,7 +62,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 31a376bc4ad62f24dae7ced0e38f6309, type: 2} + - {fileID: 2100000, guid: 76618f7490c40334fa7b685859587d2e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -128,8 +128,8 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 5826992523391476019} - {fileID: 8715892259302707255} + - {fileID: 2591278628457874792} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -163,9 +163,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_InteractionManager: {fileID: 0} m_Colliders: [] - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 m_InteractionLayers: m_Bits: 1 m_DistanceCalculationMode: 1 @@ -224,33 +221,6 @@ MonoBehaviour: 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: 1 @@ -297,10 +267,10 @@ MonoBehaviour: m_ThrowAngularVelocityScale: 1 m_ForceGravityOnDetach: 0 m_RetainTransformParent: 1 - m_AttachPointCompatibilityMode: 0 m_StartingSingleGrabTransformers: [] m_StartingMultipleGrabTransformers: [] m_AddDefaultGrabTransformers: 1 + m_FarAttachMode: 0 --- !u!114 &1988286665728152634 MonoBehaviour: m_ObjectHideFlags: 0 @@ -324,73 +294,73 @@ MonoBehaviour: m_MinimumScaleRatio: 0.25 m_MaximumScaleRatio: 3 m_ScaleMultiplier: 0.25 ---- !u!1001 &6089389885339028571 +--- !u!1001 &7714466481515797571 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: m_TransformParent: {fileID: 9171031756790316709} m_Modifications: - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} - propertyPath: m_RootOrder - value: 0 + - target: {fileID: 3774509235512974894, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_Name + value: Highlight Interaction Affordance objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 1784108126610004015, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} - propertyPath: m_InteractableSource - value: - objectReference: {fileID: 5268460675038366903} - - target: {fileID: 4104645014554624858, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} + - target: {fileID: 7396278978564332023, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_Renderer value: objectReference: {fileID: 2603633290551499573} - - target: {fileID: 4696973491166461409, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} - propertyPath: m_Name - value: InteractionAffordance - objectReference: {fileID: 0} + - target: {fileID: 8634317094661461186, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_InteractableSource + value: + objectReference: {fileID: 5268460675038366903} m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} ---- !u!4 &5826992523391476019 stripped + m_SourcePrefab: {fileID: 100100000, guid: 6b12f432fa58c224baf0d659706362be, type: 3} +--- !u!4 &2591278628457874792 stripped Transform: - m_CorrespondingSourceObject: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} - m_PrefabInstance: {fileID: 6089389885339028571} + m_CorrespondingSourceObject: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + m_PrefabInstance: {fileID: 7714466481515797571} m_PrefabAsset: {fileID: 0} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Cube.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Cube.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Cube.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Cube.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Cylinder.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Cylinder.prefab similarity index 79% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Cylinder.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Cylinder.prefab index f9975b7a..0ca23ac9 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Cylinder.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Cylinder.prefab @@ -32,7 +32,7 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 8746220130012963387} - m_RootOrder: 1 + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: -29.64} --- !u!33 &4802184161675562276 MeshFilter: @@ -62,7 +62,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 3a84a7b91ec88714486e0c4cc9a5dc01, type: 2} + - {fileID: 2100000, guid: 76618f7490c40334fa7b685859587d2e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -129,8 +129,8 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 4054960490887300887} - {fileID: 256826899755551065} + - {fileID: 3066043236613899732} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -164,9 +164,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_InteractionManager: {fileID: 0} m_Colliders: [] - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 m_InteractionLayers: m_Bits: 1 m_DistanceCalculationMode: 1 @@ -225,33 +222,6 @@ MonoBehaviour: 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: 1 @@ -298,10 +268,10 @@ MonoBehaviour: m_ThrowAngularVelocityScale: 1 m_ForceGravityOnDetach: 0 m_RetainTransformParent: 1 - m_AttachPointCompatibilityMode: 0 m_StartingSingleGrabTransformers: [] m_StartingMultipleGrabTransformers: [] m_AddDefaultGrabTransformers: 1 + m_FarAttachMode: 0 --- !u!114 &5709307613756117039 MonoBehaviour: m_ObjectHideFlags: 0 @@ -325,73 +295,73 @@ MonoBehaviour: m_MinimumScaleRatio: 0.25 m_MaximumScaleRatio: 3 m_ScaleMultiplier: 0.25 ---- !u!1001 &4330884014412049023 +--- !u!1001 &7094750918406528255 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: m_TransformParent: {fileID: 8746220130012963387} m_Modifications: - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} - propertyPath: m_RootOrder - value: 0 + - target: {fileID: 3774509235512974894, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_Name + value: Highlight Interaction Affordance objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 1784108126610004015, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} - propertyPath: m_InteractableSource - value: - objectReference: {fileID: 5709307613756117033} - - target: {fileID: 4104645014554624858, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} + - target: {fileID: 7396278978564332023, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_Renderer value: objectReference: {fileID: 5677050711131360266} - - target: {fileID: 4696973491166461409, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} - propertyPath: m_Name - value: InteractionAffordance - objectReference: {fileID: 0} + - target: {fileID: 8634317094661461186, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_InteractableSource + value: + objectReference: {fileID: 5709307613756117033} m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} ---- !u!4 &4054960490887300887 stripped + m_SourcePrefab: {fileID: 100100000, guid: 6b12f432fa58c224baf0d659706362be, type: 3} +--- !u!4 &3066043236613899732 stripped Transform: - m_CorrespondingSourceObject: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} - m_PrefabInstance: {fileID: 4330884014412049023} + m_CorrespondingSourceObject: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + m_PrefabInstance: {fileID: 7094750918406528255} m_PrefabAsset: {fileID: 0} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Cylinder.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Cylinder.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Cylinder.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Cylinder.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Disc.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Disc.prefab similarity index 93% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Disc.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Disc.prefab index e3ab7b78..d9821131 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Disc.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Disc.prefab @@ -147,9 +147,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_InteractionManager: {fileID: 0} m_Colliders: [] - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 m_InteractionLayers: m_Bits: 1 m_DistanceCalculationMode: 1 @@ -208,33 +205,6 @@ MonoBehaviour: 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: [] --- !u!54 &6525631569650833180 Rigidbody: m_ObjectHideFlags: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Disc.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Disc.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Disc.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Disc.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Chess/FlatSphereController.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/DiscController.prefab similarity index 75% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Chess/FlatSphereController.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/DiscController.prefab index 007897f9..e75bf639 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Chess/FlatSphereController.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/DiscController.prefab @@ -1,174 +1,5 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1 &620666007103188122 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6476401572811645552} - - component: {fileID: 2496754245709711216} - - component: {fileID: 5593996689469427263} - m_Layer: 0 - m_Name: AudioAffordance - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6476401572811645552 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 620666007103188122} - 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: 1 - m_Children: [] - m_Father: {fileID: 2049748930621633665} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!82 &2496754245709711216 -AudioSource: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 620666007103188122} - m_Enabled: 1 - serializedVersion: 4 - OutputAudioMixerGroup: {fileID: 0} - m_audioClip: {fileID: 0} - m_PlayOnAwake: 0 - 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_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_Curve: - - serializedVersion: 3 - time: 0 - value: 0.75 - 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!114 &5593996689469427263 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 620666007103188122} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 186056f485a2493b80cc81571ac8cd9b, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AffordanceStateProvider: {fileID: 5509715586815330615} - m_AffordanceThemeDatum: - m_UseConstant: 0 - m_ConstantValue: - m_List: - - stateName: disabled - stateEntered: {fileID: 0} - stateExited: {fileID: 0} - - stateName: idle - stateEntered: {fileID: 0} - stateExited: {fileID: 0} - - stateName: hovered - stateEntered: {fileID: 0} - stateExited: {fileID: 0} - - stateName: hoveredPriority - stateEntered: {fileID: 0} - stateExited: {fileID: 0} - - stateName: selected - stateEntered: {fileID: 0} - stateExited: {fileID: 0} - - stateName: activated - stateEntered: {fileID: 0} - stateExited: {fileID: 0} - - stateName: focused - stateEntered: {fileID: 0} - stateExited: {fileID: 0} - m_Variable: {fileID: 11400000, guid: 57def9352cdee8548bfc9ebc6a55914a, type: 2} - m_AudioSource: {fileID: 2496754245709711216} --- !u!1 &2049748930621633664 GameObject: m_ObjectHideFlags: 0 @@ -184,7 +15,7 @@ GameObject: - component: {fileID: 2049748930621633677} - component: {fileID: 2049748930621633674} m_Layer: 0 - m_Name: FlatSphereController + m_Name: DiscController m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -203,7 +34,7 @@ Transform: m_ConstrainProportionsScale: 1 m_Children: - {fileID: 5509715586815330617} - - {fileID: 6476401572811645552} + - {fileID: 3894836964852715047} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -251,9 +82,6 @@ MonoBehaviour: m_InteractionManager: {fileID: 0} m_Colliders: - {fileID: 2049748930621633678} - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 m_InteractionLayers: m_Bits: 1 m_DistanceCalculationMode: 1 @@ -312,33 +140,6 @@ MonoBehaviour: 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: 1 @@ -385,10 +186,10 @@ MonoBehaviour: m_ThrowAngularVelocityScale: 1 m_ForceGravityOnDetach: 0 m_RetainTransformParent: 1 - m_AttachPointCompatibilityMode: 0 m_StartingSingleGrabTransformers: [] m_StartingMultipleGrabTransformers: [] m_AddDefaultGrabTransformers: 1 + m_FarAttachMode: 0 --- !u!114 &2049748930621633677 MonoBehaviour: m_ObjectHideFlags: 0 @@ -450,7 +251,7 @@ GameObject: - component: {fileID: 5509715586815330611} - component: {fileID: 5509715586815330612} m_Layer: 0 - m_Name: Sphere + m_Name: Sphere_And_Affordances m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -499,7 +300,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 40808a1b89c64184e9466aaec1fd1ac1, type: 2} + - {fileID: 2100000, guid: b3c19a119577be64885886bfcc8792fe, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -728,4 +529,70 @@ MonoBehaviour: m_PersistentCalls: m_Calls: [] m_MaterialPropertyBlockHelper: {fileID: 5509715586815330611} - m_ColorPropertyName: + m_ColorPropertyName: _BaseColor +--- !u!1001 &4897105965448374357 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2049748930621633665} + m_Modifications: + - target: {fileID: 1515492005369169331, guid: 1c54cdd9a14d96049a8d37d422bd0e17, type: 3} + propertyPath: m_Name + value: AudioAffordance + objectReference: {fileID: 0} + - target: {fileID: 5746416808058614602, guid: 1c54cdd9a14d96049a8d37d422bd0e17, type: 3} + propertyPath: m_AffordanceStateProvider + value: + objectReference: {fileID: 5509715586815330615} + - target: {fileID: 8501457409089496690, guid: 1c54cdd9a14d96049a8d37d422bd0e17, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8501457409089496690, guid: 1c54cdd9a14d96049a8d37d422bd0e17, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8501457409089496690, guid: 1c54cdd9a14d96049a8d37d422bd0e17, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8501457409089496690, guid: 1c54cdd9a14d96049a8d37d422bd0e17, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8501457409089496690, guid: 1c54cdd9a14d96049a8d37d422bd0e17, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8501457409089496690, guid: 1c54cdd9a14d96049a8d37d422bd0e17, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8501457409089496690, guid: 1c54cdd9a14d96049a8d37d422bd0e17, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8501457409089496690, guid: 1c54cdd9a14d96049a8d37d422bd0e17, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8501457409089496690, guid: 1c54cdd9a14d96049a8d37d422bd0e17, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8501457409089496690, guid: 1c54cdd9a14d96049a8d37d422bd0e17, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8501457409089496690, guid: 1c54cdd9a14d96049a8d37d422bd0e17, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 1c54cdd9a14d96049a8d37d422bd0e17, type: 3} +--- !u!4 &3894836964852715047 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8501457409089496690, guid: 1c54cdd9a14d96049a8d37d422bd0e17, type: 3} + m_PrefabInstance: {fileID: 4897105965448374357} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Chess/FlatSphereController.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/DiscController.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Chess/FlatSphereController.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/DiscController.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Chess/PawnController.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/PawnController.prefab similarity index 74% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Chess/PawnController.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/PawnController.prefab index 0154a040..8bf8a0a6 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Chess/PawnController.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/PawnController.prefab @@ -1,174 +1,5 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1 &1424758651557925865 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8302078025757585448} - - component: {fileID: 6570999008309782876} - - component: {fileID: 5292440013984097552} - m_Layer: 0 - m_Name: AudioAffordance - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8302078025757585448 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1424758651557925865} - 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: 6689389171845895219} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!82 &6570999008309782876 -AudioSource: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1424758651557925865} - m_Enabled: 1 - serializedVersion: 4 - OutputAudioMixerGroup: {fileID: 0} - m_audioClip: {fileID: 0} - m_PlayOnAwake: 0 - 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_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_Curve: - - serializedVersion: 3 - time: 0 - value: 0.75 - 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!114 &5292440013984097552 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1424758651557925865} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 186056f485a2493b80cc81571ac8cd9b, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AffordanceStateProvider: {fileID: 6689389173434678681} - m_AffordanceThemeDatum: - m_UseConstant: 0 - m_ConstantValue: - m_List: - - stateName: disabled - stateEntered: {fileID: 0} - stateExited: {fileID: 0} - - stateName: idle - stateEntered: {fileID: 0} - stateExited: {fileID: 0} - - stateName: hovered - stateEntered: {fileID: 0} - stateExited: {fileID: 0} - - stateName: hoveredPriority - stateEntered: {fileID: 0} - stateExited: {fileID: 0} - - stateName: selected - stateEntered: {fileID: 0} - stateExited: {fileID: 0} - - stateName: activated - stateEntered: {fileID: 0} - stateExited: {fileID: 0} - - stateName: focused - stateEntered: {fileID: 0} - stateExited: {fileID: 0} - m_Variable: {fileID: 11400000, guid: 57def9352cdee8548bfc9ebc6a55914a, type: 2} - m_AudioSource: {fileID: 6570999008309782876} --- !u!1 &6689389171845895218 GameObject: m_ObjectHideFlags: 0 @@ -251,9 +82,6 @@ MonoBehaviour: m_InteractionManager: {fileID: 0} m_Colliders: - {fileID: 6689389171845895228} - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 m_InteractionLayers: m_Bits: 1 m_DistanceCalculationMode: 1 @@ -312,33 +140,6 @@ MonoBehaviour: 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: 1 @@ -385,10 +186,10 @@ MonoBehaviour: m_ThrowAngularVelocityScale: 1 m_ForceGravityOnDetach: 0 m_RetainTransformParent: 1 - m_AttachPointCompatibilityMode: 0 m_StartingSingleGrabTransformers: [] m_StartingMultipleGrabTransformers: [] m_AddDefaultGrabTransformers: 1 + m_FarAttachMode: 0 --- !u!114 &6689389171845895231 MonoBehaviour: m_ObjectHideFlags: 0 @@ -486,7 +287,7 @@ SkinnedMeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 40808a1b89c64184e9466aaec1fd1ac1, type: 2} + - {fileID: 2100000, guid: b3c19a119577be64885886bfcc8792fe, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -693,7 +494,7 @@ MonoBehaviour: m_PersistentCalls: m_Calls: [] m_MaterialPropertyBlockHelper: {fileID: 6689389173002939785} - m_ColorPropertyName: + m_ColorPropertyName: _BaseColor --- !u!114 &5052028028641032844 MonoBehaviour: m_ObjectHideFlags: 0 @@ -711,3 +512,69 @@ MonoBehaviour: m_BlendShapeIndex: 1 m_BlendShapeMin: 0 m_BlendShapeMax: 100 +--- !u!1001 &490287090769008218 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 6689389171845895219} + m_Modifications: + - target: {fileID: 1515492005369169331, guid: 1c54cdd9a14d96049a8d37d422bd0e17, type: 3} + propertyPath: m_Name + value: AudioAffordance + objectReference: {fileID: 0} + - target: {fileID: 5746416808058614602, guid: 1c54cdd9a14d96049a8d37d422bd0e17, type: 3} + propertyPath: m_AffordanceStateProvider + value: + objectReference: {fileID: 6689389173434678681} + - target: {fileID: 8501457409089496690, guid: 1c54cdd9a14d96049a8d37d422bd0e17, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8501457409089496690, guid: 1c54cdd9a14d96049a8d37d422bd0e17, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8501457409089496690, guid: 1c54cdd9a14d96049a8d37d422bd0e17, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8501457409089496690, guid: 1c54cdd9a14d96049a8d37d422bd0e17, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8501457409089496690, guid: 1c54cdd9a14d96049a8d37d422bd0e17, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8501457409089496690, guid: 1c54cdd9a14d96049a8d37d422bd0e17, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8501457409089496690, guid: 1c54cdd9a14d96049a8d37d422bd0e17, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8501457409089496690, guid: 1c54cdd9a14d96049a8d37d422bd0e17, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8501457409089496690, guid: 1c54cdd9a14d96049a8d37d422bd0e17, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8501457409089496690, guid: 1c54cdd9a14d96049a8d37d422bd0e17, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8501457409089496690, guid: 1c54cdd9a14d96049a8d37d422bd0e17, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 1c54cdd9a14d96049a8d37d422bd0e17, type: 3} +--- !u!4 &8302078025757585448 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8501457409089496690, guid: 1c54cdd9a14d96049a8d37d422bd0e17, type: 3} + m_PrefabInstance: {fileID: 490287090769008218} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Chess/PawnController.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/PawnController.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/Chess/PawnController.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/PawnController.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/PokeButton.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/PokeButton.prefab similarity index 68% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/PokeButton.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/PokeButton.prefab index 48ddc117..5ecd3222 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/PokeButton.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/PokeButton.prefab @@ -52,9 +52,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_InteractionManager: {fileID: 0} m_Colliders: [] - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 m_InteractionLayers: m_Bits: 1 m_DistanceCalculationMode: 1 @@ -113,33 +110,6 @@ MonoBehaviour: 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: [] --- !u!114 &2130331530761912221 MonoBehaviour: m_ObjectHideFlags: 0 @@ -291,6 +261,379 @@ BoxCollider: serializedVersion: 2 m_Size: {x: 1, y: 1, z: 1} m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &4434510254525139557 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8748052491345851914} + - component: {fileID: 2109709745044380960} + - component: {fileID: 3199942921445726553} + m_Layer: 0 + m_Name: AudioAffordance + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8748052491345851914 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4434510254525139557} + 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: 1858874181107226732} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!82 &2109709745044380960 +AudioSource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4434510254525139557} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 0} + m_PlayOnAwake: 0 + 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_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_Curve: + - serializedVersion: 3 + time: 0 + value: 0.75 + 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!114 &3199942921445726553 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4434510254525139557} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 186056f485a2493b80cc81571ac8cd9b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AffordanceStateProvider: {fileID: 383397362901904683} + m_AffordanceThemeDatum: + m_UseConstant: 0 + m_ConstantValue: + m_List: + - stateName: disabled + stateEntered: {fileID: 0} + stateExited: {fileID: 0} + - stateName: idle + stateEntered: {fileID: 0} + stateExited: {fileID: 0} + - stateName: hovered + stateEntered: {fileID: 0} + stateExited: {fileID: 0} + - stateName: hoveredPriority + stateEntered: {fileID: 0} + stateExited: {fileID: 0} + - stateName: selected + stateEntered: {fileID: 0} + stateExited: {fileID: 0} + - stateName: activated + stateEntered: {fileID: 0} + stateExited: {fileID: 0} + - stateName: focused + stateEntered: {fileID: 0} + stateExited: {fileID: 0} + m_Variable: {fileID: 11400000, guid: 57def9352cdee8548bfc9ebc6a55914a, type: 2} + m_AudioSource: {fileID: 2109709745044380960} +--- !u!1 &6683189824981813477 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1858874181107226732} + - component: {fileID: 383397362901904683} + m_Layer: 0 + m_Name: InteractionAffordance + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1858874181107226732 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6683189824981813477} + 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: 8748052491345851914} + - {fileID: 2721150326367477965} + m_Father: {fileID: 2130331530761912220} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &383397362901904683 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6683189824981813477} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 49e0a5b5ff5540f5b14dd29d46faec22, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TransitionDuration: 0.125 + m_InteractableSource: {fileID: 2130331530761912218} + m_IgnoreHoverEvents: 0 + m_IgnoreHoverPriorityEvents: 1 + m_IgnoreFocusEvents: 1 + m_IgnoreSelectEvents: 0 + m_IgnoreActivateEvents: 0 + m_SelectClickAnimationMode: 1 + m_ActivateClickAnimationMode: 1 + m_ClickAnimationDuration: 0.25 + m_ClickAnimationCurve: + m_UseConstant: 1 + m_ConstantValue: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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_Variable: {fileID: 0} +--- !u!1 &9213483171842931406 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2721150326367477965} + - component: {fileID: 6524287566887027744} + - component: {fileID: 2207781253836161479} + m_Layer: 0 + m_Name: Color Affordance + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2721150326367477965 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9213483171842931406} + 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: 1858874181107226732} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &6524287566887027744 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9213483171842931406} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1410cbaaadf84a7aaa6459d37ad21b3a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Renderer: {fileID: 8542569998572914694} + m_MaterialIndex: 0 +--- !u!114 &2207781253836161479 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9213483171842931406} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f86d13fca2ec430d870c0f7765ad0dde, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AffordanceStateProvider: {fileID: 383397362901904683} + m_ReplaceIdleStateValueWithInitialValue: 1 + m_AffordanceThemeDatum: + m_UseConstant: 0 + m_ConstantValue: + m_StateAnimationCurve: + m_UseConstant: 1 + m_ConstantValue: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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_Variable: {fileID: 0} + m_List: + - stateName: disabled + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: idle + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: hovered + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: hoveredPriority + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: selected + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: activated + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: focused + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + m_ColorBlendMode: 0 + m_BlendAmount: 1 + m_Variable: {fileID: 11400000, guid: 3ec238cb3e80e274c844d7b56f585392, type: 2} + m_ValueUpdated: + m_PersistentCalls: + m_Calls: [] + m_MaterialPropertyBlockHelper: {fileID: 6524287566887027744} + m_ColorPropertyName: --- !u!1001 &2130331531034647186 PrefabInstance: m_ObjectHideFlags: 0 @@ -528,80 +871,6 @@ Transform: m_CorrespondingSourceObject: {fileID: -4216859302048453862, guid: bf65382e5e6d14e7f8140e4204ce07e2, type: 3} m_PrefabInstance: {fileID: 2130331531283090352} m_PrefabAsset: {fileID: 0} ---- !u!1001 &2130331531568018692 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 2130331530761912220} - m_Modifications: - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} - propertyPath: m_RootOrder - value: 3 - objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1784108126610004015, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} - propertyPath: m_InteractableSource - value: - objectReference: {fileID: 2130331530761912218} - - target: {fileID: 4104645014554624858, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} - propertyPath: m_Renderer - value: - objectReference: {fileID: 8542569998572914694} - - target: {fileID: 4696973491166461409, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} - propertyPath: m_Name - value: InteractionAffordance - objectReference: {fileID: 0} - - target: {fileID: 5020720767714938420, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} - propertyPath: m_ReplaceIdleStateValueWithInitialValue - value: 1 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} ---- !u!4 &1858874181107226732 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 314259139610439016, guid: 9a5f820ee9c46b64294ae756b459a681, type: 3} - m_PrefabInstance: {fileID: 2130331531568018692} - m_PrefabAsset: {fileID: 0} --- !u!1001 &2130331532395832787 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/PokeButton.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/PokeButton.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/PokeButton.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/PokeButton.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/SimpleSocket.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/SimpleSocket.prefab similarity index 97% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/SimpleSocket.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/SimpleSocket.prefab index c6562c0f..dc12e008 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/SimpleSocket.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/SimpleSocket.prefab @@ -48,11 +48,9 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_InteractionManager: {fileID: 0} - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 m_InteractionLayers: m_Bits: 4294967295 + m_Handedness: 0 m_AttachTransform: {fileID: 5572517086321491450} m_KeepSelectedTargetValid: 1 m_DisableVisualsWhenBlockedInGroup: 1 @@ -72,18 +70,6 @@ MonoBehaviour: 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: 0 m_InteractableHoverMeshMaterial: {fileID: 0} m_InteractableCantHoverMeshMaterial: {fileID: 0} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/SimpleSocket.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/SimpleSocket.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/SimpleSocket.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/SimpleSocket.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/SimpleSocketShape.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/SimpleSocketShape.prefab similarity index 93% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/SimpleSocketShape.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/SimpleSocketShape.prefab index 16e7809f..ea54ffc9 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/SimpleSocketShape.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/SimpleSocketShape.prefab @@ -97,7 +97,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 3a84a7b91ec88714486e0c4cc9a5dc01, type: 2} + - {fileID: 2100000, guid: 76618f7490c40334fa7b685859587d2e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -149,9 +149,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_InteractionManager: {fileID: 0} m_Colliders: [] - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 1 m_InteractionLayers: m_Bits: 1 m_DistanceCalculationMode: 1 @@ -210,33 +207,6 @@ MonoBehaviour: 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: 3000186246023203508} m_SecondaryAttachTransform: {fileID: 0} m_UseDynamicAttach: 1 @@ -283,10 +253,10 @@ MonoBehaviour: m_ThrowAngularVelocityScale: 1 m_ForceGravityOnDetach: 0 m_RetainTransformParent: 1 - m_AttachPointCompatibilityMode: 0 m_StartingSingleGrabTransformers: [] m_StartingMultipleGrabTransformers: [] m_AddDefaultGrabTransformers: 1 + m_FarAttachMode: 0 --- !u!65 &2175187011753756096 BoxCollider: m_ObjectHideFlags: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/SimpleSocketShape.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/SimpleSocketShape.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/SimpleSocketShape.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/SimpleSocketShape.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/TableHandle.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/TableHandle.prefab similarity index 93% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/TableHandle.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/TableHandle.prefab index 82e39247..840214f2 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/TableHandle.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/TableHandle.prefab @@ -1,5 +1,199 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1 &2213068851608463849 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4947713856948696042} + - component: {fileID: 4314541616144226055} + - component: {fileID: 9207931725971051232} + - component: {fileID: 1496078646549329671} + m_Layer: 0 + m_Name: Material Affordance + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4947713856948696042 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2213068851608463849} + 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: 7403072356979171078} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4314541616144226055 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2213068851608463849} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1410cbaaadf84a7aaa6459d37ad21b3a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Renderer: {fileID: 7403072356348442413} + m_MaterialIndex: 0 +--- !u!114 &9207931725971051232 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2213068851608463849} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f86d13fca2ec430d870c0f7765ad0dde, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AffordanceStateProvider: {fileID: 7403072356979171075} + m_ReplaceIdleStateValueWithInitialValue: 0 + m_AffordanceThemeDatum: + m_UseConstant: 0 + m_ConstantValue: + m_StateAnimationCurve: + m_UseConstant: 1 + m_ConstantValue: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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_Variable: {fileID: 0} + m_List: + - stateName: disabled + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: idle + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: hovered + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: hoveredPriority + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: selected + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: activated + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: focused + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + m_ColorBlendMode: 0 + m_BlendAmount: 1 + m_Variable: {fileID: 11400000, guid: fc690d1505c48cb4696838b71abd2ca0, type: 2} + m_ValueUpdated: + m_PersistentCalls: + m_Calls: [] + m_MaterialPropertyBlockHelper: {fileID: 4314541616144226055} + m_ColorPropertyName: _RimColor +--- !u!114 &1496078646549329671 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2213068851608463849} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 629ea686265f47f082ba5732cffad1cf, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AffordanceStateProvider: {fileID: 0} + m_ReplaceIdleStateValueWithInitialValue: 0 + m_AffordanceThemeDatum: + m_UseConstant: 0 + m_ConstantValue: + m_StateAnimationCurve: + m_UseConstant: 1 + m_ConstantValue: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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_Variable: {fileID: 0} + m_List: + - stateName: disabled + animationStateStartValue: 0 + animationStateEndValue: 0 + - stateName: idle + animationStateStartValue: 0 + animationStateEndValue: 0 + - stateName: hovered + animationStateStartValue: 0 + animationStateEndValue: 0 + - stateName: hoveredPriority + animationStateStartValue: 0 + animationStateEndValue: 0 + - stateName: selected + animationStateStartValue: 0 + animationStateEndValue: 0 + - stateName: activated + animationStateStartValue: 0 + animationStateEndValue: 0 + - stateName: focused + animationStateStartValue: 0 + animationStateEndValue: 0 + m_Variable: {fileID: 11400000, guid: c2712227db89c5142adad58b143bf039, type: 2} + m_ValueUpdated: + m_PersistentCalls: + m_Calls: [] + m_MaterialPropertyBlockHelper: {fileID: 4314541616144226055} + m_FloatPropertyName: _RimPower --- !u!1 &5209669283067494015 GameObject: m_ObjectHideFlags: 0 @@ -222,8 +416,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 455ef821a5429de4baeed61fa958acbc, type: 2} - - {fileID: 2100000, guid: 0b91f81225004e24ca905a5f32567d5d, type: 2} + - {fileID: 2100000, guid: f5ccd52dc494e054fbe7d7161dcabe25, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -265,7 +458,7 @@ GameObject: - component: {fileID: 7403072356416083934} - component: {fileID: 7403072356416083935} - component: {fileID: 7403072356416083929} - - component: {fileID: 7403072356416083928} + - component: {fileID: 7185658523818339205} - component: {fileID: 820650513654450291} m_Layer: 0 m_Name: TableHandle @@ -323,9 +516,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_InteractionManager: {fileID: 0} m_Colliders: [] - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 m_InteractionLayers: m_Bits: 1 m_DistanceCalculationMode: 0 @@ -384,33 +574,6 @@ MonoBehaviour: 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: 1 @@ -457,14 +620,14 @@ MonoBehaviour: m_ThrowAngularVelocityScale: 1 m_ForceGravityOnDetach: 0 m_RetainTransformParent: 1 - m_AttachPointCompatibilityMode: 0 m_StartingSingleGrabTransformers: - {fileID: 7403072356416083929} - - {fileID: 7403072356416083928} + - {fileID: 7185658523818339205} m_StartingMultipleGrabTransformers: - {fileID: 7403072356416083929} - - {fileID: 7403072356416083928} + - {fileID: 7185658523818339205} m_AddDefaultGrabTransformers: 0 + m_FarAttachMode: 0 --- !u!114 &7403072356416083929 MonoBehaviour: m_ObjectHideFlags: 0 @@ -488,7 +651,7 @@ MonoBehaviour: m_MinimumScaleRatio: 0.25 m_MaximumScaleRatio: 2 m_ScaleMultiplier: 0.25 ---- !u!114 &7403072356416083928 +--- !u!114 &7185658523818339205 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -497,7 +660,7 @@ MonoBehaviour: m_GameObject: {fileID: 7403072356416083904} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 24386a87b5e733943809081267792754, type: 3} + m_Script: {fileID: 11500000, guid: 4dd2e41114c62b44fbd334ca5b314352, type: 3} m_Name: m_EditorClassIdentifier: m_PermittedRotationAxis: 2 @@ -525,9 +688,6 @@ GameObject: m_Component: - component: {fileID: 7403072356979171078} - component: {fileID: 7403072356979171075} - - component: {fileID: 7403072356979171076} - - component: {fileID: 7403072356979171077} - - component: {fileID: 7403072356979171074} - component: {fileID: 3331925869084700775} m_Layer: 0 m_Name: Affordance @@ -549,6 +709,7 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 3133794072027396999} + - {fileID: 4947713856948696042} m_Father: {fileID: 7403072356416083930} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -601,166 +762,6 @@ MonoBehaviour: m_PostInfinity: 2 m_RotationOrder: 4 m_Variable: {fileID: 0} ---- !u!114 &7403072356979171076 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7403072356979171079} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1410cbaaadf84a7aaa6459d37ad21b3a, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Renderer: {fileID: 7403072356348442413} - m_MaterialIndex: 1 ---- !u!114 &7403072356979171077 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7403072356979171079} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f86d13fca2ec430d870c0f7765ad0dde, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AffordanceStateProvider: {fileID: 7403072356979171075} - m_ReplaceIdleStateValueWithInitialValue: 0 - m_AffordanceThemeDatum: - m_UseConstant: 0 - m_ConstantValue: - m_StateAnimationCurve: - m_UseConstant: 1 - m_ConstantValue: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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_Variable: {fileID: 0} - m_List: - - stateName: disabled - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - - stateName: idle - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - - stateName: hovered - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - - stateName: hoveredPriority - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - - stateName: selected - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - - stateName: activated - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - - stateName: focused - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - m_ColorBlendMode: 0 - m_BlendAmount: 1 - m_Variable: {fileID: 11400000, guid: 6b0360f219436394b8519378cd55c7e3, type: 2} - m_ValueUpdated: - m_PersistentCalls: - m_Calls: [] - m_MaterialPropertyBlockHelper: {fileID: 7403072356979171076} - m_ColorPropertyName: _EdgeColor ---- !u!114 &7403072356979171074 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7403072356979171079} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 629ea686265f47f082ba5732cffad1cf, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AffordanceStateProvider: {fileID: 7403072356979171075} - m_ReplaceIdleStateValueWithInitialValue: 0 - m_AffordanceThemeDatum: - m_UseConstant: 0 - m_ConstantValue: - m_StateAnimationCurve: - m_UseConstant: 1 - m_ConstantValue: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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_Variable: {fileID: 0} - m_List: - - stateName: disabled - animationStateStartValue: 0 - animationStateEndValue: 0 - - stateName: idle - animationStateStartValue: 0 - animationStateEndValue: 0 - - stateName: hovered - animationStateStartValue: 0 - animationStateEndValue: 0 - - stateName: hoveredPriority - animationStateStartValue: 0 - animationStateEndValue: 0 - - stateName: selected - animationStateStartValue: 0 - animationStateEndValue: 0 - - stateName: activated - animationStateStartValue: 0 - animationStateEndValue: 0 - - stateName: focused - animationStateStartValue: 0 - animationStateEndValue: 0 - m_Variable: {fileID: 11400000, guid: 2d9d4878bfb037248af1d243a0638dd0, type: 2} - m_ValueUpdated: - m_PersistentCalls: - m_Calls: [] - m_MaterialPropertyBlockHelper: {fileID: 7403072356979171076} - m_FloatPropertyName: _Power --- !u!114 &3331925869084700775 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/TableHandle.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/TableHandle.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/TableHandle.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/TableHandle.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/Hand Menu With Button Activation.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/ButtonHandMenu.prefab similarity index 99% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/Hand Menu With Button Activation.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/ButtonHandMenu.prefab index 140c5078..79652725 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/Hand Menu With Button Activation.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/ButtonHandMenu.prefab @@ -137,6 +137,8 @@ MonoBehaviour: m_MenuVisibleGazeAngleDivergenceThreshold: 35 m_AnimateMenuHideAndReveal: 1 m_RevealHideAnimationDuration: 0.1 + m_HideMenuOnSelect: 1 + m_InteractionManager: {fileID: 0} m_HandTrackingFollowPreset: m_UseConstant: 0 m_ConstantValue: @@ -234,6 +236,8 @@ MonoBehaviour: m_MenuVisibleGazeAngleDivergenceThreshold: 30 m_AnimateMenuHideAndReveal: 1 m_RevealHideAnimationDuration: 0.1 + m_HideMenuOnSelect: 1 + m_InteractionManager: {fileID: 0} m_HandTrackingFollowPreset: m_UseConstant: 0 m_ConstantValue: @@ -1283,7 +1287,7 @@ GameObject: m_Component: - component: {fileID: 5030734267259534325} m_Layer: 0 - m_Name: Hand Menu With Button Activation + m_Name: ButtonHandMenu m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/Hand Menu With Button Activation.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/ButtonHandMenu.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/Hand Menu With Button Activation.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/ButtonHandMenu.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/Hand Menu Setup With ScrollView Variant.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/ScrollHandMenu.prefab similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/Hand Menu Setup With ScrollView Variant.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/ScrollHandMenu.prefab diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/Hand Menu Setup With ScrollView Variant.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/ScrollHandMenu.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/Hand Menu Setup With ScrollView Variant.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/ScrollHandMenu.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/Scroll View.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/ScrollView.prefab similarity index 99% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/Scroll View.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/ScrollView.prefab index 61777b3c..02d1530e 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/Scroll View.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/ScrollView.prefab @@ -232,7 +232,7 @@ GameObject: - component: {fileID: 6183026901214721047} - component: {fileID: 6183026901214721046} m_Layer: 5 - m_Name: Scroll View + m_Name: ScrollView m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/Scroll View.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/ScrollView.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/Scroll View.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/ScrollView.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/Scroll View Item.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/ScrollViewItem.prefab similarity index 99% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/Scroll View Item.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/ScrollViewItem.prefab index 3f602bd1..d71903b7 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/Scroll View Item.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/ScrollViewItem.prefab @@ -93,7 +93,7 @@ GameObject: - component: {fileID: 747562692447532201} - component: {fileID: 4843924787302882066} m_Layer: 5 - m_Name: Scroll View Item + m_Name: ScrollViewItem m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/Scroll View Item.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/ScrollViewItem.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/Scroll View Item.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/ScrollViewItem.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/TouchPad Button.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/TouchPadButton.prefab similarity index 99% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/TouchPad Button.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/TouchPadButton.prefab index b83356d5..89935362 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/TouchPad Button.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/TouchPadButton.prefab @@ -148,7 +148,7 @@ GameObject: - component: {fileID: 6843260260195551652} - component: {fileID: 2428494541859028798} m_Layer: 5 - m_Name: TouchPad Button + m_Name: TouchPadButton m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/TouchPad Button.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/TouchPadButton.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/TouchPad Button.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Prefabs/UI/TouchPadButton.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Scripts.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Scripts.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ObjectResetPlane.cs b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ObjectResetPlane.cs similarity index 90% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ObjectResetPlane.cs rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ObjectResetPlane.cs index 89ee3f30..68f2817f 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ObjectResetPlane.cs +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ObjectResetPlane.cs @@ -1,3 +1,4 @@ +using System.Collections; using System.Collections.Generic; namespace UnityEngine.XR.Interaction.Toolkit.Samples.Hands @@ -33,10 +34,10 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.Hands if (currentTransform != null) { var position = currentTransform.position; - + if (m_ObjectRoot != null) position = m_ObjectRoot.InverseTransformPoint(currentTransform.position); - + m_OriginalPositions.Add(new Pose(position, currentTransform.rotation)); } else @@ -78,11 +79,18 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.Hands var rigidBody = currentTransform.GetComponentInChildren(); if (rigidBody != null) { - rigidBody.velocity = Vector3.zero; - rigidBody.angularVelocity = Vector3.zero; + StartCoroutine(ResetRigidbodyRoutine(rigidBody)); } } } } + + IEnumerator ResetRigidbodyRoutine(Rigidbody body) + { + body.isKinematic = true; + yield return new WaitForFixedUpdate(); + body.isKinematic = false; + + } } } diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ObjectResetPlane.cs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ObjectResetPlane.cs.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ObjectResetPlane.cs.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ObjectResetPlane.cs.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/PokeBlendShapeAnimator.cs b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/PokeBlendShapeAnimator.cs similarity index 95% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/PokeBlendShapeAnimator.cs rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/PokeBlendShapeAnimator.cs index 877775a2..f70af262 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/PokeBlendShapeAnimator.cs +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/PokeBlendShapeAnimator.cs @@ -1,6 +1,7 @@ using Unity.XR.CoreUtils.Bindings; using UnityEngine.XR.Interaction.Toolkit.AffordanceSystem.State; using UnityEngine.XR.Interaction.Toolkit.Filtering; +using UnityEngine.XR.Interaction.Toolkit.Interactables; using UnityEngine.XR.Interaction.Toolkit.Utilities.Tweenables.Primitives; namespace UnityEngine.XR.Interaction.Toolkit.Samples.Hands @@ -17,15 +18,15 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.Hands [SerializeField] [Tooltip("The SkinnedMeshRenderer to animate.")] SkinnedMeshRenderer m_SkinnedMeshRenderer; - + [SerializeField] [Tooltip("The index of the blend shape to animate.")] int m_BlendShapeIndex; - + [SerializeField] [Tooltip("The minimum blend shape value.")] float m_BlendShapeMin; - + [SerializeField] [Tooltip("The maximum blend shape value.")] float m_BlendShapeMax = 100f; @@ -34,10 +35,12 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.Hands IXRHoverInteractable m_HoverInteractable; IXRInteractionStrengthInteractable m_InteractionStrengthInteractable; +#pragma warning disable CS0618 // Type or member is obsolete readonly FloatTweenableVariable m_TweenableVariable = new FloatTweenableVariable(); +#pragma warning restore CS0618 // Type or member is obsolete float m_TweenTarget; - + /// /// See . /// @@ -51,7 +54,7 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.Hands m_HoverInteractable = m_PokeFilter.GetComponent(); m_InteractionStrengthInteractable = m_PokeFilter.GetComponent(); - + m_BindingsGroup.AddBinding(m_PokeFilter.pokeStateData.Subscribe(data => { var blendShapeValue = Mathf.Lerp(m_BlendShapeMin, m_BlendShapeMax, data.interactionStrength); diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/PokeBlendShapeAnimator.cs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/PokeBlendShapeAnimator.cs.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/PokeBlendShapeAnimator.cs.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/PokeBlendShapeAnimator.cs.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ToggleGameObject.cs b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ToggleGameObject.cs similarity index 98% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ToggleGameObject.cs rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ToggleGameObject.cs index 25ec3056..ac7f7e38 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ToggleGameObject.cs +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ToggleGameObject.cs @@ -32,7 +32,7 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.Hands { m_CurrentlyActive = value; activationGameObject.SetActive(m_CurrentlyActive); - } + } } /// diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ToggleGameObject.cs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ToggleGameObject.cs.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ToggleGameObject.cs.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ToggleGameObject.cs.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ToggleGraphicToggler.cs b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ToggleGraphicToggler.cs similarity index 99% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ToggleGraphicToggler.cs rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ToggleGraphicToggler.cs index 7096bcf3..3fb0acc6 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ToggleGraphicToggler.cs +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ToggleGraphicToggler.cs @@ -48,7 +48,7 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.Hands m_TargetToggle.targetGraphic = m_ToggleOnGraphic; else m_TargetToggle.targetGraphic = m_ToggleOffGraphic; - + m_ToggleOnGraphic.gameObject.SetActive(isOn); } } diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ToggleGraphicToggler.cs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ToggleGraphicToggler.cs.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ToggleGraphicToggler.cs.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/ToggleGraphicToggler.cs.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/TransformSync.cs b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/TransformSync.cs similarity index 96% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/TransformSync.cs rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/TransformSync.cs index 2d647bcd..8635c694 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/TransformSync.cs +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/TransformSync.cs @@ -23,9 +23,11 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.Hands bool m_HasRigidbody; Transform m_ThisTransform; - + +#pragma warning disable CS0618 // Type or member is obsolete readonly Vector3TweenableVariable m_PositionTweenable = new Vector3TweenableVariable(); readonly QuaternionTweenableVariable m_RotationTweenable = new QuaternionTweenableVariable(); +#pragma warning restore CS0618 // Type or member is obsolete /// /// See . @@ -77,11 +79,11 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.Hands { m_PositionTweenable.target = m_ThisTransform.position; m_RotationTweenable.target = m_ThisTransform.rotation; - + var tweenTarget = m_SmoothFollowSpeed > 0f ? m_SmoothFollowSpeed * Time.deltaTime : 1f; m_PositionTweenable.HandleTween(tweenTarget); m_RotationTweenable.HandleTween(tweenTarget); - + if (!m_HasRigidbody && m_HasTransform) m_TargetTransform.SetPositionAndRotation(m_PositionTweenable.Value, m_RotationTweenable.Value); } diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/TransformSync.cs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/TransformSync.cs.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/TransformSync.cs.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/TransformSync.cs.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Unity.XR.Interaction.Toolkit.Samples.Hands.asmdef b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsInteractionDemo.asmdef similarity index 84% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Unity.XR.Interaction.Toolkit.Samples.Hands.asmdef rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsInteractionDemo.asmdef index 904f8a30..f6a93f38 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Unity.XR.Interaction.Toolkit.Samples.Hands.asmdef +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsInteractionDemo.asmdef @@ -25,6 +25,11 @@ "name": "com.unity.xr.hands", "expression": "1.2.1", "define": "XR_HANDS_1_2_OR_NEWER" + }, + { + "name": "com.unity.xr.hands", + "expression": "1.5.0-pre.3", + "define": "XR_HANDS_1_5_OR_NEWER" } ], "noEngineReferences": false diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Unity.XR.Interaction.Toolkit.Samples.Hands.asmdef.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsInteractionDemo.asmdef.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Unity.XR.Interaction.Toolkit.Samples.Hands.asmdef.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/HandsInteractionDemo.asmdef.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Materials.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Materials.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Materials.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Materials.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Materials/DepthOnly.mat b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Materials/DepthOnly.mat similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Materials/DepthOnly.mat rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Materials/DepthOnly.mat diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Materials/DepthOnly.mat.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Materials/DepthOnly.mat.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Materials/DepthOnly.mat.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Materials/DepthOnly.mat.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Materials/Unity_Hand_Dark.mat b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Materials/Unity_Hand_Dark.mat similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Materials/Unity_Hand_Dark.mat rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Materials/Unity_Hand_Dark.mat diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Materials/Unity_Hand_Dark.mat.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Materials/Unity_Hand_Dark.mat.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Materials/Unity_Hand_Dark.mat.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Materials/Unity_Hand_Dark.mat.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Materials/Unity_Hand_Light.mat b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Materials/Unity_Hand_Light.mat similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Materials/Unity_Hand_Light.mat rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Materials/Unity_Hand_Light.mat diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Materials/Unity_Hand_Light.mat.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Materials/Unity_Hand_Light.mat.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Materials/Unity_Hand_Light.mat.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Materials/Unity_Hand_Light.mat.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Materials/Unity_Hand_Medium.mat b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Materials/Unity_Hand_Medium.mat similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Materials/Unity_Hand_Medium.mat rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Materials/Unity_Hand_Medium.mat diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Materials/Unity_Hand_Medium.mat.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Materials/Unity_Hand_Medium.mat.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Materials/Unity_Hand_Medium.mat.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Materials/Unity_Hand_Medium.mat.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Affordances/Hand Direct Interactor Affordances.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/HandInteractorAffordances.prefab similarity index 99% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Affordances/Hand Direct Interactor Affordances.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/HandInteractorAffordances.prefab index 72adda3a..8ac6612e 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Affordances/Hand Direct Interactor Affordances.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/HandInteractorAffordances.prefab @@ -15,7 +15,7 @@ GameObject: - component: {fileID: 1881156673079181450} - component: {fileID: 3535746112591574420} m_Layer: 0 - m_Name: Hand Direct Interactor Affordances + m_Name: HandInteractorAffordances m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Affordances/Hand Direct Interactor Affordances.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/HandInteractorAffordances.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Affordances/Hand Direct Interactor Affordances.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/HandInteractorAffordances.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Hand Menu Setup.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/HandMenuRig.prefab similarity index 99% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Hand Menu Setup.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/HandMenuRig.prefab index 526a0624..e62a2e47 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Hand Menu Setup.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/HandMenuRig.prefab @@ -11,7 +11,7 @@ GameObject: - component: {fileID: 5909398001603780732} - component: {fileID: 6324184579401567070} m_Layer: 0 - m_Name: Hand Menu Setup + m_Name: HandMenuRig m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -59,6 +59,8 @@ MonoBehaviour: m_MenuVisibleGazeAngleDivergenceThreshold: 35 m_AnimateMenuHideAndReveal: 1 m_RevealHideAnimationDuration: 0.1 + m_HideMenuOnSelect: 1 + m_InteractionManager: {fileID: 0} m_HandTrackingFollowPreset: m_UseConstant: 0 m_ConstantValue: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Hand Menu Setup.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/HandMenuRig.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Hand Menu Setup.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/HandMenuRig.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Affordances/Hand Poke Interactor Affordances.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/HandPokeInteractorAffordances.prefab similarity index 99% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Affordances/Hand Poke Interactor Affordances.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/HandPokeInteractorAffordances.prefab index df685f26..af91ebd2 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Affordances/Hand Poke Interactor Affordances.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/HandPokeInteractorAffordances.prefab @@ -14,7 +14,7 @@ GameObject: - component: {fileID: 3626493631032143716} - component: {fileID: 3626493631032143717} m_Layer: 0 - m_Name: Hand Poke Interactor Affordances + m_Name: HandPokeInteractorAffordances m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Affordances/Hand Poke Interactor Affordances.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/HandPokeInteractorAffordances.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Affordances/Hand Poke Interactor Affordances.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/HandPokeInteractorAffordances.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/InteractionAffordance.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/InteractionAffordance.prefab similarity index 75% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/InteractionAffordance.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/InteractionAffordance.prefab index 23d30faf..8eaf29eb 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/InteractionAffordance.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/InteractionAffordance.prefab @@ -31,7 +31,7 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 314259139610439016} - m_RootOrder: 1 + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!82 &60592885034133540 AudioSource: @@ -169,6 +169,200 @@ MonoBehaviour: stateExited: {fileID: 0} m_Variable: {fileID: 11400000, guid: 57def9352cdee8548bfc9ebc6a55914a, type: 2} m_AudioSource: {fileID: 60592885034133540} +--- !u!1 &3196468547072183565 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8521807588786738958} + - component: {fileID: 651352808372728803} + - component: {fileID: 5558392255022446084} + - component: {fileID: 2749842065993389027} + m_Layer: 0 + m_Name: Material Affordance + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8521807588786738958 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3196468547072183565} + m_LocalRotation: {x: -0, y: -0, z: -0.00000001452281, 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: 314259139610439016} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &651352808372728803 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3196468547072183565} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1410cbaaadf84a7aaa6459d37ad21b3a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Renderer: {fileID: 0} + m_MaterialIndex: 0 +--- !u!114 &5558392255022446084 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3196468547072183565} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f86d13fca2ec430d870c0f7765ad0dde, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AffordanceStateProvider: {fileID: 1784108126610004015} + m_ReplaceIdleStateValueWithInitialValue: 0 + m_AffordanceThemeDatum: + m_UseConstant: 0 + m_ConstantValue: + m_StateAnimationCurve: + m_UseConstant: 1 + m_ConstantValue: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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_Variable: {fileID: 0} + m_List: + - stateName: disabled + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: idle + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: hovered + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: hoveredPriority + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: selected + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: activated + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: focused + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + m_ColorBlendMode: 0 + m_BlendAmount: 1 + m_Variable: {fileID: 11400000, guid: 8b0b5aede76faac438e02d2a468f4805, type: 2} + m_ValueUpdated: + m_PersistentCalls: + m_Calls: [] + m_MaterialPropertyBlockHelper: {fileID: 651352808372728803} + m_ColorPropertyName: _RimColor +--- !u!114 &2749842065993389027 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3196468547072183565} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 629ea686265f47f082ba5732cffad1cf, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AffordanceStateProvider: {fileID: 1784108126610004015} + m_ReplaceIdleStateValueWithInitialValue: 0 + m_AffordanceThemeDatum: + m_UseConstant: 0 + m_ConstantValue: + m_StateAnimationCurve: + m_UseConstant: 1 + m_ConstantValue: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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_Variable: {fileID: 0} + m_List: + - stateName: disabled + animationStateStartValue: 0 + animationStateEndValue: 0 + - stateName: idle + animationStateStartValue: 0 + animationStateEndValue: 0 + - stateName: hovered + animationStateStartValue: 0 + animationStateEndValue: 0 + - stateName: hoveredPriority + animationStateStartValue: 0 + animationStateEndValue: 0 + - stateName: selected + animationStateStartValue: 0 + animationStateEndValue: 0 + - stateName: activated + animationStateStartValue: 0 + animationStateEndValue: 0 + - stateName: focused + animationStateStartValue: 0 + animationStateEndValue: 0 + m_Variable: {fileID: 11400000, guid: 795305341a8dbbd46ae54e9a01d6ea95, type: 2} + m_ValueUpdated: + m_PersistentCalls: + m_Calls: [] + m_MaterialPropertyBlockHelper: {fileID: 651352808372728803} + m_FloatPropertyName: _RimPower --- !u!1 &4696973491166461409 GameObject: m_ObjectHideFlags: 0 @@ -198,8 +392,8 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1112359677375758233} - {fileID: 7275325890891809550} + - {fileID: 8521807588786738958} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -252,121 +446,3 @@ MonoBehaviour: m_PostInfinity: 2 m_RotationOrder: 4 m_Variable: {fileID: 0} ---- !u!1 &7164804159106004020 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1112359677375758233} - - component: {fileID: 4104645014554624858} - - component: {fileID: 5020720767714938420} - m_Layer: 0 - m_Name: ColorAffordance - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1112359677375758233 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7164804159106004020} - 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: 314259139610439016} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &4104645014554624858 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7164804159106004020} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1410cbaaadf84a7aaa6459d37ad21b3a, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Renderer: {fileID: 0} - m_MaterialIndex: 0 ---- !u!114 &5020720767714938420 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7164804159106004020} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f86d13fca2ec430d870c0f7765ad0dde, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AffordanceStateProvider: {fileID: 1784108126610004015} - m_ReplaceIdleStateValueWithInitialValue: 1 - m_AffordanceThemeDatum: - m_UseConstant: 0 - m_ConstantValue: - m_StateAnimationCurve: - m_UseConstant: 1 - m_ConstantValue: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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_Variable: {fileID: 0} - m_List: - - stateName: disabled - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - - stateName: idle - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - - stateName: hovered - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - - stateName: hoveredPriority - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - - stateName: selected - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - - stateName: activated - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - m_ColorBlendMode: 0 - m_BlendAmount: 1 - m_Variable: {fileID: 11400000, guid: 2447c2ae63ed301429bb0f32f88ef8ce, type: 2} - m_ValueUpdated: - m_PersistentCalls: - m_Calls: [] - m_MaterialPropertyBlockHelper: {fileID: 4104645014554624858} - m_ColorPropertyName: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/InteractionAffordance.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/InteractionAffordance.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/InteractionAffordance.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/InteractionAffordance.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Left Hand Interaction Visual.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/LeftHandInteractionVisual.prefab similarity index 92% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Left Hand Interaction Visual.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/LeftHandInteractionVisual.prefab index ab84afd4..67a7e72c 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Left Hand Interaction Visual.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/LeftHandInteractionVisual.prefab @@ -108,7 +108,7 @@ GameObject: - component: {fileID: 2599780285154657760} - component: {fileID: 3113203136159532523} m_Layer: 0 - m_Name: Left Hand Interaction Visual + m_Name: LeftHandInteractionVisual m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -130,7 +130,6 @@ Transform: - {fileID: 4720211885633772024} - {fileID: 4117179676178661334} - {fileID: 1493371769922722511} - - {fileID: 1593233024999764059} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -1106,72 +1105,6 @@ Transform: m_Father: {fileID: 273800246811882027} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &1389875722460851 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 1595251472046566641} - m_Modifications: - - target: {fileID: 1592230186234949352, guid: e411b46c5d2514e49b26bd300e9ed8ce, type: 3} - propertyPath: m_RootOrder - value: 4 - objectReference: {fileID: 0} - - target: {fileID: 1592230186234949352, guid: e411b46c5d2514e49b26bd300e9ed8ce, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1592230186234949352, guid: e411b46c5d2514e49b26bd300e9ed8ce, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1592230186234949352, guid: e411b46c5d2514e49b26bd300e9ed8ce, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1592230186234949352, guid: e411b46c5d2514e49b26bd300e9ed8ce, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1592230186234949352, guid: e411b46c5d2514e49b26bd300e9ed8ce, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 1592230186234949352, guid: e411b46c5d2514e49b26bd300e9ed8ce, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 1592230186234949352, guid: e411b46c5d2514e49b26bd300e9ed8ce, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 1592230186234949352, guid: e411b46c5d2514e49b26bd300e9ed8ce, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1592230186234949352, guid: e411b46c5d2514e49b26bd300e9ed8ce, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1592230186234949352, guid: e411b46c5d2514e49b26bd300e9ed8ce, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1592230186234949353, guid: e411b46c5d2514e49b26bd300e9ed8ce, type: 3} - propertyPath: m_Name - value: Hand Ray Interactor Affordances - objectReference: {fileID: 0} - - target: {fileID: 1592230186234949357, guid: e411b46c5d2514e49b26bd300e9ed8ce, type: 3} - propertyPath: m_Renderer - value: - objectReference: {fileID: 1086252671028184794} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: e411b46c5d2514e49b26bd300e9ed8ce, type: 3} ---- !u!4 &1593233024999764059 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 1592230186234949352, guid: e411b46c5d2514e49b26bd300e9ed8ce, type: 3} - m_PrefabInstance: {fileID: 1389875722460851} - m_PrefabAsset: {fileID: 0} --- !u!1001 &824384837593141428 PrefabInstance: m_ObjectHideFlags: 0 @@ -1247,7 +1180,7 @@ PrefabInstance: m_Modifications: - target: {fileID: 3535746112591574418, guid: 67c52e745f2766644ba16bfb165e2659, type: 3} propertyPath: m_Name - value: Hand Direct Interactor Affordances + value: Hand Near-Far Interactor Affordances objectReference: {fileID: 0} - target: {fileID: 3535746112591574419, guid: 67c52e745f2766644ba16bfb165e2659, type: 3} propertyPath: m_RootOrder diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Left Hand Interaction Visual.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/LeftHandInteractionVisual.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Left Hand Interaction Visual.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/LeftHandInteractionVisual.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Pinch Point Stabilized.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/PinchPointStabilized.prefab similarity index 83% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Pinch Point Stabilized.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/PinchPointStabilized.prefab index 6e01e991..9c87aac7 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Pinch Point Stabilized.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/PinchPointStabilized.prefab @@ -11,10 +11,6 @@ GameObject: - component: {fileID: 1517203009072151852} - component: {fileID: 6379762978650309333} - component: {fileID: 1538976526839647015} - - component: {fileID: 3733241858151303650} - - component: {fileID: 2873834594852043269} - - component: {fileID: 7090018163761373624} - - component: {fileID: 8002132081376868790} - component: {fileID: 8232174397725000580} - component: {fileID: 9205766622909133630} m_Layer: 0 @@ -59,8 +55,7 @@ SkinnedMeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 455ef821a5429de4baeed61fa958acbc, type: 2} - - {fileID: 2100000, guid: 0b91f81225004e24ca905a5f32567d5d, type: 2} + - {fileID: 2100000, guid: f5ccd52dc494e054fbe7d7161dcabe25, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -166,240 +161,6 @@ MonoBehaviour: m_Calls: [] m_SkinnedMeshRenderer: {fileID: 6379762978650309333} m_BlendShapeIndex: 0 ---- !u!114 &3733241858151303650 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2181396665701132182} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1410cbaaadf84a7aaa6459d37ad21b3a, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Renderer: {fileID: 6379762978650309333} - m_MaterialIndex: 1 ---- !u!114 &2873834594852043269 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2181396665701132182} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f86d13fca2ec430d870c0f7765ad0dde, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AffordanceStateProvider: {fileID: 3941121930630195656} - m_ReplaceIdleStateValueWithInitialValue: 0 - m_AffordanceThemeDatum: - m_UseConstant: 0 - m_ConstantValue: - m_StateAnimationCurve: - m_UseConstant: 1 - m_ConstantValue: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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_Variable: {fileID: 0} - m_List: - - stateName: disabled - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - - stateName: idle - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - - stateName: hovered - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - - stateName: hoveredPriority - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - - stateName: selected - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - - stateName: activated - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - - stateName: focused - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - m_ColorBlendMode: 0 - m_BlendAmount: 1 - m_Variable: {fileID: 11400000, guid: 1468864c36cbf39428681b1f0d9ef149, type: 2} - m_ValueUpdated: - m_PersistentCalls: - m_Calls: [] - m_MaterialPropertyBlockHelper: {fileID: 3733241858151303650} - m_ColorPropertyName: _MainColor ---- !u!114 &7090018163761373624 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2181396665701132182} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f86d13fca2ec430d870c0f7765ad0dde, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AffordanceStateProvider: {fileID: 3941121930630195656} - m_ReplaceIdleStateValueWithInitialValue: 0 - m_AffordanceThemeDatum: - m_UseConstant: 0 - m_ConstantValue: - m_StateAnimationCurve: - m_UseConstant: 1 - m_ConstantValue: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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_Variable: {fileID: 0} - m_List: - - stateName: disabled - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - - stateName: idle - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - - stateName: hovered - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - - stateName: hoveredPriority - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - - stateName: selected - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - - stateName: activated - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - - stateName: focused - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - m_ColorBlendMode: 0 - m_BlendAmount: 1 - m_Variable: {fileID: 11400000, guid: 6b0360f219436394b8519378cd55c7e3, type: 2} - m_ValueUpdated: - m_PersistentCalls: - m_Calls: [] - m_MaterialPropertyBlockHelper: {fileID: 3733241858151303650} - m_ColorPropertyName: _EdgeColor ---- !u!114 &8002132081376868790 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2181396665701132182} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 629ea686265f47f082ba5732cffad1cf, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AffordanceStateProvider: {fileID: 3941121930630195656} - m_ReplaceIdleStateValueWithInitialValue: 0 - m_AffordanceThemeDatum: - m_UseConstant: 0 - m_ConstantValue: - m_StateAnimationCurve: - m_UseConstant: 1 - m_ConstantValue: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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_Variable: {fileID: 0} - m_List: - - stateName: disabled - animationStateStartValue: 0 - animationStateEndValue: 0 - - stateName: idle - animationStateStartValue: 0 - animationStateEndValue: 0 - - stateName: hovered - animationStateStartValue: 0 - animationStateEndValue: 0 - - stateName: hoveredPriority - animationStateStartValue: 0 - animationStateEndValue: 0 - - stateName: selected - animationStateStartValue: 0 - animationStateEndValue: 0 - - stateName: activated - animationStateStartValue: 0 - animationStateEndValue: 0 - - stateName: focused - animationStateStartValue: 0 - animationStateEndValue: 0 - m_Variable: {fileID: 11400000, guid: 2d9d4878bfb037248af1d243a0638dd0, type: 2} - m_ValueUpdated: - m_PersistentCalls: - m_Calls: [] - m_MaterialPropertyBlockHelper: {fileID: 3733241858151303650} - m_FloatPropertyName: _Power --- !u!114 &8232174397725000580 MonoBehaviour: m_ObjectHideFlags: 0 @@ -412,7 +173,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 865d01d2834c9cb4caa8f2c901104c2d, type: 3} m_Name: m_EditorClassIdentifier: - m_AffordanceStateProvider: {fileID: 0} + m_AffordanceStateProvider: {fileID: 3941121930630195656} m_ReplaceIdleStateValueWithInitialValue: 0 m_AffordanceThemeDatum: m_UseConstant: 0 @@ -584,6 +345,37 @@ MonoBehaviour: m_PersistentCalls: m_Calls: [] m_TransformToScale: {fileID: 1517203009072151852} +--- !u!1 &3275437478627839725 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5697399126433476533} + m_Layer: 0 + m_Name: Pinch Visual Offset + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5697399126433476533 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3275437478627839725} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0.015} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7962545760240945814} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &3369527167708781622 GameObject: m_ObjectHideFlags: 0 @@ -597,7 +389,7 @@ GameObject: - component: {fileID: 3941121930630195656} - component: {fileID: 868360655280004538} m_Layer: 0 - m_Name: Pinch Point Stabilized + m_Name: PinchPointStabilized m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -616,6 +408,8 @@ Transform: m_ConstrainProportionsScale: 1 m_Children: - {fileID: 1517203009072151852} + - {fileID: 5697399126433476533} + - {fileID: 3319742158842249363} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -632,8 +426,9 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_XRHandTrackingEvents: {fileID: 0} - m_TargetRotation: {fileID: 0} m_RayInteractor: {fileID: 0} + m_NearFarInteractor: {fileID: 0} + m_TargetRotation: {fileID: 0} m_RotationSmoothingSpeed: 12 --- !u!114 &3941121930630195656 MonoBehaviour: @@ -699,3 +494,197 @@ MonoBehaviour: m_EditorClassIdentifier: m_Interactor: {fileID: 0} m_ObjectToHide: {fileID: 2181396665701132182} +--- !u!1 &8362549039119506064 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3319742158842249363} + - component: {fileID: 5862434181995340926} + - component: {fileID: 1545576279830946201} + - component: {fileID: 9113310872675320958} + m_Layer: 0 + m_Name: Material Affordance + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3319742158842249363 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8362549039119506064} + 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: 7962545760240945814} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &5862434181995340926 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8362549039119506064} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1410cbaaadf84a7aaa6459d37ad21b3a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Renderer: {fileID: 6379762978650309333} + m_MaterialIndex: 0 +--- !u!114 &1545576279830946201 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8362549039119506064} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f86d13fca2ec430d870c0f7765ad0dde, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AffordanceStateProvider: {fileID: 3941121930630195656} + m_ReplaceIdleStateValueWithInitialValue: 0 + m_AffordanceThemeDatum: + m_UseConstant: 0 + m_ConstantValue: + m_StateAnimationCurve: + m_UseConstant: 1 + m_ConstantValue: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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_Variable: {fileID: 0} + m_List: + - stateName: disabled + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: idle + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: hovered + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: hoveredPriority + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: selected + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: activated + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: focused + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + m_ColorBlendMode: 0 + m_BlendAmount: 1 + m_Variable: {fileID: 11400000, guid: fc690d1505c48cb4696838b71abd2ca0, type: 2} + m_ValueUpdated: + m_PersistentCalls: + m_Calls: [] + m_MaterialPropertyBlockHelper: {fileID: 5862434181995340926} + m_ColorPropertyName: _BaseColor +--- !u!114 &9113310872675320958 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8362549039119506064} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 629ea686265f47f082ba5732cffad1cf, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AffordanceStateProvider: {fileID: 3941121930630195656} + m_ReplaceIdleStateValueWithInitialValue: 0 + m_AffordanceThemeDatum: + m_UseConstant: 0 + m_ConstantValue: + m_StateAnimationCurve: + m_UseConstant: 1 + m_ConstantValue: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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_Variable: {fileID: 0} + m_List: + - stateName: disabled + animationStateStartValue: 0 + animationStateEndValue: 0 + - stateName: idle + animationStateStartValue: 0 + animationStateEndValue: 0 + - stateName: hovered + animationStateStartValue: 0 + animationStateEndValue: 0 + - stateName: hoveredPriority + animationStateStartValue: 0 + animationStateEndValue: 0 + - stateName: selected + animationStateStartValue: 0 + animationStateEndValue: 0 + - stateName: activated + animationStateStartValue: 0 + animationStateEndValue: 0 + - stateName: focused + animationStateStartValue: 0 + animationStateEndValue: 0 + m_Variable: {fileID: 11400000, guid: c2712227db89c5142adad58b143bf039, type: 2} + m_ValueUpdated: + m_PersistentCalls: + m_Calls: [] + m_MaterialPropertyBlockHelper: {fileID: 5862434181995340926} + m_FloatPropertyName: _RimPower diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Pinch Point Stabilized.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/PinchPointStabilized.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Pinch Point Stabilized.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/PinchPointStabilized.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Right Hand Interaction Visual.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/RightHandInteractionVisual.prefab similarity index 92% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Right Hand Interaction Visual.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/RightHandInteractionVisual.prefab index d1acb0c2..f09f1d2b 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Right Hand Interaction Visual.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/RightHandInteractionVisual.prefab @@ -178,7 +178,7 @@ GameObject: - component: {fileID: 196909957261332044} - component: {fileID: 2812080162531844880} m_Layer: 0 - m_Name: Right Hand Interaction Visual + m_Name: RightHandInteractionVisual m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -200,7 +200,6 @@ Transform: - {fileID: 3785442482958816543} - {fileID: 7565144130350447154} - {fileID: 1139509643922615340} - - {fileID: 5029497141306326558} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -1115,7 +1114,7 @@ PrefabInstance: m_Modifications: - target: {fileID: 3535746112591574418, guid: 67c52e745f2766644ba16bfb165e2659, type: 3} propertyPath: m_Name - value: Hand Direct Interactor Affordances + value: Hand Near-Far Interactor Affordances objectReference: {fileID: 0} - target: {fileID: 3535746112591574419, guid: 67c52e745f2766644ba16bfb165e2659, type: 3} propertyPath: m_RootOrder @@ -1172,72 +1171,6 @@ Transform: m_CorrespondingSourceObject: {fileID: 3535746112591574419, guid: 67c52e745f2766644ba16bfb165e2659, type: 3} m_PrefabInstance: {fileID: 4521939072911841727} m_PrefabAsset: {fileID: 0} ---- !u!1001 &6040701402619564278 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 3266887667944164143} - m_Modifications: - - target: {fileID: 1592230186234949352, guid: e411b46c5d2514e49b26bd300e9ed8ce, type: 3} - propertyPath: m_RootOrder - value: 4 - objectReference: {fileID: 0} - - target: {fileID: 1592230186234949352, guid: e411b46c5d2514e49b26bd300e9ed8ce, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1592230186234949352, guid: e411b46c5d2514e49b26bd300e9ed8ce, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1592230186234949352, guid: e411b46c5d2514e49b26bd300e9ed8ce, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1592230186234949352, guid: e411b46c5d2514e49b26bd300e9ed8ce, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1592230186234949352, guid: e411b46c5d2514e49b26bd300e9ed8ce, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1592230186234949352, guid: e411b46c5d2514e49b26bd300e9ed8ce, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1592230186234949352, guid: e411b46c5d2514e49b26bd300e9ed8ce, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1592230186234949352, guid: e411b46c5d2514e49b26bd300e9ed8ce, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1592230186234949352, guid: e411b46c5d2514e49b26bd300e9ed8ce, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1592230186234949352, guid: e411b46c5d2514e49b26bd300e9ed8ce, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1592230186234949353, guid: e411b46c5d2514e49b26bd300e9ed8ce, type: 3} - propertyPath: m_Name - value: Hand Ray Interactor Affordances - objectReference: {fileID: 0} - - target: {fileID: 1592230186234949357, guid: e411b46c5d2514e49b26bd300e9ed8ce, type: 3} - propertyPath: m_Renderer - value: - objectReference: {fileID: 2245225350196837302} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: e411b46c5d2514e49b26bd300e9ed8ce, type: 3} ---- !u!4 &5029497141306326558 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 1592230186234949352, guid: e411b46c5d2514e49b26bd300e9ed8ce, type: 3} - m_PrefabInstance: {fileID: 6040701402619564278} - m_PrefabAsset: {fileID: 0} --- !u!1001 &6534492434163324240 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Right Hand Interaction Visual.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/RightHandInteractionVisual.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Right Hand Interaction Visual.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/RightHandInteractionVisual.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/XR Origin Hands (XR Rig).prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/XR Origin Hands (XR Rig).prefab similarity index 58% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/XR Origin Hands (XR Rig).prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/XR Origin Hands (XR Rig).prefab index 9fbf8f94..da8d07ff 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/XR Origin Hands (XR Rig).prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/XR Origin Hands (XR Rig).prefab @@ -1,5 +1,182 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1 &184753855263555647 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2577301593842775501} + - component: {fileID: 9051997425903558535} + m_Layer: 0 + m_Name: Pinch Grab Pose + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2577301593842775501 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 184753855263555647} + 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: 5878492368827077393} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &9051997425903558535 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 184753855263555647} + 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: 1 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: Vector3 + m_Id: 30afccef-16a0-41f5-b55e-7f7e5729c1b4 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -2706128282752906596, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_RotationInput: + m_UseReference: 1 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: Quaternion + m_Id: 93bb13a8-bf69-44be-b396-d7d890c46a1a + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 8248158260566104461, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_TrackingStateInput: + m_UseReference: 1 + m_Action: + m_Name: Tracking State + m_Type: 0 + m_ExpectedControlType: Integer + m_Id: f7cb8660-fb74-4e41-a845-1a5af98a4941 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 684395432459739428, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: bc622c19-6f48-4007-9b8b-2c0fa5818228 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: 562186a0-e5e3-4b4b-81bd-086bbe30af95 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 +--- !u!1 &317924410297350442 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9198895547380049656} + - component: {fileID: 488363206831216342} + m_Layer: 0 + m_Name: UI Press Input + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &9198895547380049656 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 317924410297350442} + 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: 1 + m_Children: [] + m_Father: {fileID: 2609991494921256999} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &488363206831216342 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 317924410297350442} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 63f61d1c82c9fc6429ebd4791a4d6817, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ValueInput: + m_InputSourceMode: 2 + m_InputActionPerformed: + m_Name: Value + m_Type: 1 + m_ExpectedControlType: + m_Id: c31ad6e4-ecd9-4e94-8d50-bcb7e193b9f4 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionValue: + m_Name: Value Value + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: 8e36200b-9f0d-48ce-a8a2-38e46eab9489 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReferencePerformed: {fileID: -6395602842196007441, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_InputActionReferenceValue: {fileID: 71106601250685021, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_ObjectReferenceObject: {fileID: 0} + m_ManualPerformed: 0 + m_ManualValue: 0 + m_ManualQueuePerformed: 0 + m_ManualQueueWasPerformedThisFrame: 0 + m_ManualQueueWasCompletedThisFrame: 0 + m_ManualQueueValue: 0 + m_ManualQueueTargetFrame: 0 + m_PressThreshold: 0.8 + m_ReleaseThreshold: 0.25 --- !u!1 &927309121262695183 GameObject: m_ObjectHideFlags: 0 @@ -99,12 +276,10 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_InteractionManager: {fileID: 0} - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 m_InteractionLayers: m_Bits: 4294967295 - m_AttachTransform: {fileID: 2816440813717858226} + m_Handedness: 1 + m_AttachTransform: {fileID: 0} m_KeepSelectedTargetValid: 1 m_DisableVisualsWhenBlockedInGroup: 1 m_StartingSelectedInteractable: {fileID: 0} @@ -123,18 +298,6 @@ MonoBehaviour: 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_PokeDepth: 0.1 m_PokeWidth: 0.0075 m_PokeSelectWidth: 0.015 @@ -222,56 +385,6 @@ MonoBehaviour: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 ---- !u!1 &1648469353267697591 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1388835480394543327} - - component: {fileID: 5062945234754799757} - m_Layer: 0 - m_Name: Ray Stabilized - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1388835480394543327 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1648469353267697591} - 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: 4836530972687086638} - m_Father: {fileID: 6311120899289156754} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &5062945234754799757 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1648469353267697591} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 64d299502104b064388841ec2adf6def, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Target: {fileID: 4421665336645163413} - m_AimTargetObject: {fileID: 825434954720726026} - m_UseLocalSpace: 1 - m_AngleStabilization: 20 - m_PositionStabilization: 0.25 --- !u!1 &1800725127586568702 GameObject: m_ObjectHideFlags: 0 @@ -282,8 +395,8 @@ GameObject: m_Component: - component: {fileID: 6311120899289156754} - component: {fileID: 6560933994651781378} - - component: {fileID: 664256707558583388} - component: {fileID: 8572728199451716644} + - component: {fileID: 1476538982341290011} - component: {fileID: 4180761095810057920} m_Layer: 0 m_Name: Right Hand @@ -305,11 +418,9 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1466716113210599621} - - {fileID: 3036286681255211627} - - {fileID: 4421665336645163413} - - {fileID: 8323729308341992084} - - {fileID: 5480585174247187439} - - {fileID: 1388835480394543327} + - {fileID: 5083622343426082761} + - {fileID: 8000110866998627907} + - {fileID: 2677369771392174608} - {fileID: 4894638449106479503} - {fileID: 2062385652673493497} m_Father: {fileID: 657184242161839408} @@ -331,55 +442,11 @@ MonoBehaviour: m_InteractionManager: {fileID: 0} m_StartingGroupMembers: - {fileID: 8209797214075343310} - - {fileID: 8574486981646720036} - - {fileID: 825434954720726026} + - {fileID: 2942156198692655549} m_StartingInteractionOverridesMap: - groupMember: {fileID: 8209797214075343310} overrideGroupMembers: - - {fileID: 8574486981646720036} ---- !u!114 &664256707558583388 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1800725127586568702} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dbac611a2982409ab5f5e604f53bcad0, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Handedness: 2 - m_PokeGestureStarted: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 8369974281163441492} - m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine - m_MethodName: SetActive - m_Mode: 6 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - m_PokeGestureEnded: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 8369974281163441492} - m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine - m_MethodName: SetActive - m_Mode: 6 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 1 - m_CallState: 2 + - {fileID: 2942156198692655549} --- !u!114 &8572728199451716644 MonoBehaviour: m_ObjectHideFlags: 0 @@ -419,19 +486,7 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 0 m_CallState: 2 - - m_Target: {fileID: 392378402596404376} - m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine - m_MethodName: SetActive - m_Mode: 6 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - - m_Target: {fileID: 8369974281163441492} + - m_Target: {fileID: 5449032374622712347} m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine m_MethodName: SetActive m_Mode: 6 @@ -458,19 +513,7 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 1 m_CallState: 2 - - m_Target: {fileID: 392378402596404376} - m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine - m_MethodName: SetActive - m_Mode: 6 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 1 - m_CallState: 2 - - m_Target: {fileID: 8369974281163441492} + - m_Target: {fileID: 5449032374622712347} m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine m_MethodName: SetActive m_Mode: 6 @@ -497,6 +540,51 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 0 m_CallState: 2 +--- !u!114 &1476538982341290011 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1800725127586568702} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dbac611a2982409ab5f5e604f53bcad0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Handedness: 2 + m_PokeGestureStarted: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2942156198692655549} + m_TargetAssemblyTypeName: UnityEngine.XR.Interaction.Toolkit.MultiCastInteractor.NearFarInteractor, + Unity.XR.Interaction.Toolkit + m_MethodName: set_enableFarCasting + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_PokeGestureEnded: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2942156198692655549} + m_TargetAssemblyTypeName: UnityEngine.XR.Interaction.Toolkit.MultiCastInteractor.NearFarInteractor, + Unity.XR.Interaction.Toolkit + m_MethodName: set_enableFarCasting + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 --- !u!82 &4180761095810057920 AudioSource: m_ObjectHideFlags: 0 @@ -593,7 +681,7 @@ AudioSource: m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 ---- !u!1 &3245061426241028251 +--- !u!1 &2611266366292535140 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -601,22 +689,98 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 8323729308341992084} - - component: {fileID: 2155513215361814375} + - component: {fileID: 2832331016450934123} + - component: {fileID: 6730044672306722172} m_Layer: 0 - m_Name: Poke Stabilized Attach + m_Name: Select Input m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &8323729308341992084 +--- !u!4 &2832331016450934123 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3245061426241028251} + m_GameObject: {fileID: 2611266366292535140} + 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: 1 + m_Children: [] + m_Father: {fileID: 2609991494921256999} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &6730044672306722172 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2611266366292535140} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 63f61d1c82c9fc6429ebd4791a4d6817, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ValueInput: + m_InputSourceMode: 2 + m_InputActionPerformed: + m_Name: Value + m_Type: 1 + m_ExpectedControlType: + m_Id: 8af5f191-8af9-4df3-a0eb-ab393e7026bf + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionValue: + m_Name: Value Value + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: 23ee9ba6-3999-4f3d-8189-277a6cf4cb42 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReferencePerformed: {fileID: -6131295136447488360, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_InputActionReferenceValue: {fileID: 6558622148059887818, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_ObjectReferenceObject: {fileID: 0} + m_ManualPerformed: 0 + m_ManualValue: 0 + m_ManualQueuePerformed: 0 + m_ManualQueueWasPerformedThisFrame: 0 + m_ManualQueueWasCompletedThisFrame: 0 + m_ManualQueueValue: 0 + m_ManualQueueTargetFrame: 0 + m_PressThreshold: 0.8 + m_ReleaseThreshold: 0.25 +--- !u!1 &3216986067806868489 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2677369771392174608} + - component: {fileID: 2930949565896419353} + m_Layer: 0 + m_Name: Pinch Grab Pose + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2677369771392174608 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3216986067806868489} 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} @@ -625,24 +789,76 @@ Transform: m_Father: {fileID: 6311120899289156754} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &2155513215361814375 +--- !u!114 &2930949565896419353 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3245061426241028251} + m_GameObject: {fileID: 3216986067806868489} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 64d299502104b064388841ec2adf6def, type: 3} + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} m_Name: m_EditorClassIdentifier: - m_Target: {fileID: 1466716113210599621} - m_AimTargetObject: {fileID: 0} - m_UseLocalSpace: 1 - m_AngleStabilization: 5 - m_PositionStabilization: 0.03 ---- !u!1 &3649190778506208739 + m_TrackingType: 0 + m_UpdateType: 0 + m_IgnoreTrackingState: 0 + m_PositionInput: + m_UseReference: 1 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: Vector3 + m_Id: 53c7e346-77a0-4e87-be38-dd2d1b0dee53 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -7813013294023911475, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_RotationInput: + m_UseReference: 1 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: Quaternion + m_Id: 46629533-7e64-44be-aa25-ed9dd59091c0 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 5101698808175986029, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_TrackingStateInput: + m_UseReference: 1 + m_Action: + m_Name: Tracking State + m_Type: 0 + m_ExpectedControlType: Integer + m_Id: 486a9a93-5a8b-4b8c-b115-397f20eb6400 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -1277054153949319361, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: 5008e6f1-ae36-41fa-bbb8-688d12ba2040 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: 17f4a6d6-82f3-4b3c-a2ce-62d2fe310f63 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 +--- !u!1 &3731119764064029736 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -650,47 +866,175 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 5480585174247187439} - - component: {fileID: 3335411013425949682} + - component: {fileID: 9150249479564954943} + - component: {fileID: 7217514538655570714} m_Layer: 0 - m_Name: Direct Stabilized Attach + m_Name: Aim Pose m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &5480585174247187439 +--- !u!4 &9150249479564954943 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3649190778506208739} + m_GameObject: {fileID: 3731119764064029736} 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: 6311120899289156754} - m_RootOrder: 4 + m_Father: {fileID: 5878492368827077393} + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &3335411013425949682 +--- !u!114 &7217514538655570714 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3649190778506208739} + m_GameObject: {fileID: 3731119764064029736} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 64d299502104b064388841ec2adf6def, type: 3} + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} m_Name: m_EditorClassIdentifier: - m_Target: {fileID: 3036286681255211627} - m_AimTargetObject: {fileID: 0} - m_UseLocalSpace: 1 - m_AngleStabilization: 5 - m_PositionStabilization: 0.03 + m_TrackingType: 0 + m_UpdateType: 0 + m_IgnoreTrackingState: 0 + m_PositionInput: + m_UseReference: 1 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: Vector3 + m_Id: 0c4b579d-ee40-46d3-a88c-e891a262b15d + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -2496076053284925795, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_RotationInput: + m_UseReference: 1 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: Quaternion + m_Id: 9b71528a-da93-4597-b881-749f186a3d2d + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 7149951272733842039, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_TrackingStateInput: + m_UseReference: 1 + m_Action: + m_Name: Tracking State + m_Type: 0 + m_ExpectedControlType: Integer + m_Id: 774d357c-5bfa-42fa-93a6-afeee62d27c6 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 684395432459739428, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: d0569fd8-2c54-429b-82a5-adcdaa21fd60 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: 74ba3577-c83e-41ae-bce4-66a70d6e3399 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 +--- !u!1 &3892329699652493770 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6184646459296248926} + - component: {fileID: 781544023858974861} + m_Layer: 0 + m_Name: UI Press Input + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6184646459296248926 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3892329699652493770} + 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: 1 + m_Children: [] + m_Father: {fileID: 5083622343426082761} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &781544023858974861 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3892329699652493770} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 63f61d1c82c9fc6429ebd4791a4d6817, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ValueInput: + m_InputSourceMode: 2 + m_InputActionPerformed: + m_Name: Value + m_Type: 1 + m_ExpectedControlType: + m_Id: 573218e1-1037-443b-b4e7-621bf6e32482 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionValue: + m_Name: Value Value + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: fd259e71-bb9d-4042-83b0-5704f6c057c9 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReferencePerformed: {fileID: 3279264004350380116, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_InputActionReferenceValue: {fileID: -5908353012961274365, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_ObjectReferenceObject: {fileID: 0} + m_ManualPerformed: 0 + m_ManualValue: 0 + m_ManualQueuePerformed: 0 + m_ManualQueueWasPerformedThisFrame: 0 + m_ManualQueueWasCompletedThisFrame: 0 + m_ManualQueueValue: 0 + m_ManualQueueTargetFrame: 0 + m_PressThreshold: 0.8 + m_ReleaseThreshold: 0.25 --- !u!1 &4605643766788160351 GameObject: m_ObjectHideFlags: 0 @@ -737,7 +1081,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_FilterMinCutoff: 0.1 m_FilterBeta: 0.2 ---- !u!1 &5885254045885060483 +--- !u!1 &5323647229090770512 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -745,48 +1089,175 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 8008812968308354104} - - component: {fileID: 7344411194599346914} + - component: {fileID: 1551366800282432914} + - component: {fileID: 4234401886418808293} m_Layer: 0 - m_Name: Ray Stabilized + m_Name: Select Input m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &8008812968308354104 +--- !u!4 &1551366800282432914 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5885254045885060483} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_GameObject: {fileID: 5323647229090770512} + 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: 3675916531870186414} - m_Father: {fileID: 5878492368827077393} - m_RootOrder: 5 + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 5083622343426082761} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &7344411194599346914 +--- !u!114 &4234401886418808293 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5885254045885060483} + m_GameObject: {fileID: 5323647229090770512} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 64d299502104b064388841ec2adf6def, type: 3} + m_Script: {fileID: 11500000, guid: 63f61d1c82c9fc6429ebd4791a4d6817, type: 3} m_Name: m_EditorClassIdentifier: - m_Target: {fileID: 8847029981464006006} - m_AimTargetObject: {fileID: 5543534632417482985} - m_UseLocalSpace: 1 - m_AngleStabilization: 20 - m_PositionStabilization: 0.25 + m_ValueInput: + m_InputSourceMode: 2 + m_InputActionPerformed: + m_Name: Value + m_Type: 1 + m_ExpectedControlType: + m_Id: 10f0c96d-6c50-4214-b520-55ed10f0d86a + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionValue: + m_Name: Value Value + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: 1af57d1d-a16a-4f44-9f26-44d165b54d6a + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReferencePerformed: {fileID: 187161793506945269, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_InputActionReferenceValue: {fileID: -1758520528963094988, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_ObjectReferenceObject: {fileID: 0} + m_ManualPerformed: 0 + m_ManualValue: 0 + m_ManualQueuePerformed: 0 + m_ManualQueueWasPerformedThisFrame: 0 + m_ManualQueueWasCompletedThisFrame: 0 + m_ManualQueueValue: 0 + m_ManualQueueTargetFrame: 0 + m_PressThreshold: 0.8 + m_ReleaseThreshold: 0.25 +--- !u!1 &5780998334867579440 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8000110866998627907} + - component: {fileID: 2034475846792841991} + m_Layer: 0 + m_Name: Aim Pose + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8000110866998627907 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5780998334867579440} + 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: 6311120899289156754} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2034475846792841991 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5780998334867579440} + 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: 1 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: Vector3 + m_Id: 53c7e346-77a0-4e87-be38-dd2d1b0dee53 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 9126875591944302883, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_RotationInput: + m_UseReference: 1 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: Quaternion + m_Id: 46629533-7e64-44be-aa25-ed9dd59091c0 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -3870559572202308136, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_TrackingStateInput: + m_UseReference: 1 + m_Action: + m_Name: Tracking State + m_Type: 0 + m_ExpectedControlType: Integer + m_Id: 486a9a93-5a8b-4b8c-b115-397f20eb6400 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -1277054153949319361, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: 5008e6f1-ae36-41fa-bbb8-688d12ba2040 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: 17f4a6d6-82f3-4b3c-a2ce-62d2fe310f63 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 --- !u!1 &6003869514719898561 GameObject: m_ObjectHideFlags: 0 @@ -833,12 +1304,10 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_InteractionManager: {fileID: 0} - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 m_InteractionLayers: m_Bits: 4294967295 - m_AttachTransform: {fileID: 8323729308341992084} + m_Handedness: 2 + m_AttachTransform: {fileID: 0} m_KeepSelectedTargetValid: 1 m_DisableVisualsWhenBlockedInGroup: 1 m_StartingSelectedInteractable: {fileID: 0} @@ -857,18 +1326,6 @@ MonoBehaviour: 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_PokeDepth: 0.1 m_PokeWidth: 0.0075 m_PokeSelectWidth: 0.015 @@ -966,8 +1423,8 @@ GameObject: m_Component: - component: {fileID: 5878492368827077393} - component: {fileID: 3510802014482765209} - - component: {fileID: 3518443110171711630} - component: {fileID: 8504099170080106023} + - component: {fileID: 4728882361841621924} - component: {fileID: 7475873568227309559} m_Layer: 0 m_Name: Left Hand @@ -989,11 +1446,9 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 8075461073020094709} - - {fileID: 2431253500503645677} - - {fileID: 8847029981464006006} - - {fileID: 2816440813717858226} - - {fileID: 7201011967548035520} - - {fileID: 8008812968308354104} + - {fileID: 2609991494921256999} + - {fileID: 9150249479564954943} + - {fileID: 2577301593842775501} - {fileID: 1176872742605197438} - {fileID: 4399806423645351520} m_Father: {fileID: 657184242161839408} @@ -1015,55 +1470,11 @@ MonoBehaviour: m_InteractionManager: {fileID: 0} m_StartingGroupMembers: - {fileID: 6237049687586235588} - - {fileID: 9034274667510444962} - - {fileID: 5543534632417482985} + - {fileID: 5359434741994886739} m_StartingInteractionOverridesMap: - groupMember: {fileID: 6237049687586235588} overrideGroupMembers: - - {fileID: 9034274667510444962} ---- !u!114 &3518443110171711630 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6355494128053973299} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dbac611a2982409ab5f5e604f53bcad0, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Handedness: 1 - m_PokeGestureStarted: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 3725040479187177911} - m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine - m_MethodName: SetActive - m_Mode: 6 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - m_PokeGestureEnded: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 3725040479187177911} - m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine - m_MethodName: SetActive - m_Mode: 6 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 1 - m_CallState: 2 + - {fileID: 5359434741994886739} --- !u!114 &8504099170080106023 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1103,19 +1514,7 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 0 m_CallState: 2 - - m_Target: {fileID: 1075375832233251614} - m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine - m_MethodName: SetActive - m_Mode: 6 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - - m_Target: {fileID: 3725040479187177911} + - m_Target: {fileID: 2966448196471584245} m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine m_MethodName: SetActive m_Mode: 6 @@ -1142,19 +1541,7 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 1 m_CallState: 2 - - m_Target: {fileID: 1075375832233251614} - m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine - m_MethodName: SetActive - m_Mode: 6 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 1 - m_CallState: 2 - - m_Target: {fileID: 3725040479187177911} + - m_Target: {fileID: 2966448196471584245} m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine m_MethodName: SetActive m_Mode: 6 @@ -1181,6 +1568,51 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 0 m_CallState: 2 +--- !u!114 &4728882361841621924 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6355494128053973299} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dbac611a2982409ab5f5e604f53bcad0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Handedness: 1 + m_PokeGestureStarted: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 5359434741994886739} + m_TargetAssemblyTypeName: UnityEngine.XR.Interaction.Toolkit.MultiCastInteractor.NearFarInteractor, + Unity.XR.Interaction.Toolkit + m_MethodName: set_enableFarCasting + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_PokeGestureEnded: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 5359434741994886739} + m_TargetAssemblyTypeName: UnityEngine.XR.Interaction.Toolkit.MultiCastInteractor.NearFarInteractor, + Unity.XR.Interaction.Toolkit + m_MethodName: set_enableFarCasting + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 --- !u!82 &7475873568227309559 AudioSource: m_ObjectHideFlags: 0 @@ -1277,166 +1709,6 @@ AudioSource: m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 ---- !u!1 &6425649362978643912 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3675916531870186414} - m_Layer: 0 - m_Name: Ray Stabilized Attach - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3675916531870186414 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6425649362978643912} - 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: 8008812968308354104} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &6611849723481788952 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7201011967548035520} - - component: {fileID: 1590360528098143729} - m_Layer: 0 - m_Name: Direct Stabilized Attach - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7201011967548035520 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6611849723481788952} - 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: 5878492368827077393} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1590360528098143729 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6611849723481788952} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 64d299502104b064388841ec2adf6def, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Target: {fileID: 2431253500503645677} - m_AimTargetObject: {fileID: 0} - m_UseLocalSpace: 1 - m_AngleStabilization: 5 - m_PositionStabilization: 0.03 ---- !u!1 &7061734178652924031 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4836530972687086638} - m_Layer: 0 - m_Name: Ray Stabilized Attach - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4836530972687086638 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7061734178652924031} - 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: 1388835480394543327} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &9015811520793536507 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2816440813717858226} - - component: {fileID: 8196991743538121587} - m_Layer: 0 - m_Name: Poke Stabilized Attach - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2816440813717858226 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9015811520793536507} - 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: 5878492368827077393} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &8196991743538121587 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9015811520793536507} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 64d299502104b064388841ec2adf6def, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Target: {fileID: 8075461073020094709} - m_AimTargetObject: {fileID: 0} - m_UseLocalSpace: 1 - m_AngleStabilization: 5 - m_PositionStabilization: 0.03 --- !u!1001 &657184243840976483 PrefabInstance: m_ObjectHideFlags: 0 @@ -1522,14 +1794,14 @@ PrefabInstance: - target: {fileID: 1493371769922722507, guid: ffd656bf2a3ba3d41b1e4a94b81b7c85, type: 3} propertyPath: m_InteractorSource value: - objectReference: {fileID: 9034274667510444962} + objectReference: {fileID: 5359434741994886739} - target: {fileID: 1593233024999764063, guid: ffd656bf2a3ba3d41b1e4a94b81b7c85, type: 3} propertyPath: m_InteractorSource value: - objectReference: {fileID: 5543534632417482985} + objectReference: {fileID: 0} - target: {fileID: 1595251472046566641, guid: ffd656bf2a3ba3d41b1e4a94b81b7c85, type: 3} propertyPath: m_RootOrder - value: 7 + value: 5 objectReference: {fileID: 0} - target: {fileID: 1595251472046566641, guid: ffd656bf2a3ba3d41b1e4a94b81b7c85, type: 3} propertyPath: m_LocalPosition.x @@ -1618,334 +1890,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: b5b9cf54c47f40ee9c3eb30ea8eb89b9, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!1001 &3134485598015230918 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 5878492368827077393} - m_Modifications: - - target: {fileID: 1787346994484839025, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_Name - value: Ray Interactor - objectReference: {fileID: 0} - - target: {fileID: 4924506573850889901, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_LineWidth - value: 0.0035 - objectReference: {fileID: 0} - - target: {fileID: 4924506573850889901, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_MinLineLength - value: 0.1 - objectReference: {fileID: 0} - - target: {fileID: 4924506573850889901, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_LineOriginOffset - value: 0.0375 - objectReference: {fileID: 0} - - target: {fileID: 4924506573850889901, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_LineOriginTransform - value: - objectReference: {fileID: 1176872742605197438} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_RootOrder - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7462879561657043759, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_AttachTransform - value: - objectReference: {fileID: 3675916531870186414} - - target: {fileID: 7462879561657043759, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_RayOriginTransform - value: - objectReference: {fileID: 8008812968308354104} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: ad818c36731146e994540a1896ad8f24, type: 3} ---- !u!1 &3725040479187177911 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 1787346994484839025, guid: ad818c36731146e994540a1896ad8f24, type: 3} - m_PrefabInstance: {fileID: 3134485598015230918} - m_PrefabAsset: {fileID: 0} ---- !u!114 &7671879982578654164 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3725040479187177911} - 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: 0} - 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: Vector3 - m_Id: 26d2aaa4-6518-4d33-8fae-419043a723d4 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -2496076053284925795, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_RotationAction: - m_UseReference: 1 - m_Action: - m_Name: Rotation - m_Type: 0 - m_ExpectedControlType: Quaternion - m_Id: d7a15530-737b-416a-9d5d-a8b51ba6c682 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 7149951272733842039, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_IsTrackedAction: - m_UseReference: 1 - m_Action: - m_Name: Is Tracked - m_Type: 1 - m_ExpectedControlType: Button - m_Id: 01c9e969-5b08-4ff9-97a1-d646e587fa31 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 1 - m_Reference: {fileID: 840156964685210860, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_TrackingStateAction: - m_UseReference: 1 - m_Action: - m_Name: Tracking State - m_Type: 0 - m_ExpectedControlType: Integer - m_Id: e12d3305-8866-42f0-a9b8-2cd7f4310c31 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 684395432459739428, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_SelectAction: - m_UseReference: 1 - m_Action: - m_Name: Select - m_Type: 1 - m_ExpectedControlType: Button - m_Id: 05483079-4b7c-4369-9176-fb8514428e98 - 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: Axis - m_Id: 8e42f062-fb45-44df-9825-35e1dfc18834 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 6558622148059887818, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ActivateAction: - m_UseReference: 1 - m_Action: - m_Name: Activate - m_Type: 1 - m_ExpectedControlType: Button - m_Id: 38e5c09b-96d2-40e4-ae8e-3bfb9eb16727 - 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: Axis - m_Id: ff2b1032-d7ae-4e1a-8e8a-a5556d5f8db5 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -4289430672226363583, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_UIPressAction: - m_UseReference: 1 - m_Action: - m_Name: UI Press - m_Type: 1 - m_ExpectedControlType: Button - m_Id: 347fe4ac-83bc-44f7-a0d2-2793a5775161 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -6395602842196007441, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_UIPressActionValue: - m_UseReference: 1 - m_Action: - m_Name: UI Press Action Value - m_Type: 0 - m_ExpectedControlType: Axis - m_Id: 8b29ebc3-3830-4622-8c66-56f3a9b98d73 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 71106601250685021, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_UIScrollAction: - m_UseReference: 1 - m_Action: - m_Name: UI Scroll - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: 61000fa3-bda0-42fc-ba38-f6f7692c3e9a - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 2464016903823916871, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_HapticDeviceAction: - m_UseReference: 1 - m_Action: - m_Name: Haptic Device - m_Type: 2 - m_ExpectedControlType: - m_Id: 35cfed17-bcaf-4ff9-9fe0-fa1727b7619b - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -8785819595477538065, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_RotateAnchorAction: - m_UseReference: 1 - m_Action: - m_Name: Rotate Anchor - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: 4fcd4b62-1769-4cc4-aaee-aea2fc40d24f - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -7363382999065477798, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_DirectionalAnchorRotationAction: - m_UseReference: 1 - m_Action: - m_Name: Directional Anchor Rotation - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: 0a72890c-b3bc-4ec1-adad-df62dfa843d9 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -8811388872089202044, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_TranslateAnchorAction: - m_UseReference: 1 - m_Action: - m_Name: Translate Anchor - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: 7bfe4461-8d15-4a61-9fa6-28ce950c9996 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 7779212132400271959, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ScaleToggleAction: - m_UseReference: 1 - m_Action: - m_Name: Scale Toggle - m_Type: 1 - m_ExpectedControlType: - m_Id: 5fa3e2c1-a95e-4724-b74b-c5ad1229a291 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_ScaleDeltaAction: - m_UseReference: 1 - m_Action: - m_Name: Scale Delta - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: d1518bf7-ff62-47f4-8bf9-b74d00621304 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_ButtonPressPoint: 0.5 ---- !u!114 &5543534632417482985 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 7462879561657043759, guid: ad818c36731146e994540a1896ad8f24, type: 3} - m_PrefabInstance: {fileID: 3134485598015230918} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3725040479187177911} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6803edce0201f574f923fd9d10e5b30a, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!4 &8847029981464006006 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} - m_PrefabInstance: {fileID: 3134485598015230918} - m_PrefabAsset: {fileID: 0} --- !u!1001 &3273442460117869337 PrefabInstance: m_ObjectHideFlags: 0 @@ -1956,7 +1900,7 @@ PrefabInstance: - target: {fileID: 868360655280004538, guid: 88b12c0ca81d9a34eac32a1e1bd19b1c, type: 3} propertyPath: m_Interactor value: - objectReference: {fileID: 825434954720726026} + objectReference: {fileID: 2942156198692655549} - target: {fileID: 3369527167708781622, guid: 88b12c0ca81d9a34eac32a1e1bd19b1c, type: 3} propertyPath: m_Name value: Pinch Point Stabilized @@ -1964,26 +1908,34 @@ PrefabInstance: - target: {fileID: 3901091180161469564, guid: 88b12c0ca81d9a34eac32a1e1bd19b1c, type: 3} propertyPath: m_InteractorSource value: - objectReference: {fileID: 825434954720726026} + objectReference: {fileID: 0} - target: {fileID: 3941121930630195656, guid: 88b12c0ca81d9a34eac32a1e1bd19b1c, type: 3} propertyPath: m_InteractorSource value: - objectReference: {fileID: 825434954720726026} + objectReference: {fileID: 2942156198692655549} + - target: {fileID: 5697399126433476533, guid: 88b12c0ca81d9a34eac32a1e1bd19b1c, type: 3} + propertyPath: m_LocalPosition.z + value: 0.025 + objectReference: {fileID: 0} - target: {fileID: 6603267092101694357, guid: 88b12c0ca81d9a34eac32a1e1bd19b1c, type: 3} propertyPath: m_RayInteractor value: - objectReference: {fileID: 825434954720726026} + objectReference: {fileID: 0} - target: {fileID: 6603267092101694357, guid: 88b12c0ca81d9a34eac32a1e1bd19b1c, type: 3} propertyPath: m_TargetRotation value: - objectReference: {fileID: 1388835480394543327} + objectReference: {fileID: 8000110866998627907} + - target: {fileID: 6603267092101694357, guid: 88b12c0ca81d9a34eac32a1e1bd19b1c, type: 3} + propertyPath: m_NearFarInteractor + value: + objectReference: {fileID: 2942156198692655549} - target: {fileID: 6603267092101694357, guid: 88b12c0ca81d9a34eac32a1e1bd19b1c, type: 3} propertyPath: m_XRHandTrackingEvents value: objectReference: {fileID: 1576675058413778859} - target: {fileID: 7962545760240945814, guid: 88b12c0ca81d9a34eac32a1e1bd19b1c, type: 3} propertyPath: m_RootOrder - value: 6 + value: 4 objectReference: {fileID: 0} - target: {fileID: 7962545760240945814, guid: 88b12c0ca81d9a34eac32a1e1bd19b1c, type: 3} propertyPath: m_LocalPosition.x @@ -2032,6 +1984,11 @@ Transform: m_CorrespondingSourceObject: {fileID: 7962545760240945814, guid: 88b12c0ca81d9a34eac32a1e1bd19b1c, type: 3} m_PrefabInstance: {fileID: 3273442460117869337} m_PrefabAsset: {fileID: 0} +--- !u!4 &7096723873125731500 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5697399126433476533, guid: 88b12c0ca81d9a34eac32a1e1bd19b1c, type: 3} + m_PrefabInstance: {fileID: 3273442460117869337} + m_PrefabAsset: {fileID: 0} --- !u!1001 &3587470959140778710 PrefabInstance: m_ObjectHideFlags: 0 @@ -2042,14 +1999,14 @@ PrefabInstance: - target: {fileID: 1139509643922615336, guid: 89e80c47615e4f043926d66492d3ca5f, type: 3} propertyPath: m_InteractorSource value: - objectReference: {fileID: 8574486981646720036} + objectReference: {fileID: 2942156198692655549} - target: {fileID: 2746493918707896725, guid: 89e80c47615e4f043926d66492d3ca5f, type: 3} propertyPath: m_Name value: Right Hand Interaction Visual objectReference: {fileID: 0} - target: {fileID: 3266887667944164143, guid: 89e80c47615e4f043926d66492d3ca5f, type: 3} propertyPath: m_RootOrder - value: 7 + value: 5 objectReference: {fileID: 0} - target: {fileID: 3266887667944164143, guid: 89e80c47615e4f043926d66492d3ca5f, type: 3} propertyPath: m_LocalPosition.x @@ -2094,7 +2051,7 @@ PrefabInstance: - target: {fileID: 5029497141306326554, guid: 89e80c47615e4f043926d66492d3ca5f, type: 3} propertyPath: m_InteractorSource value: - objectReference: {fileID: 825434954720726026} + objectReference: {fileID: 0} - target: {fileID: 7565144130350447158, guid: 89e80c47615e4f043926d66492d3ca5f, type: 3} propertyPath: m_InteractorSource value: @@ -2138,644 +2095,258 @@ Transform: m_CorrespondingSourceObject: {fileID: 3266887667944164143, guid: 89e80c47615e4f043926d66492d3ca5f, type: 3} m_PrefabInstance: {fileID: 3587470959140778710} m_PrefabAsset: {fileID: 0} ---- !u!1001 &7846943853348554533 +--- !u!1001 &7667419780366140788 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: m_TransformParent: {fileID: 6311120899289156754} m_Modifications: - - target: {fileID: 1787346994484839025, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_Name - value: Ray Interactor - objectReference: {fileID: 0} - - target: {fileID: 4924506573850889901, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_LineWidth - value: 0.0035 - objectReference: {fileID: 0} - - target: {fileID: 4924506573850889901, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_MinLineLength - value: 0.1 - objectReference: {fileID: 0} - - target: {fileID: 4924506573850889901, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_LineOriginOffset - value: 0.0375 - objectReference: {fileID: 0} - - target: {fileID: 4924506573850889901, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_LineOriginTransform + - target: {fileID: 130500635472496801, guid: b200f6587d118224eba8467281481800, type: 3} + propertyPath: m_CastOrigin value: - objectReference: {fileID: 4894638449106479503} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_RootOrder - value: 2 + objectReference: {fileID: 2677369771392174608} + - target: {fileID: 2447424620550846319, guid: b200f6587d118224eba8467281481800, type: 3} + propertyPath: m_Name + value: Near-Far Interactor objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} + - target: {fileID: 3234853630605623997, guid: b200f6587d118224eba8467281481800, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3234853630605623997, guid: b200f6587d118224eba8467281481800, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} + - target: {fileID: 3234853630605623997, guid: b200f6587d118224eba8467281481800, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} + - target: {fileID: 3234853630605623997, guid: b200f6587d118224eba8467281481800, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} + - target: {fileID: 3234853630605623997, guid: b200f6587d118224eba8467281481800, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} + - target: {fileID: 3234853630605623997, guid: b200f6587d118224eba8467281481800, type: 3} propertyPath: m_LocalRotation.x value: -0 objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} + - target: {fileID: 3234853630605623997, guid: b200f6587d118224eba8467281481800, type: 3} propertyPath: m_LocalRotation.y value: -0 objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} + - target: {fileID: 3234853630605623997, guid: b200f6587d118224eba8467281481800, type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} + - target: {fileID: 3234853630605623997, guid: b200f6587d118224eba8467281481800, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} + - target: {fileID: 3234853630605623997, guid: b200f6587d118224eba8467281481800, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} + - target: {fileID: 3234853630605623997, guid: b200f6587d118224eba8467281481800, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 7462879561657043759, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_AttachTransform + - target: {fileID: 4808866746549998793, guid: b200f6587d118224eba8467281481800, type: 3} + propertyPath: m_SelectInput.m_InputSourceMode + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 4808866746549998793, guid: b200f6587d118224eba8467281481800, type: 3} + propertyPath: m_UIPressInput.m_InputSourceMode + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 4808866746549998793, guid: b200f6587d118224eba8467281481800, type: 3} + propertyPath: m_SelectInput.m_ObjectReferenceObject value: - objectReference: {fileID: 4836530972687086638} - - target: {fileID: 7462879561657043759, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_RayOriginTransform + objectReference: {fileID: 4234401886418808293} + - target: {fileID: 4808866746549998793, guid: b200f6587d118224eba8467281481800, type: 3} + propertyPath: m_UIPressInput.m_ObjectReferenceObject value: - objectReference: {fileID: 1388835480394543327} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: ad818c36731146e994540a1896ad8f24, type: 3} ---- !u!114 &825434954720726026 stripped + objectReference: {fileID: 781544023858974861} + - target: {fileID: 6288467125497789300, guid: b200f6587d118224eba8467281481800, type: 3} + propertyPath: m_LineBendRatio + value: 0.15 + objectReference: {fileID: 0} + - target: {fileID: 6288467125497789300, guid: b200f6587d118224eba8467281481800, type: 3} + propertyPath: m_CurveStartOffset + value: 0.025 + objectReference: {fileID: 0} + - target: {fileID: 6288467125497789300, guid: b200f6587d118224eba8467281481800, type: 3} + propertyPath: m_LineOriginTransform + value: + objectReference: {fileID: 7096723873125731500} + - target: {fileID: 8229381180640938747, guid: b200f6587d118224eba8467281481800, type: 3} + propertyPath: m_CastOrigin + value: + objectReference: {fileID: 8000110866998627907} + - target: {fileID: 8408429868716997126, guid: b200f6587d118224eba8467281481800, type: 3} + propertyPath: m_SmoothOffset + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8408429868716997126, guid: b200f6587d118224eba8467281481800, type: 3} + propertyPath: m_TransformToFollow + value: + objectReference: {fileID: 2677369771392174608} + - target: {fileID: 8408429868716997126, guid: b200f6587d118224eba8467281481800, type: 3} + propertyPath: m_MinAdditionalVelocityScalar + value: 0.25 + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 5712664876877111600, guid: b200f6587d118224eba8467281481800, type: 3} + m_SourcePrefab: {fileID: 100100000, guid: b200f6587d118224eba8467281481800, type: 3} +--- !u!114 &2942156198692655549 stripped MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 7462879561657043759, guid: ad818c36731146e994540a1896ad8f24, type: 3} - m_PrefabInstance: {fileID: 7846943853348554533} + m_CorrespondingSourceObject: {fileID: 4808866746549998793, guid: b200f6587d118224eba8467281481800, type: 3} + m_PrefabInstance: {fileID: 7667419780366140788} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8369974281163441492} + m_GameObject: {fileID: 5449032374622712347} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6803edce0201f574f923fd9d10e5b30a, type: 3} + m_Script: {fileID: 11500000, guid: 25a07ef133a37d140a87cdf1f1c75fdf, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!4 &4421665336645163413 stripped +--- !u!4 &5083622343426082761 stripped Transform: - m_CorrespondingSourceObject: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} - m_PrefabInstance: {fileID: 7846943853348554533} + m_CorrespondingSourceObject: {fileID: 3234853630605623997, guid: b200f6587d118224eba8467281481800, type: 3} + m_PrefabInstance: {fileID: 7667419780366140788} m_PrefabAsset: {fileID: 0} ---- !u!1 &8369974281163441492 stripped +--- !u!1 &5449032374622712347 stripped GameObject: - m_CorrespondingSourceObject: {fileID: 1787346994484839025, guid: ad818c36731146e994540a1896ad8f24, type: 3} - m_PrefabInstance: {fileID: 7846943853348554533} + m_CorrespondingSourceObject: {fileID: 2447424620550846319, guid: b200f6587d118224eba8467281481800, type: 3} + m_PrefabInstance: {fileID: 7667419780366140788} m_PrefabAsset: {fileID: 0} ---- !u!114 &6059245343997905482 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8369974281163441492} - 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: 0} - 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: Vector3 - m_Id: 93ead265-4bff-4199-8ddf-33c028dcfee9 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 9126875591944302883, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_RotationAction: - m_UseReference: 1 - m_Action: - m_Name: Rotation - m_Type: 0 - m_ExpectedControlType: Quaternion - m_Id: cd9a8368-32d3-4e58-86a0-6fe78d199369 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -3870559572202308136, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_IsTrackedAction: - m_UseReference: 1 - m_Action: - m_Name: Is Tracked - m_Type: 1 - m_ExpectedControlType: Button - m_Id: 55ce4874-0338-46fe-8077-4d6c11a05761 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 1 - m_Reference: {fileID: -7044516463258014562, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_TrackingStateAction: - m_UseReference: 1 - m_Action: - m_Name: Tracking State - m_Type: 0 - m_ExpectedControlType: Integer - m_Id: 7964ebc4-45e1-4431-a17a-7f2206e38661 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -1277054153949319361, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_SelectAction: - m_UseReference: 1 - m_Action: - m_Name: Select - m_Type: 1 - m_ExpectedControlType: Button - m_Id: 3207346a-8b2f-4b24-b45a-90ea1cdef7fb - 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: Axis - m_Id: dcf177a1-4c6d-42a7-b095-5f68848dadf1 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -1758520528963094988, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ActivateAction: - m_UseReference: 1 - m_Action: - m_Name: Activate - m_Type: 1 - m_ExpectedControlType: Button - m_Id: ed3be3cd-637e-48d6-ae4b-dd97305eaa40 - 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: Axis - m_Id: af4d694a-0159-4acb-bf36-7b78c35a10d5 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 7904272356298805229, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_UIPressAction: - m_UseReference: 1 - m_Action: - m_Name: UI Press - m_Type: 1 - m_ExpectedControlType: Button - m_Id: 55ce5c5d-aad8-4ebf-9f21-899ff595a062 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 3279264004350380116, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_UIPressActionValue: - m_UseReference: 1 - m_Action: - m_Name: UI Press Action Value - m_Type: 0 - m_ExpectedControlType: Axis - m_Id: cdab09f7-ec37-4eee-b72c-06339cc37c8b - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -5908353012961274365, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_UIScrollAction: - m_UseReference: 1 - m_Action: - m_Name: - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -6756787485274679044, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_HapticDeviceAction: - m_UseReference: 1 - m_Action: - m_Name: Haptic Device - m_Type: 2 - m_ExpectedControlType: - m_Id: 60f81e0e-3fab-4e26-90b6-a5ab762e2bb1 - 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: Rotate Anchor - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: aca8fec0-a925-428d-a6b7-25cfbd478258 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -5913262927076077117, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_DirectionalAnchorRotationAction: - m_UseReference: 1 - m_Action: - m_Name: Directional Anchor Rotation - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: cde84d10-7ea4-4fb3-8369-aed372df2bf7 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -440298646266941818, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_TranslateAnchorAction: - m_UseReference: 1 - m_Action: - m_Name: Translate Anchor - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: 161874b5-2545-4bb2-bea4-eeddeb4fabf6 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 875253871413052681, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ScaleToggleAction: - m_UseReference: 1 - m_Action: - m_Name: Scale Toggle - m_Type: 1 - m_ExpectedControlType: - m_Id: a3b62f17-7b6b-4c94-b96b-4f3f450ce302 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_ScaleDeltaAction: - m_UseReference: 1 - m_Action: - m_Name: Scale Delta - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: ce357afc-7c8b-4b6e-be3a-2afffe4fa003 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_ButtonPressPoint: 0.5 ---- !u!1001 &8383605761115746528 +--- !u!1001 &7747415240148662507 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: m_TransformParent: {fileID: 5878492368827077393} m_Modifications: - - target: {fileID: 664489801923019586, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - propertyPath: m_AttachTransform + - target: {fileID: 1255647619390271626, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + propertyPath: m_CastOrigin value: - objectReference: {fileID: 7201011967548035520} - - target: {fileID: 6059725000919627127, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - propertyPath: m_Radius - value: 0.1 + objectReference: {fileID: 9150249479564954943} + - target: {fileID: 1722882099693224055, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + propertyPath: m_SmoothOffset + value: 1 objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} + - target: {fileID: 1722882099693224055, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + propertyPath: m_TransformToFollow + value: + objectReference: {fileID: 2577301593842775501} + - target: {fileID: 1722882099693224055, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + propertyPath: m_MinAdditionalVelocityScalar + value: 0.25 + objectReference: {fileID: 0} + - target: {fileID: 2442306273320644280, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + propertyPath: m_SelectInput.m_InputSourceMode + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 2442306273320644280, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + propertyPath: m_UIPressInput.m_InputSourceMode + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 2442306273320644280, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + propertyPath: m_SelectInput.m_ObjectReferenceObject + value: + objectReference: {fileID: 6730044672306722172} + - target: {fileID: 2442306273320644280, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + propertyPath: m_UIPressInput.m_ObjectReferenceObject + value: + objectReference: {fileID: 488363206831216342} + - target: {fileID: 3755238779732181253, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + propertyPath: m_LineBendRatio + value: 0.15 + objectReference: {fileID: 0} + - target: {fileID: 3755238779732181253, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + propertyPath: m_CurveStartOffset + value: 0.025 + objectReference: {fileID: 0} + - target: {fileID: 3755238779732181253, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + propertyPath: m_LineOriginTransform + value: + objectReference: {fileID: 3586141808747803997} + - target: {fileID: 4804964734930210078, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + propertyPath: m_Name + value: Near-Far Interactor + objectReference: {fileID: 0} + - target: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} propertyPath: m_RootOrder value: 1 objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} + - target: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} + - target: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} + - target: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} + - target: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} + - target: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} + - target: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} + - target: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} + - target: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} + - target: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} + - target: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 8841706926471734270, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - propertyPath: m_Name - value: Direct Interactor - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} ---- !u!1 &1075375832233251614 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 8841706926471734270, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - m_PrefabInstance: {fileID: 8383605761115746528} - m_PrefabAsset: {fileID: 0} ---- !u!114 &3032825192456207411 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1075375832233251614} - 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: 0} - 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: Vector3 - m_Id: 26d2aaa4-6518-4d33-8fae-419043a723d4 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -2706128282752906596, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_RotationAction: - m_UseReference: 1 - m_Action: - m_Name: Rotation - m_Type: 0 - m_ExpectedControlType: Quaternion - m_Id: d7a15530-737b-416a-9d5d-a8b51ba6c682 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 8248158260566104461, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_IsTrackedAction: - m_UseReference: 1 - m_Action: - m_Name: Is Tracked - m_Type: 1 - m_ExpectedControlType: Button - m_Id: f0c7c302-cbd5-465f-a326-6502c16a71f9 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 1 - m_Reference: {fileID: 840156964685210860, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_TrackingStateAction: - m_UseReference: 1 - m_Action: - m_Name: Tracking State - m_Type: 0 - m_ExpectedControlType: Integer - m_Id: e12d3305-8866-42f0-a9b8-2cd7f4310c31 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 684395432459739428, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_SelectAction: - m_UseReference: 1 - m_Action: - m_Name: Select - m_Type: 1 - m_ExpectedControlType: Button - m_Id: 05483079-4b7c-4369-9176-fb8514428e98 - 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: Axis - m_Id: 8e42f062-fb45-44df-9825-35e1dfc18834 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 6558622148059887818, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ActivateAction: - m_UseReference: 1 - m_Action: - m_Name: Activate - m_Type: 1 - m_ExpectedControlType: Button - m_Id: 38e5c09b-96d2-40e4-ae8e-3bfb9eb16727 - 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: Axis - m_Id: ff2b1032-d7ae-4e1a-8e8a-a5556d5f8db5 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -4289430672226363583, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_UIPressAction: - m_UseReference: 1 - m_Action: - m_Name: UI Press - m_Type: 1 - m_ExpectedControlType: Button - m_Id: 347fe4ac-83bc-44f7-a0d2-2793a5775161 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -6395602842196007441, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_UIPressActionValue: - m_UseReference: 1 - m_Action: - m_Name: UI Press Action Value - m_Type: 0 - m_ExpectedControlType: Axis - m_Id: 8b29ebc3-3830-4622-8c66-56f3a9b98d73 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 71106601250685021, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_UIScrollAction: - m_UseReference: 1 - m_Action: - m_Name: UI Scroll - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: cd921c38-6607-4119-8d15-5957e0c6a19c - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 2464016903823916871, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_HapticDeviceAction: - m_UseReference: 1 - m_Action: - m_Name: Haptic Device - m_Type: 2 - m_ExpectedControlType: - m_Id: 35cfed17-bcaf-4ff9-9fe0-fa1727b7619b - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -8785819595477538065, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_RotateAnchorAction: - m_UseReference: 1 - m_Action: - m_Name: Rotate Anchor - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: 4fcd4b62-1769-4cc4-aaee-aea2fc40d24f - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -7363382999065477798, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_DirectionalAnchorRotationAction: - m_UseReference: 1 - m_Action: - m_Name: Directional Anchor Rotation - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: 0a72890c-b3bc-4ec1-adad-df62dfa843d9 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -8811388872089202044, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_TranslateAnchorAction: - m_UseReference: 1 - m_Action: - m_Name: Translate Anchor - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: 7bfe4461-8d15-4a61-9fa6-28ce950c9996 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 7779212132400271959, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ScaleToggleAction: - m_UseReference: 1 - m_Action: - m_Name: Scale Toggle - m_Type: 1 - m_ExpectedControlType: - m_Id: afa2d926-5f30-4123-a063-3ee9a0748fb4 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_ScaleDeltaAction: - m_UseReference: 1 - m_Action: - m_Name: Scale Delta - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: 0ec3ddf3-f6dd-457e-95f8-f9f44cef43ce - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_ButtonPressPoint: 0.5 ---- !u!4 &2431253500503645677 stripped + - target: {fileID: 7104419533170684624, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + propertyPath: m_CastOrigin + value: + objectReference: {fileID: 2577301593842775501} + m_RemovedComponents: + - {fileID: 3179295312718945089, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + m_SourcePrefab: {fileID: 100100000, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} +--- !u!4 &2609991494921256999 stripped Transform: - m_CorrespondingSourceObject: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - m_PrefabInstance: {fileID: 8383605761115746528} + m_CorrespondingSourceObject: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + m_PrefabInstance: {fileID: 7747415240148662507} m_PrefabAsset: {fileID: 0} ---- !u!114 &9034274667510444962 stripped +--- !u!1 &2966448196471584245 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 4804964734930210078, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + m_PrefabInstance: {fileID: 7747415240148662507} + m_PrefabAsset: {fileID: 0} +--- !u!114 &5359434741994886739 stripped MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 664489801923019586, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - m_PrefabInstance: {fileID: 8383605761115746528} + m_CorrespondingSourceObject: {fileID: 2442306273320644280, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + m_PrefabInstance: {fileID: 7747415240148662507} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1075375832233251614} + m_GameObject: {fileID: 2966448196471584245} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4253f32900bcc4d499d675566142ded0, type: 3} + m_Script: {fileID: 11500000, guid: 25a07ef133a37d140a87cdf1f1c75fdf, type: 3} m_Name: m_EditorClassIdentifier: --- !u!1001 &9139407454820817640 @@ -2788,7 +2359,7 @@ PrefabInstance: - target: {fileID: 868360655280004538, guid: 88b12c0ca81d9a34eac32a1e1bd19b1c, type: 3} propertyPath: m_Interactor value: - objectReference: {fileID: 5543534632417482985} + objectReference: {fileID: 5359434741994886739} - target: {fileID: 3369527167708781622, guid: 88b12c0ca81d9a34eac32a1e1bd19b1c, type: 3} propertyPath: m_Name value: Pinch Point Stabilized @@ -2796,26 +2367,34 @@ PrefabInstance: - target: {fileID: 3901091180161469564, guid: 88b12c0ca81d9a34eac32a1e1bd19b1c, type: 3} propertyPath: m_InteractorSource value: - objectReference: {fileID: 5543534632417482985} + objectReference: {fileID: 0} - target: {fileID: 3941121930630195656, guid: 88b12c0ca81d9a34eac32a1e1bd19b1c, type: 3} propertyPath: m_InteractorSource value: - objectReference: {fileID: 5543534632417482985} + objectReference: {fileID: 5359434741994886739} + - target: {fileID: 5697399126433476533, guid: 88b12c0ca81d9a34eac32a1e1bd19b1c, type: 3} + propertyPath: m_LocalPosition.z + value: 0.025 + objectReference: {fileID: 0} - target: {fileID: 6603267092101694357, guid: 88b12c0ca81d9a34eac32a1e1bd19b1c, type: 3} propertyPath: m_RayInteractor value: - objectReference: {fileID: 5543534632417482985} + objectReference: {fileID: 0} - target: {fileID: 6603267092101694357, guid: 88b12c0ca81d9a34eac32a1e1bd19b1c, type: 3} propertyPath: m_TargetRotation value: - objectReference: {fileID: 8008812968308354104} + objectReference: {fileID: 9150249479564954943} + - target: {fileID: 6603267092101694357, guid: 88b12c0ca81d9a34eac32a1e1bd19b1c, type: 3} + propertyPath: m_NearFarInteractor + value: + objectReference: {fileID: 5359434741994886739} - target: {fileID: 6603267092101694357, guid: 88b12c0ca81d9a34eac32a1e1bd19b1c, type: 3} propertyPath: m_XRHandTrackingEvents value: objectReference: {fileID: 6540358451509188026} - target: {fileID: 7962545760240945814, guid: 88b12c0ca81d9a34eac32a1e1bd19b1c, type: 3} propertyPath: m_RootOrder - value: 6 + value: 4 objectReference: {fileID: 0} - target: {fileID: 7962545760240945814, guid: 88b12c0ca81d9a34eac32a1e1bd19b1c, type: 3} propertyPath: m_LocalPosition.x @@ -2864,315 +2443,8 @@ Transform: m_CorrespondingSourceObject: {fileID: 7962545760240945814, guid: 88b12c0ca81d9a34eac32a1e1bd19b1c, type: 3} m_PrefabInstance: {fileID: 9139407454820817640} m_PrefabAsset: {fileID: 0} ---- !u!1001 &9207063593856425830 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 6311120899289156754} - m_Modifications: - - target: {fileID: 664489801923019586, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - propertyPath: m_AttachTransform - value: - objectReference: {fileID: 5480585174247187439} - - target: {fileID: 6059725000919627127, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - propertyPath: m_Radius - value: 0.1 - objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - propertyPath: m_RootOrder - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8841706926471734270, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - propertyPath: m_Name - value: Direct Interactor - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} ---- !u!1 &392378402596404376 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 8841706926471734270, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - m_PrefabInstance: {fileID: 9207063593856425830} - m_PrefabAsset: {fileID: 0} ---- !u!114 &8414094292795595994 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 392378402596404376} - 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: 0} - 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: Vector3 - m_Id: 93ead265-4bff-4199-8ddf-33c028dcfee9 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -7813013294023911475, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_RotationAction: - m_UseReference: 1 - m_Action: - m_Name: Rotation - m_Type: 0 - m_ExpectedControlType: Quaternion - m_Id: cd9a8368-32d3-4e58-86a0-6fe78d199369 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 5101698808175986029, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_IsTrackedAction: - m_UseReference: 1 - m_Action: - m_Name: Is Tracked - m_Type: 1 - m_ExpectedControlType: Button - m_Id: 24f89cec-5300-4f97-ab4a-32efa3f4ffee - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 1 - m_Reference: {fileID: -7044516463258014562, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_TrackingStateAction: - m_UseReference: 1 - m_Action: - m_Name: Tracking State - m_Type: 0 - m_ExpectedControlType: Integer - m_Id: 7964ebc4-45e1-4431-a17a-7f2206e38661 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -1277054153949319361, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_SelectAction: - m_UseReference: 1 - m_Action: - m_Name: Select - m_Type: 1 - m_ExpectedControlType: Button - m_Id: 3207346a-8b2f-4b24-b45a-90ea1cdef7fb - 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: Axis - m_Id: dcf177a1-4c6d-42a7-b095-5f68848dadf1 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -1758520528963094988, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ActivateAction: - m_UseReference: 1 - m_Action: - m_Name: Activate - m_Type: 1 - m_ExpectedControlType: Button - m_Id: ed3be3cd-637e-48d6-ae4b-dd97305eaa40 - 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: Axis - m_Id: af4d694a-0159-4acb-bf36-7b78c35a10d5 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 7904272356298805229, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_UIPressAction: - m_UseReference: 1 - m_Action: - m_Name: UI Press - m_Type: 1 - m_ExpectedControlType: Button - m_Id: 55ce5c5d-aad8-4ebf-9f21-899ff595a062 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 3279264004350380116, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_UIPressActionValue: - m_UseReference: 1 - m_Action: - m_Name: UI Press Action Value - m_Type: 0 - m_ExpectedControlType: Axis - m_Id: cdab09f7-ec37-4eee-b72c-06339cc37c8b - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -5908353012961274365, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_UIScrollAction: - m_UseReference: 1 - m_Action: - m_Name: UI Scroll - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: 47bd347a-07a2-40d1-8294-469e3f7d6294 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -6756787485274679044, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_HapticDeviceAction: - m_UseReference: 1 - m_Action: - m_Name: Haptic Device - m_Type: 2 - m_ExpectedControlType: - m_Id: 60f81e0e-3fab-4e26-90b6-a5ab762e2bb1 - 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: Rotate Anchor - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: aca8fec0-a925-428d-a6b7-25cfbd478258 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -5913262927076077117, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_DirectionalAnchorRotationAction: - m_UseReference: 1 - m_Action: - m_Name: Directional Anchor Rotation - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: cde84d10-7ea4-4fb3-8369-aed372df2bf7 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -440298646266941818, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_TranslateAnchorAction: - m_UseReference: 1 - m_Action: - m_Name: Translate Anchor - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: 161874b5-2545-4bb2-bea4-eeddeb4fabf6 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 875253871413052681, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ScaleToggleAction: - m_UseReference: 1 - m_Action: - m_Name: Scale Toggle - m_Type: 1 - m_ExpectedControlType: - m_Id: 8a344e31-f267-41c9-9041-cfffb54b5147 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_ScaleDeltaAction: - m_UseReference: 1 - m_Action: - m_Name: Scale Delta - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: 02a8d26f-6921-4eb6-814c-484b8eaa28a3 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_ButtonPressPoint: 0.5 ---- !u!4 &3036286681255211627 stripped +--- !u!4 &3586141808747803997 stripped Transform: - m_CorrespondingSourceObject: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - m_PrefabInstance: {fileID: 9207063593856425830} + m_CorrespondingSourceObject: {fileID: 5697399126433476533, guid: 88b12c0ca81d9a34eac32a1e1bd19b1c, type: 3} + m_PrefabInstance: {fileID: 9139407454820817640} m_PrefabAsset: {fileID: 0} ---- !u!114 &8574486981646720036 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 664489801923019586, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - m_PrefabInstance: {fileID: 9207063593856425830} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 392378402596404376} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4253f32900bcc4d499d675566142ded0, type: 3} - m_Name: - m_EditorClassIdentifier: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/XR Origin Hands (XR Rig).prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/XR Origin Hands (XR Rig).prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/XR Origin Hands (XR Rig).prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Prefabs/XR Origin Hands (XR Rig).prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/HandsOneEuroFilterPostProcessor.cs b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/HandsOneEuroFilterPostProcessor.cs similarity index 92% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/HandsOneEuroFilterPostProcessor.cs rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/HandsOneEuroFilterPostProcessor.cs index f46c2c6b..1dd52786 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/HandsOneEuroFilterPostProcessor.cs +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/HandsOneEuroFilterPostProcessor.cs @@ -1,4 +1,4 @@ -#if XR_HANDS_1_2_OR_NEWER +#if XR_HANDS_1_2_OR_NEWER using System.Collections.Generic; using UnityEngine.XR.Hands; using UnityEngine.XR.Hands.Processing; @@ -17,11 +17,15 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.Hands { [SerializeField] [Tooltip("Smoothing amount at low speeds.")] +#pragma warning disable CS0414 // Field assigned but its value is never used -- Keep to retain serialized value when XR Hands is not installed float m_FilterMinCutoff = 0.1f; +#pragma warning restore CS0414 [SerializeField] [Tooltip("Filter's responsiveness to speed changes.")] +#pragma warning disable CS0414 // Field assigned but its value is never used -- Keep to retain serialized value when XR Hands is not installed float m_FilterBeta = 0.2f; +#pragma warning restore CS0414 #if XR_HANDS_1_2_OR_NEWER /// @@ -134,4 +138,4 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.Hands } #endif } -} \ No newline at end of file +} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/HandsOneEuroFilterPostProcessor.cs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/HandsOneEuroFilterPostProcessor.cs.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/HandsOneEuroFilterPostProcessor.cs.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/HandsOneEuroFilterPostProcessor.cs.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/HideObjectWhenInteractorBlocked.cs b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/HideObjectWhenInteractorBlocked.cs new file mode 100644 index 00000000..912894aa --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/HideObjectWhenInteractorBlocked.cs @@ -0,0 +1,49 @@ +using UnityEngine.XR.Interaction.Toolkit.Interactors; +using UnityEngine.XR.Interaction.Toolkit.Interactors.Visuals; + +namespace UnityEngine.XR.Interaction.Toolkit.Samples.Hands +{ + /// + /// Hides the specified GameObject when the associated interactor is blocked by an interaction within its group. + /// + public class HideObjectWhenInteractorBlocked : MonoBehaviour + { + [SerializeField] + [Tooltip("The interactor that this component monitors for blockages.")] + XRBaseInteractor m_Interactor; + + [SerializeField] + [Tooltip("The GameObject to hide when the interactor is blocked.")] + GameObject m_ObjectToHide; + + ICurveInteractionDataProvider m_CurveInteractionDataProvider; + bool m_HasCurveDataProvider; + + /// + /// See . + /// + void OnEnable() + { + if (m_Interactor == null || m_ObjectToHide == null) + enabled = false; + + m_HasCurveDataProvider = false; + if (m_Interactor is ICurveInteractionDataProvider provider) + { + m_CurveInteractionDataProvider = provider; + m_HasCurveDataProvider = true; + } + } + + /// + /// See . + /// + void Update() + { + if (m_HasCurveDataProvider) + m_ObjectToHide.SetActive(m_CurveInteractionDataProvider.isActive); + else + m_ObjectToHide.SetActive(m_Interactor.isActiveAndEnabled && !m_Interactor.IsBlockedByInteractionWithinGroup()); + } + } +} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/HideObjectWhenRayInteractorBlocked.cs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/HideObjectWhenInteractorBlocked.cs.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/HideObjectWhenRayInteractorBlocked.cs.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/HideObjectWhenInteractorBlocked.cs.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/LocalPositionOffsetAffordanceReceiver.cs b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/LocalPositionOffsetAffordanceReceiver.cs similarity index 90% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/LocalPositionOffsetAffordanceReceiver.cs rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/LocalPositionOffsetAffordanceReceiver.cs index 8eedbd63..26806fb4 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/LocalPositionOffsetAffordanceReceiver.cs +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/LocalPositionOffsetAffordanceReceiver.cs @@ -1,3 +1,4 @@ +using System; using Unity.Mathematics; using UnityEngine.XR.Interaction.Toolkit.AffordanceSystem.Receiver.Primitives; @@ -8,6 +9,7 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.Hands /// Broadcasts new affordance value with Unity Event. /// [AddComponentMenu("Affordance System/Receiver/Transformation/Local Position Offset Affordance Receiver", 12)] + [Obsolete("The Affordance System namespace and all associated classes have been deprecated. The existing affordance system will be moved, replaced and updated with a new interaction feedback system in a future version of XRI.")] public class LocalPositionOffsetAffordanceReceiver : Vector3AffordanceReceiver { [SerializeField] diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/LocalPositionOffsetAffordanceReceiver.cs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/LocalPositionOffsetAffordanceReceiver.cs.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/LocalPositionOffsetAffordanceReceiver.cs.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/LocalPositionOffsetAffordanceReceiver.cs.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/MetaSystemGestureDetector.cs b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/MetaSystemGestureDetector.cs similarity index 97% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/MetaSystemGestureDetector.cs rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/MetaSystemGestureDetector.cs index fb422602..a4c142c7 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/MetaSystemGestureDetector.cs +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/MetaSystemGestureDetector.cs @@ -130,7 +130,7 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.Hands readonly BindableEnum m_SystemGestureState = new BindableEnum(checkEquality: false); -#if XR_HANDS_1_1_OR_NEWER +#if XR_HANDS_1_1_OR_NEWER && (ENABLE_VR || UNITY_GAMECORE) [NonSerialized] // NonSerialized is required to avoid an "Unsupported enum base type" error about the Flags enum being ulong MetaAimFlags m_AimFlags; #endif @@ -145,10 +145,12 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.Hands BindAimFlags(); #if XR_HANDS_1_1_OR_NEWER +#if ENABLE_VR || UNITY_GAMECORE var action = m_AimFlagsAction.action; if (action != null) // Force invoking the events upon initialization to simplify making sure the callback's desired results are synced UpdateAimFlags((MetaAimFlags)action.ReadValue(), true); +#endif #else Debug.LogWarning("Script requires XR Hands (com.unity.xr.hands) package to monitor Meta Aim Flags. Install using Window > Package Manager or click Fix on the related issue in Edit > Project Settings > XR Plug-in Management > Project Validation.", this); SetGestureState(SystemGestureState.Ended, true); @@ -212,7 +214,7 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.Hands } } -#if XR_HANDS_1_1_OR_NEWER +#if XR_HANDS_1_1_OR_NEWER && (ENABLE_VR || UNITY_GAMECORE) void UpdateAimFlags(MetaAimFlags value, bool forceInvoke = false) { var hadMenuPressed = (m_AimFlags & MetaAimFlags.MenuPressed) != 0; @@ -253,7 +255,7 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.Hands void OnAimFlagsActionPerformedOrCanceled(InputAction.CallbackContext context) { -#if XR_HANDS_1_1_OR_NEWER +#if XR_HANDS_1_1_OR_NEWER && (ENABLE_VR || UNITY_GAMECORE) UpdateAimFlags((MetaAimFlags)context.ReadValue()); #endif } diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/MetaSystemGestureDetector.cs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/MetaSystemGestureDetector.cs.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/MetaSystemGestureDetector.cs.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/MetaSystemGestureDetector.cs.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/OneEuroFilterVector3.cs b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/OneEuroFilterVector3.cs similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/OneEuroFilterVector3.cs rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/OneEuroFilterVector3.cs diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/OneEuroFilterVector3.cs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/OneEuroFilterVector3.cs.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/OneEuroFilterVector3.cs.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/OneEuroFilterVector3.cs.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/PinchPointFollow.cs b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/PinchPointFollow.cs new file mode 100644 index 00000000..0e4e4e53 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/PinchPointFollow.cs @@ -0,0 +1,185 @@ +#if XR_HANDS_1_2_OR_NEWER +using Unity.XR.CoreUtils.Bindings; +using UnityEngine.XR.Hands; +using UnityEngine.XR.Interaction.Toolkit.Utilities.Tweenables.Primitives; +#endif +using UnityEngine.XR.Interaction.Toolkit.Interactors; + +namespace UnityEngine.XR.Interaction.Toolkit.Samples.Hands +{ + /// + /// A class that follows the pinch point between the thumb and index finger using XR Hand Tracking. + /// It updates its position to the midpoint between the thumb and index tip while optionally adjusting its rotation + /// to look at a specified target. The rotation towards the target can also be smoothly interpolated over time. + /// + public class PinchPointFollow : MonoBehaviour + { + [Header("Events")] + [SerializeField] + [Tooltip("The XR Hand Tracking Events component that will be used to subscribe to hand tracking events.")] +#if XR_HANDS_1_2_OR_NEWER + XRHandTrackingEvents m_XRHandTrackingEvents; +#else + Object m_XRHandTrackingEvents; +#endif + + [Header("Interactor reference (Pick one)")] + [SerializeField] + [Tooltip("The transform will use the XRRayInteractor endpoint position to calculate the transform rotation.")] + XRRayInteractor m_RayInteractor; + + [SerializeField] + [Tooltip("The transform will use the NearFarInteractor endpoint position to calculate the transform rotation.")] + NearFarInteractor m_NearFarInteractor; + + [Header("Rotation Config")] + [SerializeField] + [Tooltip("The transform to match the rotation of.")] + Transform m_TargetRotation; + + [SerializeField] + [Tooltip("How fast to match rotation (0 means no rotation smoothing.)")] + [Range(0f, 32f)] +#pragma warning disable CS0414 // Field assigned but its value is never used -- Keep to retain serialized value when XR Hands is not installed + float m_RotationSmoothingSpeed = 12f; +#pragma warning restore CS0414 + +#if XR_HANDS_1_2_OR_NEWER + bool m_HasTargetRotationTransform; + IXRRayProvider m_RayProvider; + bool m_HasRayProvider; + OneEuroFilterVector3 m_OneEuroFilterVector3; + +#pragma warning disable CS0618 // Type or member is obsolete + readonly QuaternionTweenableVariable m_QuaternionTweenableVariable = new QuaternionTweenableVariable(); +#pragma warning restore CS0618 // Type or member is obsolete + readonly BindingsGroup m_BindingsGroup = new BindingsGroup(); +#endif + + /// + /// See . + /// + void OnEnable() + { +#if XR_HANDS_1_2_OR_NEWER + if (m_XRHandTrackingEvents != null) + m_XRHandTrackingEvents.jointsUpdated.AddListener(OnJointsUpdated); + + m_OneEuroFilterVector3 = new OneEuroFilterVector3(transform.localPosition); + if (m_RayInteractor != null) + { + m_RayProvider = m_RayInteractor; + m_HasRayProvider = true; + } + if (m_NearFarInteractor != null) + { + m_RayProvider = m_NearFarInteractor; + m_HasRayProvider = true; + } + m_HasTargetRotationTransform = m_TargetRotation != null; + m_BindingsGroup.AddBinding(m_QuaternionTweenableVariable.Subscribe(newValue => transform.rotation = newValue)); +#else + Debug.LogWarning("PinchPointFollow requires XR Hands (com.unity.xr.hands) 1.2.0 or newer. Disabling component.", this); + enabled = false; +#endif + } + + /// + /// See . + /// + void OnDisable() + { +#if XR_HANDS_1_2_OR_NEWER + m_BindingsGroup.Clear(); + if (m_XRHandTrackingEvents != null) + m_XRHandTrackingEvents.jointsUpdated.RemoveListener(OnJointsUpdated); +#endif + } + +#if XR_HANDS_1_2_OR_NEWER + static bool TryGetPinchPosition(XRHandJointsUpdatedEventArgs args, out Vector3 position) + { +#if XR_HANDS_1_5_OR_NEWER + if (args.subsystem != null) + { + var commonHandGestures = args.hand.handedness == Handedness.Left + ? args.subsystem.leftHandCommonGestures + : args.hand.handedness == Handedness.Right + ? args.subsystem.rightHandCommonGestures + : null; + if (commonHandGestures != null && commonHandGestures.TryGetPinchPose(out var pinchPose)) + { + // Protect against platforms returning bad data like (NaN, NaN, NaN) + if (!float.IsNaN(pinchPose.position.x) && + !float.IsNaN(pinchPose.position.y) && + !float.IsNaN(pinchPose.position.z)) + { + position = pinchPose.position; + return true; + } + } + } +#endif + + var thumbTip = args.hand.GetJoint(XRHandJointID.ThumbTip); + if (!thumbTip.TryGetPose(out var thumbTipPose)) + { + position = Vector3.zero; + return false; + } + + var indexTip = args.hand.GetJoint(XRHandJointID.IndexTip); + if (!indexTip.TryGetPose(out var indexTipPose)) + { + position = Vector3.zero; + return false; + } + + position = Vector3.Lerp(thumbTipPose.position, indexTipPose.position, 0.5f); + return true; + } + + void OnJointsUpdated(XRHandJointsUpdatedEventArgs args) + { + if (!TryGetPinchPosition(args, out var targetPos)) + return; + + var filteredTargetPos = m_OneEuroFilterVector3.Filter(targetPos, Time.deltaTime); + + // Hand pose data is in local space relative to the XR Origin. + transform.localPosition = filteredTargetPos; + + if (m_HasTargetRotationTransform && m_HasRayProvider) + { + // Given that the ray endpoint is in world space, we need to use the world space transform of this point to determine the target rotation. + // This allows us to keep orientation consistent when moving the XR Origin for locomotion. + var targetDir = (m_RayProvider.rayEndPoint - transform.position).normalized; + if (targetDir != Vector3.zero) + { + // Use the parent Transform's up vector if available, otherwise use the world up vector. + // The assumption is the parent Transform matches the XR Origin rotation. + // This allows the XR Origin to teleport to angled surfaces or upside down surfaces + // and the visual will still be correct relative to the application's ground. + var upwards = Vector3.up; + var parentTransform = transform.parent; + if (!(parentTransform is null)) + upwards = parentTransform.up; + + var targetRot = Quaternion.LookRotation(targetDir, upwards); + + // If there aren't any major swings in rotation, follow the target rotation. + if (Vector3.Dot(m_TargetRotation.forward, targetDir) > 0.5f) + m_QuaternionTweenableVariable.target = targetRot; + } + else + { + m_QuaternionTweenableVariable.target = m_TargetRotation.rotation; + } + + var tweenTarget = m_RotationSmoothingSpeed > 0f ? m_RotationSmoothingSpeed * Time.deltaTime : 1f; + m_QuaternionTweenableVariable.HandleTween(tweenTarget); + } + } +#endif + } +} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/PinchPointFollow.cs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/PinchPointFollow.cs.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/PinchPointFollow.cs.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/PinchPointFollow.cs.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/PokeGestureDetector.cs b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/PokeGestureDetector.cs similarity index 99% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/PokeGestureDetector.cs rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/PokeGestureDetector.cs index 29e0c72f..85bfa1b8 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/PokeGestureDetector.cs +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/PokeGestureDetector.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using UnityEngine.Events; #if XR_HANDS_1_1_OR_NEWER using UnityEngine.XR.Hands; diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/PokeGestureDetector.cs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/PokeGestureDetector.cs.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Scripts/PokeGestureDetector.cs.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/PokeGestureDetector.cs.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/ReleaseThresholdButtonReader.cs b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/ReleaseThresholdButtonReader.cs new file mode 100644 index 00000000..e286cbfc --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/ReleaseThresholdButtonReader.cs @@ -0,0 +1,133 @@ +using UnityEngine.XR.Interaction.Toolkit.Inputs.Readers; + +namespace UnityEngine.XR.Interaction.Toolkit.Samples.Hands +{ + /// + /// An input button reader based on another and holds it true until falling below a lower release threshold. + /// Useful with hand interaction because the bool select value can bounce when the hand is near the tight internal threshold, + /// so using this will keep the pinch true until moving the fingers much further away than the pinch activation threshold. + /// + [DefaultExecutionOrder(XRInteractionUpdateOrder.k_XRInputDeviceButtonReader)] + public class ReleaseThresholdButtonReader : MonoBehaviour, IXRInputButtonReader + { + [SerializeField] + [Tooltip("The source input that this component reads to create a processed button value.")] + XRInputButtonReader m_ValueInput = new XRInputButtonReader("Value"); + + /// + /// The source input that this component reads to create a processed button value. + /// + public XRInputButtonReader valueInput + { + get => m_ValueInput; + set => XRInputReaderUtility.SetInputProperty(ref m_ValueInput, value, this); + } + + [SerializeField] + [Tooltip("The threshold value to use to determine when the button is pressed. Considered pressed equal to or greater than this value.")] + [Range(0f, 1f)] + float m_PressThreshold = 0.8f; + + /// + /// The threshold value to use to determine when the button is pressed. Considered pressed equal to or greater than this value. + /// + /// + /// This reader will also be considered performed if the source input is performed. + /// + public float pressThreshold + { + get => m_PressThreshold; + set => m_PressThreshold = value; + } + + [SerializeField] + [Tooltip("The threshold value to use to determine when the button is released when it was previously pressed. Keeps being pressed until falls back to a value of or below this value.")] + [Range(0f, 1f)] + float m_ReleaseThreshold = 0.25f; + + /// + /// The threshold value to use to determine when the button is released when it was previously pressed. + /// Keeps being pressed until falls back to a value of or below this value. + /// + /// + /// This reader will still be considered performed if the source input is still performed + /// when this threshold is reached. + /// + public float releaseThreshold + { + get => m_ReleaseThreshold; + set => m_ReleaseThreshold = value; + } + + bool m_IsPerformed; + bool m_WasPerformedThisFrame; + bool m_WasCompletedThisFrame; + + /// + /// See . + /// + void OnEnable() + { + m_ValueInput?.EnableDirectActionIfModeUsed(); + } + + /// + /// See . + /// + void OnDisable() + { + m_ValueInput?.DisableDirectActionIfModeUsed(); + } + + /// + /// See . + /// + void Update() + { + // Go true when either the press threshold is reached or the bool is already performed. + // Only drop back to false when the release threshold is reached and the bool is no longer performed. + var prevPerformed = m_IsPerformed; + var pressAmount = m_ValueInput.ReadValue(); + + bool newValue; + if (prevPerformed) + newValue = pressAmount > m_ReleaseThreshold || m_ValueInput.ReadIsPerformed(); + else + newValue = pressAmount >= m_PressThreshold || m_ValueInput.ReadIsPerformed(); + + m_IsPerformed = newValue; + m_WasPerformedThisFrame = !prevPerformed && m_IsPerformed; + m_WasCompletedThisFrame = prevPerformed && !m_IsPerformed; + } + + /// + public bool ReadIsPerformed() + { + return m_IsPerformed; + } + + /// + public bool ReadWasPerformedThisFrame() + { + return m_WasPerformedThisFrame; + } + + /// + public bool ReadWasCompletedThisFrame() + { + return m_WasCompletedThisFrame; + } + + /// + public float ReadValue() + { + return m_ValueInput.ReadValue(); + } + + /// + public bool TryReadValue(out float value) + { + return m_ValueInput.TryReadValue(out value); + } + } +} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Scripts/XRDeviceSimulatorControllerUI.cs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/ReleaseThresholdButtonReader.cs.meta similarity index 83% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Scripts/XRDeviceSimulatorControllerUI.cs.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/ReleaseThresholdButtonReader.cs.meta index 84889f48..cd19e72a 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Scripts/XRDeviceSimulatorControllerUI.cs.meta +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/ReleaseThresholdButtonReader.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: a907ece591e731e49b5d7be45f089972 +guid: 63f61d1c82c9fc6429ebd4791a4d6817 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/ValueDerivedButtonReader.cs b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/ValueDerivedButtonReader.cs new file mode 100644 index 00000000..828ccab4 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/ValueDerivedButtonReader.cs @@ -0,0 +1,121 @@ +using UnityEngine.XR.Interaction.Toolkit.Inputs.Readers; + +namespace UnityEngine.XR.Interaction.Toolkit.Samples.Hands +{ + /// + /// Example class that reads a float value from an and converts it to a bool. + /// Useful with hand interaction because the bool select value can be unreliable when the hand is near the tight internal threshold. + /// + [DefaultExecutionOrder(XRInteractionUpdateOrder.k_XRInputDeviceButtonReader)] + public class ValueDerivedButtonReader : MonoBehaviour, IXRInputButtonReader + { + [SerializeField] + [Tooltip("The input reader used to reference the float value to convert to a bool.")] + XRInputValueReader m_ValueInput = new XRInputValueReader("Value"); + + /// + /// The input reader used to reference the float value to convert to a bool. + /// + public XRInputValueReader valueInput + { + get => m_ValueInput; + set => XRInputReaderUtility.SetInputProperty(ref m_ValueInput, value, this); + } + + [SerializeField] + [Tooltip("The threshold value to use to determine when the button is pressed. Considered pressed equal to or greater than this value.")] + [Range(0f, 1f)] + float m_PressThreshold = 0.8f; + + /// + /// The threshold value to use to determine when the button is pressed. Considered pressed equal to or greater than this value. + /// + public float pressThreshold + { + get => m_PressThreshold; + set => m_PressThreshold = value; + } + + [SerializeField] + [Tooltip("The threshold value to use to determine when the button is released when it was previously pressed. Keeps being pressed until falls back to a value of or below this value.")] + [Range(0f, 1f)] + float m_ReleaseThreshold = 0.25f; + + /// + /// The threshold value to use to determine when the button is released when it was previously pressed. + /// Keeps being pressed until falls back to a value of or below this value. + /// + public float releaseThreshold + { + get => m_ReleaseThreshold; + set => m_ReleaseThreshold = value; + } + + bool m_IsPerformed; + bool m_WasPerformedThisFrame; + bool m_WasCompletedThisFrame; + + /// + /// See . + /// + void OnEnable() + { + m_ValueInput?.EnableDirectActionIfModeUsed(); + } + + /// + /// See . + /// + void OnDisable() + { + m_ValueInput?.DisableDirectActionIfModeUsed(); + } + + /// + /// See . + /// + void Update() + { + var prevPerformed = m_IsPerformed; + var pressAmount = m_ValueInput.ReadValue(); + + var newValue = pressAmount >= m_PressThreshold; + if (!newValue && prevPerformed) + newValue = pressAmount > m_ReleaseThreshold; + + m_IsPerformed = newValue; + m_WasPerformedThisFrame = !prevPerformed && m_IsPerformed; + m_WasCompletedThisFrame = prevPerformed && !m_IsPerformed; + } + + /// + public bool ReadIsPerformed() + { + return m_IsPerformed; + } + + /// + public bool ReadWasPerformedThisFrame() + { + return m_WasPerformedThisFrame; + } + + /// + public bool ReadWasCompletedThisFrame() + { + return m_WasCompletedThisFrame; + } + + /// + public float ReadValue() + { + return m_ValueInput.ReadValue(); + } + + /// + public bool TryReadValue(out float value) + { + return m_ValueInput.TryReadValue(out value); + } + } +} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Scripts/XRDeviceSimulatorHandsUI.cs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/ValueDerivedButtonReader.cs.meta similarity index 83% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Scripts/XRDeviceSimulatorHandsUI.cs.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/ValueDerivedButtonReader.cs.meta index 5171c4d3..1ed61a4a 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Scripts/XRDeviceSimulatorHandsUI.cs.meta +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/ValueDerivedButtonReader.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: f35ac646ecbef4ece8c3eac9e74e1828 +guid: bf47ae772fb3421292887025bf9b5820 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/Vector3ScaleAffordanceReceiver.cs b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/Vector3ScaleAffordanceReceiver.cs similarity index 80% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/Vector3ScaleAffordanceReceiver.cs rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/Vector3ScaleAffordanceReceiver.cs index 127ab21c..3845f199 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/Vector3ScaleAffordanceReceiver.cs +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/Vector3ScaleAffordanceReceiver.cs @@ -1,3 +1,4 @@ +using System; using Unity.Mathematics; using UnityEngine.XR.Interaction.Toolkit.AffordanceSystem.Receiver.Primitives; @@ -7,6 +8,7 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.Hands /// Affordance receiver applying a Vector3 (Float3) affordance theme to a Transform local scale. /// Broadcasts new affordance value with Unity Event. /// + [Obsolete("The Affordance System namespace and all associated classes have been deprecated. The existing affordance system will be moved, replaced and updated with a new interaction feedback system in a future version of XRI.")] public class Vector3ScaleAffordanceReceiver : Vector3AffordanceReceiver { [SerializeField] diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/Vector3ScaleAffordanceReceiver.cs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/Vector3ScaleAffordanceReceiver.cs.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/Vector3ScaleAffordanceReceiver.cs.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Scripts/Vector3ScaleAffordanceReceiver.cs.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/DepthOnly.shader b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/DepthOnly.shader similarity index 95% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/DepthOnly.shader rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/DepthOnly.shader index 4b5e180c..53f590da 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/DepthOnly.shader +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/DepthOnly.shader @@ -11,7 +11,7 @@ Shader "Unlit/DepthOnly" Pass { ZWrite On - + ColorMask 0 } diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/DepthOnly.shader.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/DepthOnly.shader.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/DepthOnly.shader.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/DepthOnly.shader.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/RimLight.shadergraph b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/RimLight.shadergraph similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/RimLight.shadergraph rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/RimLight.shadergraph diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/RimLight.shadergraph.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/RimLight.shadergraph.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/RimLight.shadergraph.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/RimLight.shadergraph.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Subgraphs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Subgraphs.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Subgraphs.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Subgraphs.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Subgraphs/AllFingerHighlights.shadersubgraph b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Subgraphs/AllFingerHighlights.shadersubgraph similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Subgraphs/AllFingerHighlights.shadersubgraph rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Subgraphs/AllFingerHighlights.shadersubgraph diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Subgraphs/AllFingerHighlights.shadersubgraph.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Subgraphs/AllFingerHighlights.shadersubgraph.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Subgraphs/AllFingerHighlights.shadersubgraph.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Subgraphs/AllFingerHighlights.shadersubgraph.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Subgraphs/EdgeHighlight.shadersubgraph b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Subgraphs/EdgeHighlight.shadersubgraph similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Subgraphs/EdgeHighlight.shadersubgraph rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Subgraphs/EdgeHighlight.shadersubgraph diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Subgraphs/EdgeHighlight.shadersubgraph.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Subgraphs/EdgeHighlight.shadersubgraph.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Subgraphs/EdgeHighlight.shadersubgraph.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Subgraphs/EdgeHighlight.shadersubgraph.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Subgraphs/FadeFromCenter.shadersubgraph b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Subgraphs/FadeFromCenter.shadersubgraph similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Subgraphs/FadeFromCenter.shadersubgraph rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Subgraphs/FadeFromCenter.shadersubgraph diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Subgraphs/FadeFromCenter.shadersubgraph.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Subgraphs/FadeFromCenter.shadersubgraph.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Subgraphs/FadeFromCenter.shadersubgraph.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Subgraphs/FadeFromCenter.shadersubgraph.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Subgraphs/FadeFromCenterWithNoise.shadersubgraph b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Subgraphs/FadeFromCenterWithNoise.shadersubgraph similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Subgraphs/FadeFromCenterWithNoise.shadersubgraph rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Subgraphs/FadeFromCenterWithNoise.shadersubgraph diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Subgraphs/FadeFromCenterWithNoise.shadersubgraph.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Subgraphs/FadeFromCenterWithNoise.shadersubgraph.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Subgraphs/FadeFromCenterWithNoise.shadersubgraph.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Subgraphs/FadeFromCenterWithNoise.shadersubgraph.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Subgraphs/OneFingerHighlight.shadersubgraph b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Subgraphs/OneFingerHighlight.shadersubgraph similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Subgraphs/OneFingerHighlight.shadersubgraph rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Subgraphs/OneFingerHighlight.shadersubgraph diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Subgraphs/OneFingerHighlight.shadersubgraph.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Subgraphs/OneFingerHighlight.shadersubgraph.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Subgraphs/OneFingerHighlight.shadersubgraph.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Subgraphs/OneFingerHighlight.shadersubgraph.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Unity_Hand.shadergraph b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Unity_Hand.shadergraph similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Unity_Hand.shadergraph rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Unity_Hand.shadergraph diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Unity_Hand.shadergraph.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Unity_Hand.shadergraph.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Unity_Hand.shadergraph.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Unity_Hand.shadergraph.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Unity_Hand_HDR.shadergraph b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Unity_Hand_HDR.shadergraph similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Unity_Hand_HDR.shadergraph rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Unity_Hand_HDR.shadergraph diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Unity_Hand_HDR.shadergraph.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Unity_Hand_HDR.shadergraph.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Unity_Hand_HDR.shadergraph.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Unity_Hand_HDR.shadergraph.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Unity_Hand_Noise.shadergraph b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Unity_Hand_Noise.shadergraph similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Unity_Hand_Noise.shadergraph rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Unity_Hand_Noise.shadergraph diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Unity_Hand_Noise.shadergraph.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Unity_Hand_Noise.shadergraph.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Unity_Hand_Noise.shadergraph.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Unity_Hand_Noise.shadergraph.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Unity_Hand_Noise_HDR.shadergraph b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Unity_Hand_Noise_HDR.shadergraph similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Unity_Hand_Noise_HDR.shadergraph rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Unity_Hand_Noise_HDR.shadergraph diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Unity_Hand_Noise_HDR.shadergraph.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Unity_Hand_Noise_HDR.shadergraph.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Shaders/Unity_Hand_Noise_HDR.shadergraph.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Shaders/Unity_Hand_Noise_HDR.shadergraph.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Textures.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Textures.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Textures.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Textures.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Textures/CombinedFingerIndexHighlight.png b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Textures/CombinedFingerIndexHighlight.png similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Textures/CombinedFingerIndexHighlight.png rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Textures/CombinedFingerIndexHighlight.png diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Textures/CombinedFingerIndexHighlight.png.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Textures/CombinedFingerIndexHighlight.png.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Textures/CombinedFingerIndexHighlight.png.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Hands Interaction Demo/Textures/CombinedFingerIndexHighlight.png.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets.meta similarity index 77% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets.meta index 450b24e5..ab46e403 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets.meta +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 3f8c2c5f6b5784549939394ed2348f7f +guid: d357ee5afb898d64ebaeff2c05af4ee3 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/AffordanceThemes.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/AffordanceThemes.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/ControllerPokeSphereScale.asset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/ControllerPokeSphereScale.asset new file mode 100644 index 00000000..39e94bc8 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/ControllerPokeSphereScale.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b75c5cfebce0fb49af0b510ae8746abc63862dd31ad9c43dafc7605bd7a24be7 +size 1771 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Grab Expression Capture.asset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/ControllerPokeSphereScale.asset.meta similarity index 79% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Grab Expression Capture.asset.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/ControllerPokeSphereScale.asset.meta index cc7201ad..53a66560 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Grab Expression Capture.asset.meta +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/ControllerPokeSphereScale.asset.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 3861c298d39c60c44b16920421444875 +guid: fd784a23f6ef7774a8998adf6e979d04 NativeFormatImporter: externalObjects: {} mainObjectFileID: 11400000 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/HighlightInteractionColor.asset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/HighlightInteractionColor.asset new file mode 100644 index 00000000..5f735c44 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/HighlightInteractionColor.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0294db89643cca83e8e92ca72e71e9a7ff7f1340f12e292def8c781bebab3e90 +size 2665 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Open Expression Capture.asset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/HighlightInteractionColor.asset.meta similarity index 79% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Open Expression Capture.asset.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/HighlightInteractionColor.asset.meta index 3a2b1866..b24604f8 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Open Expression Capture.asset.meta +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/HighlightInteractionColor.asset.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 05293ab353dc8a747a36ed129311686d +guid: 8b0b5aede76faac438e02d2a468f4805 NativeFormatImporter: externalObjects: {} mainObjectFileID: 11400000 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/HighlightStrengthInteraction.asset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/HighlightStrengthInteraction.asset new file mode 100644 index 00000000..52a24ec6 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/HighlightStrengthInteraction.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:63943bb242c027856f63f2b96482e7a87192e0b7ed3cbddc8ac6e5bfd6dd048b +size 1776 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Pinch Expression Capture.asset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/HighlightStrengthInteraction.asset.meta similarity index 79% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Pinch Expression Capture.asset.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/HighlightStrengthInteraction.asset.meta index 752844a0..8ea72736 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Hand Expression Captures/Pinch Expression Capture.asset.meta +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/HighlightStrengthInteraction.asset.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: d6e15a52475c2564ca7d2977fdece24a +guid: 795305341a8dbbd46ae54e9a01d6ea95 NativeFormatImporter: externalObjects: {} mainObjectFileID: 11400000 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/PokeSphereColor.asset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/PokeSphereColor.asset new file mode 100644 index 00000000..43f2e3a8 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/PokeSphereColor.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0b4ce78e7e0c362ec7a6a34274bf34cd6c1e4caca5c8f4e2cf59c62d3353635 +size 2675 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/PokeSphereColor.asset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/PokeSphereColor.asset.meta new file mode 100644 index 00000000..b02d8f88 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/PokeSphereColor.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fc690d1505c48cb4696838b71abd2ca0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/PokeSphereInteraction.asset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/PokeSphereInteraction.asset new file mode 100644 index 00000000..c2f1d910 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/PokeSphereInteraction.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0261bb611639cbf7b230dedba89ea95279908a2ea2fd19d2f7c260d8d04c368 +size 1779 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/PokeSphereInteraction.asset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/PokeSphereInteraction.asset.meta new file mode 100644 index 00000000..7b05a984 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/AffordanceThemes/PokeSphereInteraction.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c2712227db89c5142adad58b143bf039 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/Chess.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Animations.meta similarity index 77% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/Chess.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Animations.meta index 8eddaa7e..9ff8971c 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/AffordanceThemes/Chess.meta +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Animations.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 0be2a80454fcbff4a9017ce60441e58c +guid: 8214388458fa6ed49b17bdcee2339a6d folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Animations/ArrowBounce.anim b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Animations/ArrowBounce.anim new file mode 100644 index 00000000..0cd7d2a5 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Animations/ArrowBounce.anim @@ -0,0 +1,205 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: ArrowBounce + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: {x: 0, y: 0, z: 0} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.41666666 + value: {x: 0, y: 0, z: -0.4} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.8333333 + value: {x: 0, y: 0, z: 0} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + path: Arrow + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 435601722 + attribute: 1 + script: {fileID: 0} + typeID: 4 + customType: 0 + isPPtrCurve: 0 + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.8333333 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 1 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.41666666 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.8333333 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalPosition.x + path: Arrow + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.41666666 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.8333333 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalPosition.y + path: Arrow + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.41666666 + value: -0.4 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.8333333 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalPosition.z + path: Arrow + classID: 4 + script: {fileID: 0} + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Animations/ArrowBounce.anim.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Animations/ArrowBounce.anim.meta new file mode 100644 index 00000000..5a78d862 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Animations/ArrowBounce.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ebfa13455423c254e943b87bf6e1f310 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Animations/Climb Teleport Arrow.controller b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Animations/Climb Teleport Arrow.controller new file mode 100644 index 00000000..e4280963 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Animations/Climb Teleport Arrow.controller @@ -0,0 +1,72 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Climb Teleport Arrow + serializedVersion: 5 + m_AnimatorParameters: [] + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: Base Layer + m_StateMachine: {fileID: 153770218214309143} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} +--- !u!1107 &153770218214309143 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Base Layer + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 8146158331300458114} + m_Position: {x: 200, y: 0, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: 8146158331300458114} +--- !u!1102 &8146158331300458114 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: ArrowBounce + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: ebfa13455423c254e943b87bf6e1f310, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Animations/Climb Teleport Arrow.controller.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Animations/Climb Teleport Arrow.controller.meta new file mode 100644 index 00000000..aac095ca --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Animations/Climb Teleport Arrow.controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: db6239f7ccb29ca4aac63126c6a35e7d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 9100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoScene.unity b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoScene.unity new file mode 100644 index 00000000..6d2fc36b --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoScene.unity @@ -0,0 +1,4782 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 112000000, guid: 8938f010b6d8ddb4aa5a1bee57205791, type: 2} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &144254102 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 144254103} + - component: {fileID: 144254105} + - component: {fileID: 144254104} + m_Layer: 5 + m_Name: Header Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &144254103 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 144254102} + 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: 1247873231} + m_Father: {fileID: 788111585} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -48.5} + m_SizeDelta: {x: 0, y: 98.63} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &144254104 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 144254102} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.7490196} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &144254105 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 144254102} + m_CullTransparentMesh: 1 +--- !u!1 &157733528 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 157733529} + - component: {fileID: 157733531} + - component: {fileID: 157733530} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &157733529 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 157733528} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.000029802322} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 421848384} + m_Father: {fileID: 788111585} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: -275, y: 50} + m_SizeDelta: {x: 250, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &157733530 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 157733528} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.7490196} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &157733531 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 157733528} + m_CullTransparentMesh: 1 +--- !u!1001 &208985960 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1565887663814566040, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} + propertyPath: m_Name + value: Teleportation Environment + objectReference: {fileID: 0} + - target: {fileID: 1565887663814566041, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} + propertyPath: m_RootOrder + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 1565887663814566041, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1565887663814566041, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1565887663814566041, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1565887663814566041, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1565887663814566041, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1565887663814566041, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1565887663814566041, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1565887663814566041, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1565887663814566041, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1565887663814566041, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} +--- !u!1 &235184210 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 235184214} + - component: {fileID: 235184213} + - component: {fileID: 235184212} + - component: {fileID: 235184211} + m_Layer: 0 + m_Name: Grab Interactable Table + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &235184211 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 235184210} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &235184212 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 235184210} + 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: 842f1b88643f1bb458ba6243088e344e, 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 &235184213 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 235184210} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &235184214 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 235184210} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 4, y: 0.625, z: -2.5} + m_LocalScale: {x: 0.4, y: 1, z: 1.85} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 439588100} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &336426667 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 336426668} + - component: {fileID: 336426670} + - component: {fileID: 336426669} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &336426668 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 336426667} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.000029802322} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 196977305468683333} + m_Father: {fileID: 604367606304239380} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: -250.00003, y: 35} + m_SizeDelta: {x: 200, y: 75} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &336426669 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 336426667} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.7490196} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &336426670 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 336426667} + m_CullTransparentMesh: 1 +--- !u!1 &421848383 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 421848384} + - component: {fileID: 421848387} + - component: {fileID: 421848386} + - component: {fileID: 421848385} + m_Layer: 5 + m_Name: Dynamic Attach + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &421848384 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 421848383} + 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: 157733529} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0.000091552734, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &421848385 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 421848383} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 50 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Dynamic Attach +--- !u!114 &421848386 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 421848383} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!222 &421848387 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 421848383} + m_CullTransparentMesh: 0 +--- !u!1 &439588099 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 439588100} + m_Layer: 0 + m_Name: Demo Environment + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &439588100 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 439588099} + 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: 1815318737} + - {fileID: 604367606304239380} + - {fileID: 235184214} + - {fileID: 3807310296116640662} + - {fileID: 4581292472285887094} + - {fileID: 788111585} + - {fileID: 1579013953} + - {fileID: 1917198434} + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &564796391 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 564796392} + - component: {fileID: 564796394} + - component: {fileID: 564796393} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &564796392 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 564796391} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0.000029802322} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1021619524} + m_Father: {fileID: 604367606304239380} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 250.00003, y: 35} + m_SizeDelta: {x: 200, y: 75} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &564796393 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 564796391} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.7490196} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &564796394 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 564796391} + m_CullTransparentMesh: 1 +--- !u!1 &788111584 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 788111585} + - component: {fileID: 788111590} + - component: {fileID: 788111589} + - component: {fileID: 788111588} + - component: {fileID: 788111587} + m_Layer: 5 + m_Name: Far Grab Interactable Info + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &788111585 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 788111584} + m_LocalRotation: {x: 0, y: 1, z: 0, w: 0} + m_LocalPosition: {x: 0, y: 0, z: -5} + m_LocalScale: {x: 0.002, y: 0.002, z: 0.002} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 144254103} + - {fileID: 157733529} + - {fileID: 1740969851} + - {fileID: 1807497890} + m_Father: {fileID: 439588100} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: -1.5, y: 1.5} + m_SizeDelta: {x: 800, y: 200} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &788111587 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 788111584} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7951c64acb0fa62458bf30a60089fe2d, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 0 + m_CheckFor2DOcclusion: 0 + m_CheckFor3DOcclusion: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RaycastTriggerInteraction: 1 +--- !u!114 &788111588 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 788111584} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &788111589 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 788111584} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &788111590 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 788111584} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 1731298971} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &874919884 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 874919885} + - component: {fileID: 874919887} + - component: {fileID: 874919886} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &874919885 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 874919884} + 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: 1522956427} + m_Father: {fileID: 604367606304239380} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 35} + m_SizeDelta: {x: 200, y: 75} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &874919886 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 874919884} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.7490196} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &874919887 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 874919884} + m_CullTransparentMesh: 1 +--- !u!1001 &876656115 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 732877344778758187, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 732877344778758187, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 732877344778758187, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 732877344778758187, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 732877344778758187, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1465720397298211355, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1465720397298211355, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1465720398002813458, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1465720398002813458, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1465720398002813458, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1465720398059456908, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1465720398059456908, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1465720398059456908, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1465720398059456908, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1477547282043262312, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1477547282043262312, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1477547282043262312, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1477547282043262312, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1956391703820887915, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1956391703820887915, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1956391703820887915, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1956391703820887915, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1962376703435983919, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1962376703435983919, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1962376703435983919, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2923970395470667645, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2923970395470667645, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2923970395470667645, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2923970395470667645, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3322978173798649548, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3322978173798649548, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3322978173798649548, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3322978173798649548, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3322978174125981243, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3322978174125981243, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3322978174125981243, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3322978174125981243, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.x + value: 150 + objectReference: {fileID: 0} + - target: {fileID: 3322978174125981243, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3322978174681443215, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3322978174681443215, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3322978174681443215, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3322978174681443215, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.x + value: 475 + objectReference: {fileID: 0} + - target: {fileID: 3322978174681443215, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3352765378411564996, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3352765378411564996, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3352765378411564996, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3352765378411564996, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3690213291364595752, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3690213291364595752, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3690213291364595752, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3690213291364595752, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4015128326712939850, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_Camera + value: + objectReference: {fileID: 1731298971} + - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_RootOrder + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_SizeDelta.x + value: 1000 + objectReference: {fileID: 0} + - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_SizeDelta.y + value: 360 + objectReference: {fileID: 0} + - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_LocalPosition.z + value: -2.5 + objectReference: {fileID: 0} + - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.x + value: -4 + objectReference: {fileID: 0} + - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.y + value: 1.5 + objectReference: {fileID: 0} + - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -90 + objectReference: {fileID: 0} + - target: {fileID: 4015128326712939851, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4015128326712939855, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_Name + value: UI Sample + objectReference: {fileID: 0} + - target: {fileID: 4220274215976610951, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4220274215976610951, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4220274215976610951, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4220274215976610951, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4220274215976610951, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4422659089949380333, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4422659089949380333, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4422659089949380333, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4422659089949380333, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4422659089949380333, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4422659090696076826, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4422659090696076826, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4422659090696076826, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4422659090696076826, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4422659090696076826, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4422659091188657070, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4422659091188657070, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4422659091188657070, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4422659091188657070, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4588051828473420344, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4588051828473420344, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4588051828473420344, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4588051828473420344, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4950580794031056704, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4950580794031056704, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4950580794031056704, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4950580794031056704, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.x + value: 150 + objectReference: {fileID: 0} + - target: {fileID: 4950580794031056704, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5459145654789298736, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5459145654789298736, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5459145655105915303, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5459145655105915303, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5459145655105915303, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5459145655105915303, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5459145655158323769, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5459145655158323769, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5459145655158323769, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5684358024879033404, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5684358024879033404, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5849765079216124530, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5849765079944474460, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_Size + value: 0.9999997 + objectReference: {fileID: 0} + - target: {fileID: 5849765080478431418, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5849765080478431418, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5849765080478431418, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5849765080480587862, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5849765080480587862, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5849765080480587862, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5849765080480587862, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5849765080850205986, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5849765080850205986, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5849765080850205986, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6546457552942104298, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6546457552942104298, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6546457552942104298, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8180815008627773159, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8180815008627773159, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8180815008627773159, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8180815008627773159, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8180815009374535184, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8180815009374535184, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8180815009374535184, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8180815009374535184, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8180815009888545700, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8180815009888545700, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8180815009888545700, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8180815009888545700, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8575284107106180950, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8575284107106180950, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8575284107106180950, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8575284107106180950, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8607500784391115102, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8607500784391115102, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8607500784391115102, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8607500784391115102, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: fd28f23af44f73f4a95e33435872ad15, type: 3} +--- !u!1 &967567311 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 967567312} + - component: {fileID: 967567315} + - component: {fileID: 967567314} + - component: {fileID: 967567313} + m_Layer: 5 + m_Name: Dual Fixed Attach + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &967567312 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 967567311} + 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: 1807497890} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -0.0002746582, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &967567313 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 967567311} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Dual Fixed Attach +--- !u!114 &967567314 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 967567311} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!222 &967567315 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 967567311} + m_CullTransparentMesh: 0 +--- !u!1 &1021619523 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1021619524} + - component: {fileID: 1021619527} + - component: {fileID: 1021619526} + - component: {fileID: 1021619525} + m_Layer: 5 + m_Name: Velocity-Tracked Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1021619524 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1021619523} + 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: 564796392} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -0.0002746582, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1021619525 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1021619523} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Velocity Tracked + + Movement' +--- !u!114 &1021619526 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1021619523} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!222 &1021619527 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1021619523} + m_CullTransparentMesh: 0 +--- !u!1 &1202312658 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1202312659} + - component: {fileID: 1202312661} + - component: {fileID: 1202312660} + m_Layer: 5 + m_Name: Header Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1202312659 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1202312658} + 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: 196977306215183538} + m_Father: {fileID: 604367606304239380} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -48.5} + m_SizeDelta: {x: 0, y: 98.63} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1202312660 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1202312658} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.7490196} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1202312661 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1202312658} + m_CullTransparentMesh: 1 +--- !u!1 &1247873230 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1247873231} + - component: {fileID: 1247873233} + - component: {fileID: 1247873232} + m_Layer: 5 + m_Name: Header Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1247873231 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1247873230} + 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: 144254103} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.6850014} + m_SizeDelta: {x: -428, y: -65.13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1247873232 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1247873230} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 24 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Far Grab Interactable Objects +--- !u!222 &1247873233 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1247873230} + m_CullTransparentMesh: 0 +--- !u!1 &1486677401 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1486677402} + - component: {fileID: 1486677405} + - component: {fileID: 1486677404} + - component: {fileID: 1486677403} + m_Layer: 5 + m_Name: Single Fixed Attach + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1486677402 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1486677401} + 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: 1740969851} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1486677403 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1486677401} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Single Fixed Attach +--- !u!114 &1486677404 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1486677401} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!222 &1486677405 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1486677401} + m_CullTransparentMesh: 0 +--- !u!1001 &1519520462 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1060243933316379515, guid: 6821e1b7f44d8c44b8a2ba02f37309d5, type: 3} + propertyPath: m_Name + value: Interactables Sample + objectReference: {fileID: 0} + - target: {fileID: 2991896912978869755, guid: 6821e1b7f44d8c44b8a2ba02f37309d5, type: 3} + propertyPath: m_RootOrder + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 2991896912978869755, guid: 6821e1b7f44d8c44b8a2ba02f37309d5, type: 3} + propertyPath: m_LocalPosition.x + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 2991896912978869755, guid: 6821e1b7f44d8c44b8a2ba02f37309d5, type: 3} + propertyPath: m_LocalPosition.y + value: 0.634 + objectReference: {fileID: 0} + - target: {fileID: 2991896912978869755, guid: 6821e1b7f44d8c44b8a2ba02f37309d5, type: 3} + propertyPath: m_LocalPosition.z + value: -2.5 + objectReference: {fileID: 0} + - target: {fileID: 2991896912978869755, guid: 6821e1b7f44d8c44b8a2ba02f37309d5, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 2991896912978869755, guid: 6821e1b7f44d8c44b8a2ba02f37309d5, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2991896912978869755, guid: 6821e1b7f44d8c44b8a2ba02f37309d5, type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 2991896912978869755, guid: 6821e1b7f44d8c44b8a2ba02f37309d5, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2991896912978869755, guid: 6821e1b7f44d8c44b8a2ba02f37309d5, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2991896912978869755, guid: 6821e1b7f44d8c44b8a2ba02f37309d5, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -90 + objectReference: {fileID: 0} + - target: {fileID: 2991896912978869755, guid: 6821e1b7f44d8c44b8a2ba02f37309d5, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 6821e1b7f44d8c44b8a2ba02f37309d5, type: 3} +--- !u!1 &1522956426 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1522956427} + - component: {fileID: 1522956430} + - component: {fileID: 1522956429} + - component: {fileID: 1522956428} + m_Layer: 5 + m_Name: Instananeous Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1522956427 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1522956426} + 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: 874919885} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1522956428 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1522956426} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Instantaneous + + Movement' +--- !u!114 &1522956429 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1522956426} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!222 &1522956430 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1522956426} + m_CullTransparentMesh: 0 +--- !u!1 &1579013952 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1579013953} + - component: {fileID: 1579013956} + - component: {fileID: 1579013955} + - component: {fileID: 1579013954} + m_Layer: 0 + m_Name: Gaze Interactable Table + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1579013953 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1579013952} + m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068} + m_LocalPosition: {x: -1.5, y: 0.625, z: -4.5} + m_LocalScale: {x: 0.4, y: 1, z: 1.85} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 439588100} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} +--- !u!65 &1579013954 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1579013952} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1579013955 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1579013952} + 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: 842f1b88643f1bb458ba6243088e344e, 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 &1579013956 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1579013952} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1589715509 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1589715510} + - component: {fileID: 1589715512} + - component: {fileID: 1589715511} + m_Layer: 5 + m_Name: Header Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1589715510 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1589715509} + 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: 1743632700} + m_Father: {fileID: 1917198434} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -48.5} + m_SizeDelta: {x: 0, y: 98.63} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1589715511 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1589715509} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.7490196} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1589715512 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1589715509} + m_CullTransparentMesh: 1 +--- !u!114 &1592246342 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 742272467831425975, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} + m_PrefabInstance: {fileID: 9014170783777442263} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 760ff70c1c91bdd45907d0ff0cdcaf7f, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1592246343 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4083252680172266230, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} + m_PrefabInstance: {fileID: 9014170783777442263} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8b94c4c83dec6a94fbaebf543478259e, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1592246344 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 6480925242510836759, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} + m_PrefabInstance: {fileID: 9014170783777442263} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 75b29b6c6428c984a8a73ffc2d58063b, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1592246345 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7347985736721345035, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} + m_PrefabInstance: {fileID: 9014170783777442263} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e9f365cf844c03449bc8973eead2c3c1, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!20 &1731298971 stripped +Camera: + m_CorrespondingSourceObject: {fileID: 1767192439, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} + m_PrefabInstance: {fileID: 9014170783777442263} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1740969850 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1740969851} + - component: {fileID: 1740969853} + - component: {fileID: 1740969852} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1740969851 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1740969850} + 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: 1486677402} + m_Father: {fileID: 788111585} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 50} + m_SizeDelta: {x: 275, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1740969852 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1740969850} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.7490196} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1740969853 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1740969850} + m_CullTransparentMesh: 1 +--- !u!1 &1743632699 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1743632700} + - component: {fileID: 1743632702} + - component: {fileID: 1743632701} + m_Layer: 5 + m_Name: Header Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1743632700 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1743632699} + 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: 1589715510} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.6850014} + m_SizeDelta: {x: -400, y: -65.13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1743632701 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1743632699} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 24 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Climb Interactable Objects +--- !u!222 &1743632702 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1743632699} + m_CullTransparentMesh: 0 +--- !u!1 &1807497889 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1807497890} + - component: {fileID: 1807497892} + - component: {fileID: 1807497891} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1807497890 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1807497889} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0.000029802322} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 967567312} + m_Father: {fileID: 788111585} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 275, y: 50} + m_SizeDelta: {x: 250, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1807497891 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1807497889} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.7490196} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1807497892 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1807497889} + m_CullTransparentMesh: 1 +--- !u!1 &1815318735 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1815318737} + - component: {fileID: 1815318736} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &1815318736 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1815318735} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.9450981, b: 0.85098046, a: 1} + m_Intensity: 0.95 + 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: 0.75 + 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 &1815318737 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1815318735} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 439588100} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &1917198433 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1917198434} + - component: {fileID: 1917198438} + - component: {fileID: 1917198437} + - component: {fileID: 1917198436} + - component: {fileID: 1917198435} + m_Layer: 5 + m_Name: Climb Interactable Info + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1917198434 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1917198433} + m_LocalRotation: {x: 0, y: -0.7071068, z: 0, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0.642} + m_LocalScale: {x: 0.002, y: 0.002, z: 0.002} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1589715510} + m_Father: {fileID: 439588100} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: -90, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: -2.87, y: 1.5} + m_SizeDelta: {x: 700, y: 200} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1917198435 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1917198433} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7951c64acb0fa62458bf30a60089fe2d, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 0 + m_CheckFor2DOcclusion: 0 + m_CheckFor3DOcclusion: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RaycastTriggerInteraction: 1 +--- !u!114 &1917198436 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1917198433} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1917198437 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1917198433} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &1917198438 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1917198433} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 1731298971} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &196977305468683332 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 196977305468683333} + - component: {fileID: 196977305468683336} + - component: {fileID: 196977305468683334} + - component: {fileID: 4934032446432824226} + m_Layer: 5 + m_Name: Kinematic Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &196977305468683333 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 196977305468683332} + 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: 336426668} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0.000091552734, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &196977305468683334 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 196977305468683332} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!222 &196977305468683336 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 196977305468683332} + m_CullTransparentMesh: 0 +--- !u!1 &196977306215183537 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 196977306215183538} + - component: {fileID: 196977306215183541} + - component: {fileID: 9108292829394508247} + m_Layer: 5 + m_Name: Header Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &196977306215183538 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 196977306215183537} + 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: 1202312659} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.6850014} + m_SizeDelta: {x: -428, y: -65.13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &196977306215183541 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 196977306215183537} + m_CullTransparentMesh: 0 +--- !u!1 &604367606304239376 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 604367606304239380} + - component: {fileID: 604367606304239381} + - component: {fileID: 604367606304239378} + - component: {fileID: 604367606304239379} + - component: {fileID: 604367606304239383} + m_Layer: 5 + m_Name: Grab Interactable Info + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &604367606304239378 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 604367606304239376} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!114 &604367606304239379 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 604367606304239376} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!224 &604367606304239380 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 604367606304239376} + m_LocalRotation: {x: -0, y: 0.7071068, z: -0, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: -2.5} + m_LocalScale: {x: 0.002, y: 0.002, z: 0.002} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1202312659} + - {fileID: 336426668} + - {fileID: 874919885} + - {fileID: 564796392} + m_Father: {fileID: 439588100} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 4.5, y: 1.5} + m_SizeDelta: {x: 700, y: 200} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!223 &604367606304239381 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 604367606304239376} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 1731298971} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &604367606304239383 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 604367606304239376} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7951c64acb0fa62458bf30a60089fe2d, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 0 + m_CheckFor2DOcclusion: 0 + m_CheckFor3DOcclusion: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RaycastTriggerInteraction: 1 +--- !u!1001 &670559718131909908 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 670559718997833774, guid: 88246f8e9c3765d49be8da34eca3c630, type: 3} + propertyPath: m_Name + value: Poke Interactions Sample + objectReference: {fileID: 0} + - target: {fileID: 670559718997833775, guid: 88246f8e9c3765d49be8da34eca3c630, type: 3} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 670559718997833775, guid: 88246f8e9c3765d49be8da34eca3c630, type: 3} + propertyPath: m_LocalPosition.x + value: 1.5 + objectReference: {fileID: 0} + - target: {fileID: 670559718997833775, guid: 88246f8e9c3765d49be8da34eca3c630, type: 3} + propertyPath: m_LocalPosition.y + value: 1.13 + objectReference: {fileID: 0} + - target: {fileID: 670559718997833775, guid: 88246f8e9c3765d49be8da34eca3c630, type: 3} + propertyPath: m_LocalPosition.z + value: -4.45 + objectReference: {fileID: 0} + - target: {fileID: 670559718997833775, guid: 88246f8e9c3765d49be8da34eca3c630, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 670559718997833775, guid: 88246f8e9c3765d49be8da34eca3c630, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 670559718997833775, guid: 88246f8e9c3765d49be8da34eca3c630, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 670559718997833775, guid: 88246f8e9c3765d49be8da34eca3c630, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 670559718997833775, guid: 88246f8e9c3765d49be8da34eca3c630, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 670559718997833775, guid: 88246f8e9c3765d49be8da34eca3c630, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 670559718997833775, guid: 88246f8e9c3765d49be8da34eca3c630, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 88246f8e9c3765d49be8da34eca3c630, type: 3} +--- !u!1001 &1017698943352573226 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 177564888636506461, guid: f5ee409d69254d64da7a3b74d31a5a40, type: 3} + propertyPath: m_LocalPosition.z + value: -4.5 + objectReference: {fileID: 0} + - target: {fileID: 177564888636506461, guid: f5ee409d69254d64da7a3b74d31a5a40, type: 3} + propertyPath: m_LocalRotation.w + value: 0.24184489 + objectReference: {fileID: 0} + - target: {fileID: 177564888636506461, guid: f5ee409d69254d64da7a3b74d31a5a40, type: 3} + propertyPath: m_LocalRotation.x + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 177564888636506461, guid: f5ee409d69254d64da7a3b74d31a5a40, type: 3} + propertyPath: m_LocalRotation.y + value: 0.664463 + objectReference: {fileID: 0} + - target: {fileID: 177564888636506461, guid: f5ee409d69254d64da7a3b74d31a5a40, type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000026822093 + objectReference: {fileID: 0} + - target: {fileID: 177564888636506461, guid: f5ee409d69254d64da7a3b74d31a5a40, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 340 + objectReference: {fileID: 0} + - target: {fileID: 1017698943250256213, guid: f5ee409d69254d64da7a3b74d31a5a40, type: 3} + propertyPath: m_Name + value: Far Grab Samples + objectReference: {fileID: 0} + - target: {fileID: 1017698943250256298, guid: f5ee409d69254d64da7a3b74d31a5a40, type: 3} + propertyPath: m_RootOrder + value: 7 + objectReference: {fileID: 0} + - target: {fileID: 1017698943250256298, guid: f5ee409d69254d64da7a3b74d31a5a40, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1017698943250256298, guid: f5ee409d69254d64da7a3b74d31a5a40, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1017698943250256298, guid: f5ee409d69254d64da7a3b74d31a5a40, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1017698943250256298, guid: f5ee409d69254d64da7a3b74d31a5a40, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1017698943250256298, guid: f5ee409d69254d64da7a3b74d31a5a40, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1017698943250256298, guid: f5ee409d69254d64da7a3b74d31a5a40, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1017698943250256298, guid: f5ee409d69254d64da7a3b74d31a5a40, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1017698943250256298, guid: f5ee409d69254d64da7a3b74d31a5a40, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1017698943250256298, guid: f5ee409d69254d64da7a3b74d31a5a40, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1017698943250256298, guid: f5ee409d69254d64da7a3b74d31a5a40, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5032153987230353887, guid: f5ee409d69254d64da7a3b74d31a5a40, type: 3} + propertyPath: m_LocalPosition.x + value: -2.067 + objectReference: {fileID: 0} + - target: {fileID: 5032153987230353887, guid: f5ee409d69254d64da7a3b74d31a5a40, type: 3} + propertyPath: m_LocalPosition.z + value: -4.446 + objectReference: {fileID: 0} + - target: {fileID: 5151981248583452152, guid: f5ee409d69254d64da7a3b74d31a5a40, type: 3} + propertyPath: m_LocalPosition.x + value: -1.531 + objectReference: {fileID: 0} + - target: {fileID: 5151981248583452152, guid: f5ee409d69254d64da7a3b74d31a5a40, type: 3} + propertyPath: m_LocalPosition.z + value: -4.439 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: f5ee409d69254d64da7a3b74d31a5a40, type: 3} +--- !u!1001 &2181405618988545911 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 9014170783777442264} + m_Modifications: + - target: {fileID: 8429981633443581377, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_Name + value: TunnelingVignette + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.size + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[0].m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[1].m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[2].m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[3].m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[4].m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[5].m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[6].m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[7].m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[0].m_LocomotionProvider + value: + objectReference: {fileID: 1592246345} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[1].m_LocomotionProvider + value: + objectReference: {fileID: 1592246344} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[2].m_LocomotionProvider + value: + objectReference: {fileID: 9014170783777442268} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[3].m_LocomotionProvider + value: + objectReference: {fileID: 9014170783777442267} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[4].m_LocomotionProvider + value: + objectReference: {fileID: 1592246343} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[5].m_LocomotionProvider + value: + objectReference: {fileID: 1592246342} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[6].m_LocomotionProvider + value: + objectReference: {fileID: 9014170783777442266} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[7].m_LocomotionProvider + value: + objectReference: {fileID: 9014170783777442265} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[0].m_OverrideParameters.m_EaseInTime + value: 0.3 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[1].m_OverrideParameters.m_EaseInTime + value: 0.3 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[2].m_OverrideParameters.m_EaseInTime + value: 0.3 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[3].m_OverrideParameters.m_EaseInTime + value: 0.3 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[4].m_OverrideParameters.m_EaseInTime + value: 0.3 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[5].m_OverrideParameters.m_EaseInTime + value: 0.3 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[6].m_OverrideParameters.m_EaseInTime + value: 0.3 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[7].m_OverrideParameters.m_EaseInTime + value: 0.3 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[0].m_OverrideParameters.m_EaseOutTime + value: 0.3 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[1].m_OverrideParameters.m_EaseOutTime + value: 0.3 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[2].m_OverrideParameters.m_EaseOutTime + value: 0.3 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[3].m_OverrideParameters.m_EaseOutTime + value: 0.3 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[4].m_OverrideParameters.m_EaseOutTime + value: 0.3 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[5].m_OverrideParameters.m_EaseOutTime + value: 0.3 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[6].m_OverrideParameters.m_EaseOutTime + value: 0.3 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[7].m_OverrideParameters.m_EaseOutTime + value: 0.3 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[0].m_OverrideParameters.m_ApertureSize + value: 0.7 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[1].m_OverrideParameters.m_ApertureSize + value: 0.7 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[2].m_OverrideParameters.m_ApertureSize + value: 0.7 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[3].m_OverrideParameters.m_ApertureSize + value: 0.7 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[4].m_OverrideParameters.m_ApertureSize + value: 0.7 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[5].m_OverrideParameters.m_ApertureSize + value: 0.7 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[6].m_OverrideParameters.m_ApertureSize + value: 0.7 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[7].m_OverrideParameters.m_ApertureSize + value: 0.7 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[0].m_OverrideParameters.m_VignetteColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[1].m_OverrideParameters.m_VignetteColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[2].m_OverrideParameters.m_VignetteColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[3].m_OverrideParameters.m_VignetteColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[4].m_OverrideParameters.m_VignetteColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[5].m_OverrideParameters.m_VignetteColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[6].m_OverrideParameters.m_VignetteColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[7].m_OverrideParameters.m_VignetteColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[0].m_OverrideParameters.m_FeatheringEffect + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[1].m_OverrideParameters.m_FeatheringEffect + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[2].m_OverrideParameters.m_FeatheringEffect + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[3].m_OverrideParameters.m_FeatheringEffect + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[4].m_OverrideParameters.m_FeatheringEffect + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[5].m_OverrideParameters.m_FeatheringEffect + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[6].m_OverrideParameters.m_FeatheringEffect + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[7].m_OverrideParameters.m_FeatheringEffect + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[0].m_OverrideParameters.m_VignetteColorBlend.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[1].m_OverrideParameters.m_VignetteColorBlend.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[2].m_OverrideParameters.m_VignetteColorBlend.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[3].m_OverrideParameters.m_VignetteColorBlend.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[4].m_OverrideParameters.m_VignetteColorBlend.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[5].m_OverrideParameters.m_VignetteColorBlend.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[6].m_OverrideParameters.m_VignetteColorBlend.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} + propertyPath: m_LocomotionVignetteProviders.Array.data[7].m_OverrideParameters.m_VignetteColorBlend.a + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} +--- !u!114 &3127728407676174906 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3127728407676174909} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 83e4e6cca11330d4088d729ab4fc9d9f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_StartingHoverFilters: [] + m_StartingSelectFilters: [] +--- !u!4 &3127728407676174907 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3127728407676174909} + 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 &3127728407676174909 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3127728407676174907} + - component: {fileID: 3127728407676174906} + 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!1 &3127728408198131880 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3127728408198131895} + - component: {fileID: 3127728408198131894} + - component: {fileID: 3127728408198131892} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &3127728408198131892 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3127728408198131880} + 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: 1 + m_EnableXRInput: 1 + m_EnableMouseInput: 1 + m_EnableTouchInput: 1 + m_PointAction: {fileID: 2869410428622933342, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_LeftClickAction: {fileID: 1855836014308820768, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_MiddleClickAction: {fileID: -6289560987278519447, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_RightClickAction: {fileID: -2562941478296515153, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_ScrollWheelAction: {fileID: 5825226938762934180, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_NavigateAction: {fileID: -7967456002180160679, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_SubmitAction: {fileID: 3994978066732806534, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_CancelAction: {fileID: 2387711382375263438, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_EnableBuiltinActionsAsFallback: 1 + m_EnableGamepadInput: 1 + m_EnableJoystickInput: 1 + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel +--- !u!114 &3127728408198131894 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3127728408198131880} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &3127728408198131895 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3127728408198131880} + 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: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &3807310294900035020 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3807310294900035022} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.7490196} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &3807310294900035021 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3807310294900035022} + m_CullTransparentMesh: 1 +--- !u!1 &3807310294900035022 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3807310294900035023} + - component: {fileID: 3807310294900035021} + - component: {fileID: 3807310294900035020} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3807310294900035023 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3807310294900035022} + 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: 3807310296080488667} + m_Father: {fileID: 3807310296116640662} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 50} + m_SizeDelta: {x: 275, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3807310295319535098 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3807310295319535103} + m_CullTransparentMesh: 1 +--- !u!224 &3807310295319535100 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3807310295319535103} + 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: 3807310295681469693} + m_Father: {fileID: 3807310296116640662} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 275, y: 50} + m_SizeDelta: {x: 250, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &3807310295319535101 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3807310295319535103} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.7490196} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &3807310295319535103 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3807310295319535100} + - component: {fileID: 3807310295319535098} + - component: {fileID: 3807310295319535101} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &3807310295418403514 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3807310295418403519} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!222 &3807310295418403515 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3807310295418403519} + m_CullTransparentMesh: 0 +--- !u!224 &3807310295418403516 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3807310295418403519} + 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: 3807310296483843619} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &3807310295418403517 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3807310295418403519} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 50 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Enable Particle System +--- !u!1 &3807310295418403519 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3807310295418403516} + - component: {fileID: 3807310295418403515} + - component: {fileID: 3807310295418403514} + - component: {fileID: 3807310295418403517} + m_Layer: 5 + m_Name: Enable Particle System + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &3807310295488059788 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3807310295488059790} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.7490196} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &3807310295488059789 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3807310295488059790} + m_CullTransparentMesh: 1 +--- !u!1 &3807310295488059790 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3807310295488059791} + - component: {fileID: 3807310295488059789} + - component: {fileID: 3807310295488059788} + m_Layer: 5 + m_Name: Header Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3807310295488059791 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3807310295488059790} + 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: 3807310295959509738} + m_Father: {fileID: 3807310296116640662} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -48.5} + m_SizeDelta: {x: 0, y: 98.63} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3807310295681469688 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3807310295681469692} + m_CullTransparentMesh: 0 +--- !u!114 &3807310295681469690 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3807310295681469692} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Increment UI Text +--- !u!114 &3807310295681469691 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3807310295681469692} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!1 &3807310295681469692 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3807310295681469693} + - component: {fileID: 3807310295681469688} + - component: {fileID: 3807310295681469691} + - component: {fileID: 3807310295681469690} + m_Layer: 5 + m_Name: Increment UI Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3807310295681469693 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3807310295681469692} + 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: 3807310295319535100} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3807310295959509736 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3807310295959509741} + m_CullTransparentMesh: 0 +--- !u!224 &3807310295959509738 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3807310295959509741} + 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: 3807310295488059791} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.6850014} + m_SizeDelta: {x: -428, y: -65.13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &3807310295959509739 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3807310295959509741} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 24 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Poke Interaction Examples +--- !u!1 &3807310295959509741 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3807310295959509738} + - component: {fileID: 3807310295959509736} + - component: {fileID: 3807310295959509739} + m_Layer: 5 + m_Name: Header Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &3807310296080488662 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3807310296080488666} + m_CullTransparentMesh: 0 +--- !u!114 &3807310296080488664 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3807310296080488666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Play Sound +--- !u!114 &3807310296080488665 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3807310296080488666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!1 &3807310296080488666 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3807310296080488667} + - component: {fileID: 3807310296080488662} + - component: {fileID: 3807310296080488665} + - component: {fileID: 3807310296080488664} + m_Layer: 5 + m_Name: Play Sound + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3807310296080488667 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3807310296080488666} + 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: 3807310294900035023} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!223 &3807310296116640658 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3807310296116640665} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 1731298971} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &3807310296116640660 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3807310296116640665} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &3807310296116640661 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3807310296116640665} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!224 &3807310296116640662 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3807310296116640665} + m_LocalRotation: {x: 0, y: 1, z: 0, w: 0} + m_LocalPosition: {x: 0, y: 0, z: -5} + m_LocalScale: {x: 0.002, y: 0.002, z: 0.002} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3807310295488059791} + - {fileID: 3807310296483843619} + - {fileID: 3807310294900035023} + - {fileID: 3807310295319535100} + m_Father: {fileID: 439588100} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 1.5, y: 1.5} + m_SizeDelta: {x: 800, y: 200} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &3807310296116640663 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3807310296116640665} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7951c64acb0fa62458bf30a60089fe2d, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 0 + m_CheckFor2DOcclusion: 0 + m_CheckFor3DOcclusion: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RaycastTriggerInteraction: 1 +--- !u!1 &3807310296116640665 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3807310296116640662} + - component: {fileID: 3807310296116640658} + - component: {fileID: 3807310296116640661} + - component: {fileID: 3807310296116640660} + - component: {fileID: 3807310296116640663} + m_Layer: 5 + m_Name: Poke Interactions Info + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &3807310296483843616 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3807310296483843618} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.7490196} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &3807310296483843617 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3807310296483843618} + m_CullTransparentMesh: 1 +--- !u!1 &3807310296483843618 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3807310296483843619} + - component: {fileID: 3807310296483843617} + - component: {fileID: 3807310296483843616} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3807310296483843619 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3807310296483843618} + 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: 3807310295418403516} + m_Father: {fileID: 3807310296116640662} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: -275, y: 50} + m_SizeDelta: {x: 250, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1001 &3953970342977539823 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 566908114440589555, guid: 2ea572d587ee60f44bd5baa3bc2d6503, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 842f1b88643f1bb458ba6243088e344e, type: 2} + - target: {fileID: 3953970342014523578, guid: 2ea572d587ee60f44bd5baa3bc2d6503, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: fc226930e8fad4c499969204cecfbc05, type: 2} + - target: {fileID: 3953970342314940649, guid: 2ea572d587ee60f44bd5baa3bc2d6503, type: 3} + propertyPath: m_RootOrder + value: 9 + objectReference: {fileID: 0} + - target: {fileID: 3953970342314940649, guid: 2ea572d587ee60f44bd5baa3bc2d6503, type: 3} + propertyPath: m_LocalPosition.x + value: -3.75 + objectReference: {fileID: 0} + - target: {fileID: 3953970342314940649, guid: 2ea572d587ee60f44bd5baa3bc2d6503, type: 3} + propertyPath: m_LocalPosition.y + value: 0.125 + objectReference: {fileID: 0} + - target: {fileID: 3953970342314940649, guid: 2ea572d587ee60f44bd5baa3bc2d6503, type: 3} + propertyPath: m_LocalPosition.z + value: 1.7 + objectReference: {fileID: 0} + - target: {fileID: 3953970342314940649, guid: 2ea572d587ee60f44bd5baa3bc2d6503, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 3953970342314940649, guid: 2ea572d587ee60f44bd5baa3bc2d6503, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3953970342314940649, guid: 2ea572d587ee60f44bd5baa3bc2d6503, type: 3} + propertyPath: m_LocalRotation.y + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 3953970342314940649, guid: 2ea572d587ee60f44bd5baa3bc2d6503, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3953970342314940649, guid: 2ea572d587ee60f44bd5baa3bc2d6503, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3953970342314940649, guid: 2ea572d587ee60f44bd5baa3bc2d6503, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 90 + objectReference: {fileID: 0} + - target: {fileID: 3953970342314940649, guid: 2ea572d587ee60f44bd5baa3bc2d6503, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3953970342314940650, guid: 2ea572d587ee60f44bd5baa3bc2d6503, type: 3} + propertyPath: m_Name + value: Climb Sample + objectReference: {fileID: 0} + - target: {fileID: 4216385758722005817, guid: 2ea572d587ee60f44bd5baa3bc2d6503, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 842f1b88643f1bb458ba6243088e344e, type: 2} + - target: {fileID: 7810350561350330887, guid: 2ea572d587ee60f44bd5baa3bc2d6503, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 842f1b88643f1bb458ba6243088e344e, type: 2} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 2ea572d587ee60f44bd5baa3bc2d6503, type: 3} +--- !u!1 &4581292472285887089 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4581292472285887094} + - component: {fileID: 4581292472285887093} + - component: {fileID: 4581292472285887092} + - component: {fileID: 4581292472285887095} + m_Layer: 0 + m_Name: Poke Interactions Table + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!23 &4581292472285887092 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4581292472285887089} + 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: 842f1b88643f1bb458ba6243088e344e, 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 &4581292472285887093 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4581292472285887089} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &4581292472285887094 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4581292472285887089} + m_LocalRotation: {x: -0, y: 0.7071068, z: -0, w: 0.7071068} + m_LocalPosition: {x: 1.5, y: 0.625, z: -4.4199996} + m_LocalScale: {x: 0.40000004, y: 1, z: 1.85} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 439588100} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} +--- !u!65 &4581292472285887095 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4581292472285887089} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &4934032446432824226 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 196977305468683332} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 50 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Kinematic + + Movement' +--- !u!1001 &9014170783777442263 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1717954561962503725, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} + propertyPath: m_Name + value: XR Origin (XR Rig) + objectReference: {fileID: 0} + - target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} + propertyPath: m_LocalPosition.y + value: 0.125 + objectReference: {fileID: 0} + - target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} + propertyPath: m_LocalPosition.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} + propertyPath: m_LocalRotation.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} + propertyPath: m_LocalRotation.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 180 + objectReference: {fileID: 0} + - target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5944131804917401860, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6501755809687671949, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} +--- !u!4 &9014170783777442264 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1767192434, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} + m_PrefabInstance: {fileID: 9014170783777442263} + m_PrefabAsset: {fileID: 0} +--- !u!114 &9014170783777442265 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 5739245880472075158, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} + m_PrefabInstance: {fileID: 9014170783777442263} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 496880615cd240be960d436c1c8ae570, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &9014170783777442266 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1748222016861356527, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} + m_PrefabInstance: {fileID: 9014170783777442263} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01f69dc1cb084aa42b2f2f8cd87bc770, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &9014170783777442267 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 2032798983271290625, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} + m_PrefabInstance: {fileID: 9014170783777442263} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8b94c4c83dec6a94fbaebf543478259e, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &9014170783777442268 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 153982007679157697, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} + m_PrefabInstance: {fileID: 9014170783777442263} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9b1e8c997df241c1a67045eeac79b41b, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &9108292829394508247 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 196977306215183537} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 24 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Grab Interactable Objects diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoScene.unity.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoScene.unity.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoScene.unity.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoScene.unity.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets.meta diff --git a/Assets/Samples/XR Hands/1.3.0.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/AffordanceThemes.meta similarity index 77% rename from Assets/Samples/XR Hands/1.3.0.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/AffordanceThemes.meta index b36856ff..b6ea24e5 100644 --- a/Assets/Samples/XR Hands/1.3.0.meta +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/AffordanceThemes.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: b730d52b94da9d34f82eddff1f9694b8 +guid: f635bc48476c3db41b2fe75737878deb folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/AffordanceThemes/InteractionColor.asset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/AffordanceThemes/InteractionColor.asset new file mode 100644 index 00000000..a463b7d0 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/AffordanceThemes/InteractionColor.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8aef74e6cfd68c88ff02e41b6c43a668b16fae2c4d25a02263888f053200295 +size 2650 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/AffordanceThemes/InteractionColorAffordanceTheme.asset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/AffordanceThemes/InteractionColor.asset.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/AffordanceThemes/InteractionColorAffordanceTheme.asset.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/AffordanceThemes/InteractionColor.asset.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Audio.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Audio.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Audio.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Audio.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Audio/Button Pop.wav b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Audio/Button Pop.wav similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Audio/Button Pop.wav rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Audio/Button Pop.wav diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Audio/Button Pop.wav.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Audio/Button Pop.wav.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Audio/Button Pop.wav.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Audio/Button Pop.wav.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials.meta new file mode 100644 index 00000000..52c44c4f --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d4e01b7fb24753742a7665cef9ed7839 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/Concrete Dark Blue.mat b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/Concrete Dark Blue.mat new file mode 100644 index 00000000..cc5798d4 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/Concrete Dark Blue.mat @@ -0,0 +1,169 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-1638956391025656723 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 0 +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Concrete Dark Blue + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: + - _METALLICSPECGLOSSMAP + - _NORMALMAP + m_InvalidKeywords: + - _METALLICGLOSSMAP + m_LightmapFlags: 4 + m_EnableInstancingVariants: 1 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 4, y: 2} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: cdebec39dbf81a14688e1de8d12897b4, type: 3} + 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: 4, y: 2} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 2800000, guid: f3fb518ec70eb4047b1c6ec34933fbce, type: 3} + 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} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _BUILTIN_AlphaClip: 0 + - _BUILTIN_Blend: 0 + - _BUILTIN_CullMode: 2 + - _BUILTIN_DstBlend: 0 + - _BUILTIN_QueueControl: 0 + - _BUILTIN_QueueOffset: 0 + - _BUILTIN_SrcBlend: 1 + - _BUILTIN_Surface: 0 + - _BUILTIN_ZTest: 4 + - _BUILTIN_ZWrite: 1 + - _BUILTIN_ZWriteControl: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _BumpStrength: 1 + - _CastShadows: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0.1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _QueueControl: 0 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.1 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _UVSec: 0 + - _WorkflowMode: 1 + - _ZTest: 4 + - _ZWrite: 1 + - _ZWriteControl: 0 + m_Colors: + - _BaseColor: {r: 0.40784314, g: 0.61960775, b: 0.84705883, a: 1} + - _BumpOffset: {r: 0, g: 0, b: 0, a: 0} + - _BumpTiling: {r: 4, g: 2, b: 0, a: 0} + - _Color: {r: 0.4078431, g: 0.61960775, b: 0.84705883, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] +--- !u!114 &1031156148794556660 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 7 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/PrimitivesYellow.mat.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/Concrete Dark Blue.mat.meta similarity index 79% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/PrimitivesYellow.mat.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/Concrete Dark Blue.mat.meta index 57f5a0b8..b3b292d2 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Materials/PrimitivesYellow.mat.meta +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/Concrete Dark Blue.mat.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 565d1aa341c57254c849beb447b60d0d +guid: bbb56ac3cf3c61a46ab3887c0fdbda8f NativeFormatImporter: externalObjects: {} mainObjectFileID: 2100000 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/Concrete Grey.mat b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/Concrete Grey.mat new file mode 100644 index 00000000..ea59aba8 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/Concrete Grey.mat @@ -0,0 +1,172 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-6113625539559698513 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 0 +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Concrete Grey + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: + - _METALLICSPECGLOSSMAP + - _NORMALMAP + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 1 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 4, y: 2} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: cdebec39dbf81a14688e1de8d12897b4, type: 3} + 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: 4, y: 2} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 2800000, guid: f3fb518ec70eb4047b1c6ec34933fbce, type: 3} + 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} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _BUILTIN_AlphaClip: 0 + - _BUILTIN_Blend: 0 + - _BUILTIN_CullMode: 2 + - _BUILTIN_DstBlend: 0 + - _BUILTIN_QueueControl: 0 + - _BUILTIN_QueueOffset: 0 + - _BUILTIN_SrcBlend: 1 + - _BUILTIN_Surface: 0 + - _BUILTIN_ZTest: 4 + - _BUILTIN_ZWrite: 1 + - _BUILTIN_ZWriteControl: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _BumpStrength: 1 + - _CastShadows: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0.1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _QueueControl: 0 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Shininess: 0 + - _Smoothness: 0.1 + - _SmoothnessSource: 0 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _UVSec: 0 + - _WorkflowMode: 1 + - _ZTest: 4 + - _ZWrite: 1 + - _ZWriteControl: 0 + m_Colors: + - _BaseColor: {r: 0.82745105, g: 0.9215687, b: 0.9921569, a: 1} + - _BumpOffset: {r: 0, g: 0, b: 0, a: 0} + - _BumpTiling: {r: 4, g: 2, b: 0, a: 0} + - _Color: {r: 0.82745105, g: 0.9215687, b: 0.9921569, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] +--- !u!114 &7210481364470626827 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 7 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Materials/RimLight.mat.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/Concrete Grey.mat.meta similarity index 79% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Materials/RimLight.mat.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/Concrete Grey.mat.meta index d1c24e0f..eca0b900 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Materials/RimLight.mat.meta +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/Concrete Grey.mat.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 0b91f81225004e24ca905a5f32567d5d +guid: 842f1b88643f1bb458ba6243088e344e NativeFormatImporter: externalObjects: {} mainObjectFileID: 2100000 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/Concrete Light Blue.mat b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/Concrete Light Blue.mat new file mode 100644 index 00000000..f12dfb1a --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/Concrete Light Blue.mat @@ -0,0 +1,169 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Concrete Light Blue + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: + - _METALLICSPECGLOSSMAP + - _NORMALMAP + m_InvalidKeywords: + - _METALLICGLOSSMAP + m_LightmapFlags: 4 + m_EnableInstancingVariants: 1 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 4, y: 2} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: cdebec39dbf81a14688e1de8d12897b4, type: 3} + 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: 4, y: 2} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 2800000, guid: f3fb518ec70eb4047b1c6ec34933fbce, type: 3} + 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} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _BUILTIN_AlphaClip: 0 + - _BUILTIN_Blend: 0 + - _BUILTIN_CullMode: 2 + - _BUILTIN_DstBlend: 0 + - _BUILTIN_QueueControl: 0 + - _BUILTIN_QueueOffset: 0 + - _BUILTIN_SrcBlend: 1 + - _BUILTIN_Surface: 0 + - _BUILTIN_ZTest: 4 + - _BUILTIN_ZWrite: 1 + - _BUILTIN_ZWriteControl: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _BumpStrength: 1 + - _CastShadows: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0.1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _QueueControl: 0 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.1 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _UVSec: 0 + - _WorkflowMode: 1 + - _ZTest: 4 + - _ZWrite: 1 + - _ZWriteControl: 0 + m_Colors: + - _BaseColor: {r: 0.7725491, g: 0.82745105, b: 0.8745099, a: 1} + - _BumpOffset: {r: 0, g: 0, b: 0, a: 0} + - _BumpTiling: {r: 4, g: 2, b: 0, a: 0} + - _Color: {r: 0.7725491, g: 0.82745105, b: 0.8745099, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] +--- !u!114 &4635247099857105162 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 7 +--- !u!114 &4738169426747826149 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/Concrete Light Blue.mat.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/Concrete Light Blue.mat.meta new file mode 100644 index 00000000..7478be8d --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/Concrete Light Blue.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 830d28b607e09a2479e2005c2eb5c75e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Materials/RimLight.mat b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/Lit White.mat similarity index 82% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Materials/RimLight.mat rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/Lit White.mat index 0acdf095..6559cf9d 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Materials/RimLight.mat +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/Lit White.mat @@ -1,6 +1,6 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!114 &-8678394163387868965 +--- !u!114 &-799537754957037517 MonoBehaviour: m_ObjectHideFlags: 11 m_CorrespondingSourceObject: {fileID: 0} @@ -13,19 +13,6 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: version: 7 ---- !u!114 &-3392432240476276898 -MonoBehaviour: - m_ObjectHideFlags: 11 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3} - m_Name: - m_EditorClassIdentifier: - version: 0 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -33,24 +20,20 @@ Material: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: RimLight - m_Shader: {fileID: -6465566751694194690, guid: 4ff4bf42ffc12e34a9c53b2f216f5442, - type: 3} + m_Name: Lit White + m_Shader: {fileID: 4800000, guid: 8d2bb70cbf9db8d4da26e15b26e74248, type: 3} m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 - m_ValidKeywords: - - _BUILTIN_SURFACE_TYPE_TRANSPARENT - - _SURFACE_TYPE_TRANSPARENT - m_InvalidKeywords: [] + m_ValidKeywords: [] + m_InvalidKeywords: + - _GLOSSYREFLECTIONS_OFF m_LightmapFlags: 4 m_EnableInstancingVariants: 1 m_DoubleSidedGI: 0 - m_CustomRenderQueue: 3002 + m_CustomRenderQueue: -1 stringTagMap: - RenderType: Transparent - disabledShaderPasses: - - SHADOWCASTER - - DepthOnly + RenderType: Opaque + disabledShaderPasses: [] m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -118,49 +101,68 @@ Material: - _BUILTIN_AlphaClip: 0 - _BUILTIN_Blend: 0 - _BUILTIN_CullMode: 2 - - _BUILTIN_DstBlend: 10 - - _BUILTIN_QueueControl: 1 + - _BUILTIN_DstBlend: 0 + - _BUILTIN_QueueControl: 0 - _BUILTIN_QueueOffset: 0 - - _BUILTIN_SrcBlend: 5 - - _BUILTIN_Surface: 1 + - _BUILTIN_SrcBlend: 1 + - _BUILTIN_Surface: 0 - _BUILTIN_ZTest: 4 - - _BUILTIN_ZWrite: 0 + - _BUILTIN_ZWrite: 1 - _BUILTIN_ZWriteControl: 0 - _Blend: 0 + - _BlendModePreserveSpecular: 1 - _BumpScale: 1 - - _CastShadows: 0 + - _CastShadows: 1 - _ClearCoatMask: 0 - _ClearCoatSmoothness: 0 - _Cull: 2 - _Cutoff: 0.5 - _DetailAlbedoMapScale: 1 - _DetailNormalMapScale: 1 - - _DstBlend: 10 + - _DstBlend: 0 + - _DstBlendAlpha: 0 - _EnvironmentReflections: 1 - _GlossMapScale: 0 - _Glossiness: 0 + - _GlossinessSource: 0 - _GlossyReflections: 0 - _Metallic: 0 + - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.005 - - _Power: 4 - _QueueControl: 0 - - _QueueOffset: 2 + - _QueueOffset: 0 - _ReceiveShadows: 1 + - _Shininess: 0 - _Smoothness: 0.5 + - _SmoothnessSource: 0 - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 - _SpecularHighlights: 1 - - _SrcBlend: 5 - - _Surface: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _UVSec: 0 - _WorkflowMode: 1 - _ZTest: 4 - - _ZWrite: 0 + - _ZWrite: 1 - _ZWriteControl: 0 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _Color: {r: 1, g: 1, b: 1, a: 1} - - _EdgeColor: {r: 1, g: 1, b: 1, a: 0} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _MainColor: {r: 0, g: 0, b: 0, a: 0.7254902} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] +--- !u!114 &8490472560057171736 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/Lit White.mat.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/Lit White.mat.meta new file mode 100644 index 00000000..f5a958b9 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/Lit White.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fc226930e8fad4c499969204cecfbc05 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/MaterialPipelineHandler.asset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/MaterialPipelineHandler.asset new file mode 100644 index 00000000..b44ab394 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/MaterialPipelineHandler.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:03e72e53e2f2a0beceabcec994f59812a7aa7860f7b1a02d6a00539f7a8fcc60 +size 1787 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/MaterialPipelineHandler.asset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/MaterialPipelineHandler.asset.meta new file mode 100644 index 00000000..858a7b03 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Materials/MaterialPipelineHandler.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fcbe69f7b69204d43b67d30e2487c37c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Models.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Models.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Blaster.fbx b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Blaster.fbx new file mode 100644 index 00000000..3550d763 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Blaster.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7cc9f5a1caaa1d76d55dc5791e68cc497084b9880fafa21b955a3d39b1194e1 +size 102160 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Models/XRControllerLeft.fbx.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Blaster.fbx.meta similarity index 85% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Models/XRControllerLeft.fbx.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Blaster.fbx.meta index 178f3759..19849aec 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Models/XRControllerLeft.fbx.meta +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Blaster.fbx.meta @@ -1,11 +1,16 @@ fileFormatVersion: 2 -guid: be3083a5f26d4e859d594ecbe632f87e +guid: e8cf87fef9298444ca38948b2c8a4073 ModelImporter: serializedVersion: 21300 internalIDToNameTable: [] - externalObjects: {} + externalObjects: + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: lambert1 + second: {fileID: 2100000, guid: 76618f7490c40334fa7b685859587d2e, type: 2} materials: - materialImportMode: 1 + materialImportMode: 2 materialName: 0 materialSearch: 1 materialLocation: 1 @@ -14,7 +19,7 @@ ModelImporter: bakeSimulation: 0 resampleCurves: 1 optimizeGameObjects: 0 - removeConstantScaleCurves: 0 + removeConstantScaleCurves: 1 motionNodeName: rigImportErrors: rigImportWarnings: @@ -44,7 +49,7 @@ ModelImporter: importBlendShapes: 1 importCameras: 1 importLights: 1 - nodeNameCollisionStrategy: 0 + nodeNameCollisionStrategy: 1 fileIdsGeneration: 2 swapUVChannels: 0 generateSecondaryUV: 0 @@ -98,8 +103,8 @@ ModelImporter: animationType: 2 humanoidOversampling: 1 avatarSetup: 0 - addHumanoidExtraRootOnlyWhenUsingAvatar: 0 - remapMaterialsIfMaterialImportModeIsNone: 1 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 additionalBone: 0 userData: assetBundleName: diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Blaster_Long.fbx b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Blaster_Long.fbx new file mode 100644 index 00000000..30485b29 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Blaster_Long.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e6cdfde636489e46cbb1ff7ba717880c4a93b7b4191ca312341ce23af5036c3 +size 108668 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Blaster_Long.fbx.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Blaster_Long.fbx.meta new file mode 100644 index 00000000..0f4badac --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Blaster_Long.fbx.meta @@ -0,0 +1,111 @@ +fileFormatVersion: 2 +guid: e51d3dbfe79e4c646bb30424a11f23a0 +ModelImporter: + serializedVersion: 21300 + internalIDToNameTable: [] + externalObjects: + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: lambert1.002 + second: {fileID: 2100000, guid: 76618f7490c40334fa7b685859587d2e, type: 2} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 1 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Cylinder.fbx b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Cylinder.fbx new file mode 100644 index 00000000..095cf200 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Cylinder.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f6c584af74d4586e280be697f3b94267717455806e2c5789b6a57e114442847 +size 23232 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Cylinder.fbx.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Cylinder.fbx.meta new file mode 100644 index 00000000..4bbe9f90 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Cylinder.fbx.meta @@ -0,0 +1,111 @@ +fileFormatVersion: 2 +guid: 73b694bb0f61cd14e9e1ed7b578ac09a +ModelImporter: + serializedVersion: 21300 + internalIDToNameTable: [] + externalObjects: + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: lambert1 + second: {fileID: 2100000, guid: 76618f7490c40334fa7b685859587d2e, type: 2} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 1 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 10 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 10 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Models/Primitive_Pyramid.fbx b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Pyramid.fbx similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Models/Primitive_Pyramid.fbx rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Pyramid.fbx diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Models/Primitive_Pyramid.fbx.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Pyramid.fbx.meta similarity index 93% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Models/Primitive_Pyramid.fbx.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Pyramid.fbx.meta index 1f0141ab..63fbc442 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Models/Primitive_Pyramid.fbx.meta +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Pyramid.fbx.meta @@ -3,7 +3,12 @@ guid: 63e02ddb08ce42da868504e1333d48ae ModelImporter: serializedVersion: 21300 internalIDToNameTable: [] - externalObjects: {} + externalObjects: + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: lambert1 + second: {fileID: 2100000, guid: 76618f7490c40334fa7b685859587d2e, type: 2} materials: materialImportMode: 2 materialName: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Tapered_Cylinder.fbx b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Tapered_Cylinder.fbx new file mode 100644 index 00000000..3133fc0a --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Tapered_Cylinder.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93f231a7c73b0a20f1c6efaa7f109d2dba60c57db5c42508c9c1b3c4fe69fc83 +size 26380 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Tapered_Cylinder.fbx.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Tapered_Cylinder.fbx.meta new file mode 100644 index 00000000..3e883c58 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Tapered_Cylinder.fbx.meta @@ -0,0 +1,111 @@ +fileFormatVersion: 2 +guid: e3493855a112e8248a2ea2c9828a51a1 +ModelImporter: + serializedVersion: 21300 + internalIDToNameTable: [] + externalObjects: + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: lambert1 + second: {fileID: 2100000, guid: 76618f7490c40334fa7b685859587d2e, type: 2} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 1 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 10 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 10 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Models/Primitive_Torus.fbx b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Torus.fbx similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Models/Primitive_Torus.fbx rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Torus.fbx diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Models/Primitive_Torus.fbx.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Torus.fbx.meta similarity index 93% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Models/Primitive_Torus.fbx.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Torus.fbx.meta index 835af0b9..5e27b199 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Models/Primitive_Torus.fbx.meta +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Torus.fbx.meta @@ -3,7 +3,12 @@ guid: f077c919501a44778a0c2edb6eb1a54a ModelImporter: serializedVersion: 21300 internalIDToNameTable: [] - externalObjects: {} + externalObjects: + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: lambert1 + second: {fileID: 2100000, guid: 76618f7490c40334fa7b685859587d2e, type: 2} materials: materialImportMode: 2 materialName: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Torus_Cut.fbx b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Torus_Cut.fbx new file mode 100644 index 00000000..5655137f --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Torus_Cut.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95220e5b4e7f5720dd64e49f68148ef289a8329cd716d65093f7ab28d8a93b28 +size 27856 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Models/XRControllerRight.fbx.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Torus_Cut.fbx.meta similarity index 85% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Models/XRControllerRight.fbx.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Torus_Cut.fbx.meta index f882b2a8..8de00aff 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Models/XRControllerRight.fbx.meta +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/Primitive_Torus_Cut.fbx.meta @@ -1,11 +1,16 @@ fileFormatVersion: 2 -guid: 11cd62256b1d470f922b2c8e6446cc77 +guid: 46c1c422ff6897f49a404b012dc924d3 ModelImporter: serializedVersion: 21300 internalIDToNameTable: [] - externalObjects: {} + externalObjects: + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: lambert1 + second: {fileID: 2100000, guid: 76618f7490c40334fa7b685859587d2e, type: 2} materials: - materialImportMode: 1 + materialImportMode: 2 materialName: 0 materialSearch: 1 materialLocation: 1 @@ -14,7 +19,7 @@ ModelImporter: bakeSimulation: 0 resampleCurves: 1 optimizeGameObjects: 0 - removeConstantScaleCurves: 0 + removeConstantScaleCurves: 1 motionNodeName: rigImportErrors: rigImportWarnings: @@ -44,7 +49,7 @@ ModelImporter: importBlendShapes: 1 importCameras: 1 importLights: 1 - nodeNameCollisionStrategy: 0 + nodeNameCollisionStrategy: 1 fileIdsGeneration: 2 swapUVChannels: 0 generateSecondaryUV: 0 @@ -98,8 +103,8 @@ ModelImporter: animationType: 2 humanoidOversampling: 1 avatarSetup: 0 - addHumanoidExtraRootOnlyWhenUsingAvatar: 0 - remapMaterialsIfMaterialImportModeIsNone: 1 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 additionalBone: 0 userData: assetBundleName: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Models/PushButton.fbx b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/PushButton.fbx similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Models/PushButton.fbx rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/PushButton.fbx diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Models/PushButton.fbx.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/PushButton.fbx.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Models/PushButton.fbx.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Models/PushButton.fbx.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Climb.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Climb.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Climb/Climb Sample.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/Climb Sample.prefab similarity index 62% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Climb/Climb Sample.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/Climb Sample.prefab index 23107d25..634ce1c6 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Climb/Climb Sample.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/Climb Sample.prefab @@ -28,151 +28,73 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 883283023377794228} - - {fileID: 1002461780314896473} + - {fileID: 7306256556956711982} - {fileID: 3953970341132373934} + - {fileID: 6357001091881990116} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} ---- !u!1001 &3953970341125123640 +--- !u!1001 &3468669171938899717 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: m_TransformParent: {fileID: 3953970342314940649} m_Modifications: - - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + - target: {fileID: 5705580279468903836, guid: 1f62bdd0e59688d4bb754afe89fa2f5a, type: 3} + propertyPath: m_Name + value: Single Floor Ladder + objectReference: {fileID: 0} + - target: {fileID: 6144662080407587627, guid: 1f62bdd0e59688d4bb754afe89fa2f5a, type: 3} propertyPath: m_RootOrder value: 0 objectReference: {fileID: 0} - - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + - target: {fileID: 6144662080407587627, guid: 1f62bdd0e59688d4bb754afe89fa2f5a, type: 3} propertyPath: m_LocalPosition.x value: -0 objectReference: {fileID: 0} - - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + - target: {fileID: 6144662080407587627, guid: 1f62bdd0e59688d4bb754afe89fa2f5a, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + - target: {fileID: 6144662080407587627, guid: 1f62bdd0e59688d4bb754afe89fa2f5a, type: 3} propertyPath: m_LocalPosition.z - value: 1.05 + value: 1.0500003 objectReference: {fileID: 0} - - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} - propertyPath: m_LocalRotation.w - value: 0.99965733 - objectReference: {fileID: 0} - - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} - propertyPath: m_LocalRotation.x - value: -0.026176924 - objectReference: {fileID: 0} - - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: -3 - objectReference: {fileID: 0} - - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6209309998178532447, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} - propertyPath: m_Name - value: Ladder - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} ---- !u!4 &883283023377794228 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} - m_PrefabInstance: {fileID: 3953970341125123640} - m_PrefabAsset: {fileID: 0} ---- !u!1001 &3953970342246817792 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 3953970342314940649} - m_Modifications: - - target: {fileID: 2455711654808853570, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} - propertyPath: m_LocalScale.x - value: 3 - objectReference: {fileID: 0} - - target: {fileID: 2455711654808853570, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} - propertyPath: m_LocalScale.y - value: 0.1 - objectReference: {fileID: 0} - - target: {fileID: 2455711654808853570, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} - propertyPath: m_LocalScale.z - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 4266640295717640279, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} - propertyPath: m_Name - value: Teleport Area - objectReference: {fileID: 0} - - target: {fileID: 4266640295717640279, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} - propertyPath: m_IsActive - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} - propertyPath: m_RootOrder - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} - propertyPath: m_LocalPosition.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} - propertyPath: m_LocalPosition.y - value: 3.1 - objectReference: {fileID: 0} - - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} - propertyPath: m_LocalPosition.z - value: -0.15 - objectReference: {fileID: 0} - - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + - target: {fileID: 6144662080407587627, guid: 1f62bdd0e59688d4bb754afe89fa2f5a, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + - target: {fileID: 6144662080407587627, guid: 1f62bdd0e59688d4bb754afe89fa2f5a, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + - target: {fileID: 6144662080407587627, guid: 1f62bdd0e59688d4bb754afe89fa2f5a, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + - target: {fileID: 6144662080407587627, guid: 1f62bdd0e59688d4bb754afe89fa2f5a, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + - target: {fileID: 6144662080407587627, guid: 1f62bdd0e59688d4bb754afe89fa2f5a, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + - target: {fileID: 6144662080407587627, guid: 1f62bdd0e59688d4bb754afe89fa2f5a, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + - target: {fileID: 6144662080407587627, guid: 1f62bdd0e59688d4bb754afe89fa2f5a, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} ---- !u!4 &1002461780314896473 stripped + m_SourcePrefab: {fileID: 100100000, guid: 1f62bdd0e59688d4bb754afe89fa2f5a, type: 3} +--- !u!4 &7306256556956711982 stripped Transform: - m_CorrespondingSourceObject: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} - m_PrefabInstance: {fileID: 3953970342246817792} + m_CorrespondingSourceObject: {fileID: 6144662080407587627, guid: 1f62bdd0e59688d4bb754afe89fa2f5a, type: 3} + m_PrefabInstance: {fileID: 3468669171938899717} m_PrefabAsset: {fileID: 0} --- !u!1001 &6888699650741072855 PrefabInstance: @@ -187,7 +109,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 7585962579481558137, guid: a0ea40bd139aedc43b0e8374d6139437, type: 3} propertyPath: m_RootOrder - value: 2 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7585962579481558137, guid: a0ea40bd139aedc43b0e8374d6139437, type: 3} propertyPath: m_LocalPosition.x @@ -240,3 +162,65 @@ Transform: m_CorrespondingSourceObject: {fileID: 7585962579481558137, guid: a0ea40bd139aedc43b0e8374d6139437, type: 3} m_PrefabInstance: {fileID: 6888699650741072855} m_PrefabAsset: {fileID: 0} +--- !u!1001 &8050214715828898099 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3953970342314940649} + m_Modifications: + - target: {fileID: 3308162198220175456, guid: 652585f331bff7e44afb8fe71ec2119f, type: 3} + propertyPath: m_Name + value: Multi Floor Ladder + objectReference: {fileID: 0} + - target: {fileID: 3999338779507687127, guid: 652585f331bff7e44afb8fe71ec2119f, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 3999338779507687127, guid: 652585f331bff7e44afb8fe71ec2119f, type: 3} + propertyPath: m_LocalPosition.x + value: -2.2 + objectReference: {fileID: 0} + - target: {fileID: 3999338779507687127, guid: 652585f331bff7e44afb8fe71ec2119f, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3999338779507687127, guid: 652585f331bff7e44afb8fe71ec2119f, type: 3} + propertyPath: m_LocalPosition.z + value: 0.25 + objectReference: {fileID: 0} + - target: {fileID: 3999338779507687127, guid: 652585f331bff7e44afb8fe71ec2119f, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3999338779507687127, guid: 652585f331bff7e44afb8fe71ec2119f, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3999338779507687127, guid: 652585f331bff7e44afb8fe71ec2119f, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3999338779507687127, guid: 652585f331bff7e44afb8fe71ec2119f, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3999338779507687127, guid: 652585f331bff7e44afb8fe71ec2119f, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3999338779507687127, guid: 652585f331bff7e44afb8fe71ec2119f, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3999338779507687127, guid: 652585f331bff7e44afb8fe71ec2119f, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 652585f331bff7e44afb8fe71ec2119f, type: 3} +--- !u!4 &6357001091881990116 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3999338779507687127, guid: 652585f331bff7e44afb8fe71ec2119f, type: 3} + m_PrefabInstance: {fileID: 8050214715828898099} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Climb/Climb Sample.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/Climb Sample.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Climb/Climb Sample.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/Climb Sample.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/ClimbTeleportReticle.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/ClimbTeleportReticle.prefab new file mode 100644 index 00000000..aafaaeb9 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/ClimbTeleportReticle.prefab @@ -0,0 +1,647 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1231436352321780396 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4544271136228639733} + - component: {fileID: 3733134294308858899} + - component: {fileID: 3153377512821708037} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4544271136228639733 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1231436352321780396} + 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: 9007515192825494133} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 330, y: 330} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3733134294308858899 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1231436352321780396} + m_CullTransparentMesh: 1 +--- !u!114 &3153377512821708037 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1231436352321780396} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.7490196} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: e45f8f823c093d941855bb23b53b9414, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &3461113883738593307 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8592093655008360416} + m_Layer: 5 + m_Name: Arrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8592093655008360416 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3461113883738593307} + 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: 5005453272123457097} + - {fileID: 1823803951432028360} + m_Father: {fileID: 285002964321344741} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &4523418461820257256 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2204478448753199471} + - component: {fileID: 2986821684335916666} + - component: {fileID: 2304449840905880906} + m_Layer: 5 + m_Name: Arrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2204478448753199471 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4523418461820257256} + m_LocalRotation: {x: -0, y: -0, z: 0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 656850745989562019} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0.00006103516, y: 225} + m_SizeDelta: {x: 200, y: 200} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2986821684335916666 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4523418461820257256} + m_CullTransparentMesh: 1 +--- !u!114 &2304449840905880906 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4523418461820257256} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.7490196} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: f8ecc54972abacc46a93f671b0602139, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &4733855102705320443 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9007515192825494133} + m_Layer: 5 + m_Name: Timer Progress + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9007515192825494133 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4733855102705320443} + 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: 4544271136228639733} + - {fileID: 7180036288173734758} + m_Father: {fileID: 285002964321344741} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &6364497269786421194 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 285002964321344741} + - component: {fileID: 7683931602190211230} + - component: {fileID: 1657001993927382629} + - component: {fileID: 4583518788051481835} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &285002964321344741 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6364497269786421194} + m_LocalRotation: {x: 0, y: 1, z: 0, w: 0} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 9007515192825494133} + - {fileID: 656850745989562019} + - {fileID: 8592093655008360416} + m_Father: {fileID: 6498076632518532997} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 500, y: 600} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!223 &7683931602190211230 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6364497269786421194} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &1657001993927382629 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6364497269786421194} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!114 &4583518788051481835 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6364497269786421194} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!1 &6927910310626014204 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 656850745989562019} + m_Layer: 5 + m_Name: Progress Arrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &656850745989562019 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6927910310626014204} + 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: 2204478448753199471} + m_Father: {fileID: 285002964321344741} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &7560836725041214684 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6498076632518532997} + - component: {fileID: 6060699434838084334} + m_Layer: 0 + m_Name: ClimbTeleportReticle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6498076632518532997 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7560836725041214684} + 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: 285002964321344741} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &6060699434838084334 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7560836725041214684} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e001d3dc91354f8f8c590b4e1d1d3da9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TimerProgressFilledImage: {fileID: 7858840363066308928} + m_DestinationIndicator: {fileID: 3461113883738593307} + m_PotentialDestinationIndicator: {fileID: 6927910310626014204} + m_PotentialIndicatorUpdateFrequency: 0.1 +--- !u!1 &8291802535000133445 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1823803951432028360} + - component: {fileID: 203882619933263282} + - component: {fileID: 5289661317720192359} + m_Layer: 5 + m_Name: Arrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1823803951432028360 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8291802535000133445} + m_LocalRotation: {x: -0, y: -0, z: 0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8592093655008360416} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0.00006103516, y: 225} + m_SizeDelta: {x: 200, y: 200} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &203882619933263282 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8291802535000133445} + m_CullTransparentMesh: 1 +--- !u!114 &5289661317720192359 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8291802535000133445} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: f8ecc54972abacc46a93f671b0602139, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &8391053872352027772 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7180036288173734758} + - component: {fileID: 621455826683349568} + - component: {fileID: 7858840363066308928} + m_Layer: 5 + m_Name: Progress + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7180036288173734758 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8391053872352027772} + 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: 9007515192825494133} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 300, y: 300} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &621455826683349568 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8391053872352027772} + m_CullTransparentMesh: 1 +--- !u!114 &7858840363066308928 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8391053872352027772} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 2f8349570a152884fb6cf7ebdc8c18b3, type: 3} + m_Type: 3 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &8696404588391070980 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5005453272123457097} + - component: {fileID: 2754733227418273496} + - component: {fileID: 2105042693997049524} + m_Layer: 5 + m_Name: Legibility Mask + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5005453272123457097 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8696404588391070980} + 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: 8592093655008360416} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 225.00002} + m_SizeDelta: {x: 260, y: 150} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2754733227418273496 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8696404588391070980} + m_CullTransparentMesh: 1 +--- !u!114 &2105042693997049524 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8696404588391070980} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.7490196} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: a85d80c1edb5d2f458d42e79f78055b9, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/XR Interaction Hands Setup.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/ClimbTeleportReticle.prefab.meta similarity index 74% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/XR Interaction Hands Setup.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/ClimbTeleportReticle.prefab.meta index c5eb93c9..f0770fa9 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/XR Interaction Hands Setup.prefab.meta +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/ClimbTeleportReticle.prefab.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 5eccbf4be2c00e94689ee8062e4e7276 +guid: 6eb816e9b7ce30f4cadff3d4ad7ad10c PrefabImporter: externalObjects: {} userData: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Climb/Climbing Wall.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/Climbing Wall.prefab similarity index 98% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Climb/Climbing Wall.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/Climbing Wall.prefab index 8a6f7a9b..9d88bd70 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Climb/Climbing Wall.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/Climbing Wall.prefab @@ -181,7 +181,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -279,7 +279,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -1203,7 +1203,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -1301,7 +1301,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -1399,7 +1399,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -1851,7 +1851,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -1949,7 +1949,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -2090,7 +2090,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -2188,7 +2188,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -2404,7 +2404,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -2502,7 +2502,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -2600,7 +2600,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -3170,7 +3170,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -3268,7 +3268,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -3366,7 +3366,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -3582,7 +3582,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -4077,7 +4077,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -4529,7 +4529,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -4627,7 +4627,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -4843,7 +4843,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -5295,7 +5295,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -5393,7 +5393,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -5491,7 +5491,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -5825,7 +5825,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -5923,7 +5923,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -6021,7 +6021,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -6119,7 +6119,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -6217,7 +6217,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -6315,7 +6315,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -6531,7 +6531,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -6661,7 +6661,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 842f1b88643f1bb458ba6243088e344e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -6747,9 +6747,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_InteractionManager: {fileID: 0} m_Colliders: [] - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 m_InteractionLayers: m_Bits: 1 m_DistanceCalculationMode: 1 @@ -6808,37 +6805,11 @@ MonoBehaviour: 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_ClimbProvider: {fileID: 0} m_ClimbTransform: {fileID: 7585962580643705475} m_FilterInteractionByDistance: 1 m_MaxInteractionDistance: 0.15 + m_ClimbAssistanceTeleportVolume: {fileID: 0} m_ClimbSettingsOverride: m_UseConstant: 0 m_ConstantValue: @@ -7092,7 +7063,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -7544,7 +7515,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -7642,7 +7613,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -7740,7 +7711,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -7838,7 +7809,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -8097,7 +8068,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Climb/Climbing Wall.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/Climbing Wall.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Climb/Climbing Wall.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/Climbing Wall.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Climb/Ladder.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/Ladder.prefab similarity index 97% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Climb/Ladder.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/Ladder.prefab index c8b9cbed..089eb68e 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Climb/Ladder.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/Ladder.prefab @@ -118,9 +118,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_InteractionManager: {fileID: 0} m_Colliders: [] - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 m_InteractionLayers: m_Bits: 1 m_DistanceCalculationMode: 2 @@ -179,37 +176,11 @@ MonoBehaviour: 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_ClimbProvider: {fileID: 0} m_ClimbTransform: {fileID: 346412486727514802} m_FilterInteractionByDistance: 1 m_MaxInteractionDistance: 0.1 + m_ClimbAssistanceTeleportVolume: {fileID: 0} m_ClimbSettingsOverride: m_UseConstant: 1 m_ConstantValue: @@ -463,7 +434,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: fc226930e8fad4c499969204cecfbc05, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -561,7 +532,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: fc226930e8fad4c499969204cecfbc05, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -659,7 +630,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: fc226930e8fad4c499969204cecfbc05, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -758,7 +729,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: fc226930e8fad4c499969204cecfbc05, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -889,7 +860,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: fc226930e8fad4c499969204cecfbc05, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -975,9 +946,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_InteractionManager: {fileID: 0} m_Colliders: [] - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 m_InteractionLayers: m_Bits: 1 m_DistanceCalculationMode: 2 @@ -1036,37 +1004,11 @@ MonoBehaviour: 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_ClimbProvider: {fileID: 0} m_ClimbTransform: {fileID: 8764721392725842676} m_FilterInteractionByDistance: 1 m_MaxInteractionDistance: 0.1 + m_ClimbAssistanceTeleportVolume: {fileID: 0} m_ClimbSettingsOverride: m_UseConstant: 1 m_ConstantValue: @@ -1238,7 +1180,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: fc226930e8fad4c499969204cecfbc05, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -1573,7 +1515,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: fc226930e8fad4c499969204cecfbc05, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -2026,7 +1968,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: fc226930e8fad4c499969204cecfbc05, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -2124,7 +2066,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: fc226930e8fad4c499969204cecfbc05, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -2611,7 +2553,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: fc226930e8fad4c499969204cecfbc05, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -2710,7 +2652,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: fc226930e8fad4c499969204cecfbc05, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -2809,7 +2751,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: fc226930e8fad4c499969204cecfbc05, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -3026,7 +2968,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: fc226930e8fad4c499969204cecfbc05, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -3125,7 +3067,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: fc226930e8fad4c499969204cecfbc05, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Climb/Ladder.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/Ladder.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Climb/Ladder.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/Ladder.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/Multi Floor Ladder.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/Multi Floor Ladder.prefab new file mode 100644 index 00000000..49bf1490 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/Multi Floor Ladder.prefab @@ -0,0 +1,932 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3214955352098038543 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2727044179811942478} + - component: {fileID: 3027285473455007335} + - component: {fileID: 3769214372110669680} + m_Layer: 0 + m_Name: Teleport Volume + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2727044179811942478 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3214955352098038543} + 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: 3999338779507687127} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &3027285473455007335 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3214955352098038543} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c299748de92a4b4f9193a4c71b74c495, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 0} + m_Colliders: + - {fileID: 3769214372110669680} + m_InteractionLayers: + m_Bits: 2147483648 + m_DistanceCalculationMode: 1 + m_SelectMode: 0 + m_FocusMode: 1 + m_CustomReticle: {fileID: 7560836725041214684, guid: 6eb816e9b7ce30f4cadff3d4ad7ad10c, 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_TeleportationProvider: {fileID: 0} + m_MatchOrientation: 1 + m_MatchDirectionalInput: 0 + m_TeleportTrigger: 0 + m_FilterSelectionByHitNormal: 0 + m_UpNormalToleranceDegrees: 30 + m_Teleporting: + m_PersistentCalls: + m_Calls: [] + m_AnchorTransforms: + - {fileID: 5275546299015321662} + - {fileID: 6677850379965411331} + - {fileID: 7131749450783531291} + m_DestinationEvaluationSettings: + m_UseConstant: 0 + m_ConstantValue: + m_EnableDestinationEvaluationDelay: 0 + m_DestinationEvaluationDelayTime: 1 + m_PollForDestinationChange: 0 + m_DestinationPollFrequency: 1 + m_DestinationFilterObject: {fileID: 0} + m_Variable: {fileID: 11400000, guid: 8d66c9762e1587643a1164368c8a2c58, type: 2} +--- !u!65 &3769214372110669680 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3214955352098038543} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 0.8, y: 4.473955, z: 0.48763496} + m_Center: {x: 3.8437254e-16, y: 2.3082204, z: -0.097952105} +--- !u!1 &3308162198220175456 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3999338779507687127} + m_Layer: 0 + m_Name: Multi Floor Ladder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3999338779507687127 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3308162198220175456} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -2.2, y: 0, z: 0.25} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7775037913137697211} + - {fileID: 2727044179811942478} + - {fileID: 3296004839132549566} + - {fileID: 4046271039184976259} + - {fileID: 464525861229668507} + - {fileID: 4372273583476268136} + - {fileID: 7659782247511649622} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &548112142276183089 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3999338779507687127} + m_Modifications: + - target: {fileID: 2455711654808853570, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalScale.x + value: 2.4 + objectReference: {fileID: 0} + - target: {fileID: 2455711654808853570, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalScale.y + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 2455711654808853570, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalScale.z + value: 1.2 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640279, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_Name + value: Middle Platform + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640279, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_RootOrder + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalPosition.x + value: -0.5 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalPosition.y + value: 2.05 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalPosition.z + value: -0.76 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} +--- !u!4 &4372273583476268136 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + m_PrefabInstance: {fileID: 548112142276183089} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1576620109244106404 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 4046271039184976259} + m_Modifications: + - target: {fileID: 3774509235512974894, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_Name + value: Interaction Affordance + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7396278978564332023, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_Renderer + value: + objectReference: {fileID: 8500052472111792655} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} +--- !u!1 &2414078401763940490 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 3774509235512974894, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + m_PrefabInstance: {fileID: 1576620109244106404} + m_PrefabAsset: {fileID: 0} +--- !u!114 &4685143306265189663 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2414078401763940490} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7da98a0edd844d83b9b4de3f91de030c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ContainingTeleportVolume: {fileID: 3027285473455007335} +--- !u!1001 &2820227708616365311 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 464525861229668507} + m_Modifications: + - target: {fileID: 3774509235512974894, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_Name + value: Interaction Affordance + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7396278978564332023, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_Renderer + value: + objectReference: {fileID: 5450249920699568919} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} +--- !u!1 &1387871808273009361 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 3774509235512974894, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + m_PrefabInstance: {fileID: 2820227708616365311} + m_PrefabAsset: {fileID: 0} +--- !u!114 &5208464857424882149 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1387871808273009361} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7da98a0edd844d83b9b4de3f91de030c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ContainingTeleportVolume: {fileID: 3027285473455007335} +--- !u!1001 &5871328185984513295 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3999338779507687127} + m_Modifications: + - target: {fileID: 2455711654808853570, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalScale.x + value: 2.4 + objectReference: {fileID: 0} + - target: {fileID: 2455711654808853570, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalScale.y + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 2455711654808853570, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalScale.z + value: 1.2 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640279, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_Name + value: Top Platform + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640279, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_RootOrder + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalPosition.x + value: -0.5 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalPosition.y + value: 4.05 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalPosition.z + value: -0.86 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} +--- !u!4 &7659782247511649622 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + m_PrefabInstance: {fileID: 5871328185984513295} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &5871328186975140663 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3999338779507687127} + m_Modifications: + - target: {fileID: 2478550239312682541, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + propertyPath: m_ClimbAssistanceTeleportVolume + value: + objectReference: {fileID: 3027285473455007335} + - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + propertyPath: m_LocalScale.x + value: 1.2 + objectReference: {fileID: 0} + - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + propertyPath: m_LocalScale.y + value: 1.3 + objectReference: {fileID: 0} + - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + propertyPath: m_LocalScale.z + value: 1.2 + objectReference: {fileID: 0} + - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + propertyPath: m_LocalRotation.w + value: 0.99965733 + objectReference: {fileID: 0} + - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + propertyPath: m_LocalRotation.x + value: -0.026176924 + objectReference: {fileID: 0} + - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -3 + objectReference: {fileID: 0} + - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4410526664489999667, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + propertyPath: m_ClimbAssistanceTeleportVolume + value: + objectReference: {fileID: 3027285473455007335} + - target: {fileID: 6209309998178532447, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + propertyPath: m_Name + value: Ladder + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} +--- !u!4 &7775037913137697211 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + m_PrefabInstance: {fileID: 5871328186975140663} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &6585803985532623206 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3999338779507687127} + m_Modifications: + - target: {fileID: 268508938848858109, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_Name + value: Top Anchor + objectReference: {fileID: 0} + - target: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_LocalPosition.y + value: 4.1 + objectReference: {fileID: 0} + - target: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_LocalPosition.z + value: -0.84 + objectReference: {fileID: 0} + - target: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8313103746164989982, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_Size.x + value: 1.15 + objectReference: {fileID: 0} + - target: {fileID: 8313103746164989982, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_Size.y + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 8313103746164989982, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_Size.z + value: 1.15 + objectReference: {fileID: 0} + - target: {fileID: 8313103746164989982, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_Center.y + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 9118070405729309043, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} +--- !u!4 &464525861229668507 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + m_PrefabInstance: {fileID: 6585803985532623206} + m_PrefabAsset: {fileID: 0} +--- !u!23 &5450249920699568919 stripped +MeshRenderer: + m_CorrespondingSourceObject: {fileID: 1208746707607620209, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + m_PrefabInstance: {fileID: 6585803985532623206} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7131749450783531291 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4151308971900942461, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + m_PrefabInstance: {fileID: 6585803985532623206} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &6873060775456768107 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3296004839132549566} + m_Modifications: + - target: {fileID: 3774509235512974894, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_Name + value: Interaction Affordance + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7396278978564332023, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_Renderer + value: + objectReference: {fileID: 6948135387403610674} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} +--- !u!1 &7711223019295415877 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 3774509235512974894, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + m_PrefabInstance: {fileID: 6873060775456768107} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1928933381452029862 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7711223019295415877} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7da98a0edd844d83b9b4de3f91de030c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ContainingTeleportVolume: {fileID: 3027285473455007335} +--- !u!1001 &7291349829325129854 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3999338779507687127} + m_Modifications: + - target: {fileID: 268508938848858109, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_Name + value: Middle Anchor + objectReference: {fileID: 0} + - target: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_LocalPosition.x + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_LocalPosition.y + value: 2.1 + objectReference: {fileID: 0} + - target: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_LocalPosition.z + value: -0.74 + objectReference: {fileID: 0} + - target: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8313103746164989982, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_Size.x + value: 1.15 + objectReference: {fileID: 0} + - target: {fileID: 8313103746164989982, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_Size.y + value: 0.3 + objectReference: {fileID: 0} + - target: {fileID: 8313103746164989982, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_Size.z + value: 1.15 + objectReference: {fileID: 0} + - target: {fileID: 8313103746164989982, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_Center.y + value: 0.15 + objectReference: {fileID: 0} + - target: {fileID: 9118070405729309043, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} +--- !u!4 &4046271039184976259 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + m_PrefabInstance: {fileID: 7291349829325129854} + m_PrefabAsset: {fileID: 0} +--- !u!4 &6677850379965411331 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4151308971900942461, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + m_PrefabInstance: {fileID: 7291349829325129854} + m_PrefabAsset: {fileID: 0} +--- !u!23 &8500052472111792655 stripped +MeshRenderer: + m_CorrespondingSourceObject: {fileID: 1208746707607620209, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + m_PrefabInstance: {fileID: 7291349829325129854} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &8118557376516415555 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3999338779507687127} + m_Modifications: + - target: {fileID: 268508938848858109, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_Name + value: Bottom Anchor + objectReference: {fileID: 0} + - target: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_LocalPosition.z + value: 0.5550009 + objectReference: {fileID: 0} + - target: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_LocalRotation.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_LocalRotation.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 180 + objectReference: {fileID: 0} + - target: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8313103746164989982, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_Size.x + value: 1.15 + objectReference: {fileID: 0} + - target: {fileID: 8313103746164989982, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_Size.y + value: 0.3 + objectReference: {fileID: 0} + - target: {fileID: 8313103746164989982, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_Size.z + value: 1.15 + objectReference: {fileID: 0} + - target: {fileID: 8313103746164989982, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_Center.y + value: 0.15 + objectReference: {fileID: 0} + - target: {fileID: 9118070405729309043, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} +--- !u!4 &3296004839132549566 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6707876468356395517, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + m_PrefabInstance: {fileID: 8118557376516415555} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5275546299015321662 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4151308971900942461, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + m_PrefabInstance: {fileID: 8118557376516415555} + m_PrefabAsset: {fileID: 0} +--- !u!23 &6948135387403610674 stripped +MeshRenderer: + m_CorrespondingSourceObject: {fileID: 1208746707607620209, guid: 037ba65d346be2a48ad006b9a9a3873e, type: 3} + m_PrefabInstance: {fileID: 8118557376516415555} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/XR Interaction Setup.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/Multi Floor Ladder.prefab.meta similarity index 74% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/XR Interaction Setup.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/Multi Floor Ladder.prefab.meta index a1e930c7..05e98a65 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/XR Interaction Setup.prefab.meta +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/Multi Floor Ladder.prefab.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 895f6f3c2d334633b5800312285058d2 +guid: 652585f331bff7e44afb8fe71ec2119f PrefabImporter: externalObjects: {} userData: diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/Single Floor Ladder.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/Single Floor Ladder.prefab new file mode 100644 index 00000000..3960e92f --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/Single Floor Ladder.prefab @@ -0,0 +1,388 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2862128434192091292 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4249841530267949295} + m_Layer: 0 + m_Name: Top Anchor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4249841530267949295 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2862128434192091292} + m_LocalRotation: {x: -0, y: 1, z: -0, w: 0} + m_LocalPosition: {x: 0, y: 3.2, z: -0.781} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6144662080407587627} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} +--- !u!1 &5646221108877547251 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5124763011978032562} + - component: {fileID: 5243787471854130075} + - component: {fileID: 6235313352995381900} + m_Layer: 0 + m_Name: Teleport Volume + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5124763011978032562 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5646221108877547251} + 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: 6144662080407587627} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &5243787471854130075 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5646221108877547251} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c299748de92a4b4f9193a4c71b74c495, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 0} + m_Colliders: + - {fileID: 6235313352995381900} + m_InteractionLayers: + m_Bits: 2147483648 + m_DistanceCalculationMode: 1 + m_SelectMode: 0 + m_FocusMode: 1 + m_CustomReticle: {fileID: 7560836725041214684, guid: 6eb816e9b7ce30f4cadff3d4ad7ad10c, 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_TeleportationProvider: {fileID: 0} + m_MatchOrientation: 1 + m_MatchDirectionalInput: 0 + m_TeleportTrigger: 0 + m_FilterSelectionByHitNormal: 0 + m_UpNormalToleranceDegrees: 30 + m_Teleporting: + m_PersistentCalls: + m_Calls: [] + m_AnchorTransforms: + - {fileID: 8945883054039185536} + - {fileID: 4249841530267949295} + m_DestinationEvaluationSettings: + m_UseConstant: 1 + m_ConstantValue: + m_EnableDestinationEvaluationDelay: 1 + m_DestinationEvaluationDelayTime: 1 + m_PollForDestinationChange: 0 + m_DestinationPollFrequency: 1 + m_DestinationFilterObject: {fileID: 0} + m_Variable: {fileID: 0} +--- !u!65 &6235313352995381900 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5646221108877547251} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 0.8, y: 3.3715928, z: 0.48763496} + m_Center: {x: 3.8437254e-16, y: 1.7570392, z: -0.097952105} +--- !u!1 &5705580279468903836 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6144662080407587627} + m_Layer: 0 + m_Name: Single Floor Ladder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6144662080407587627 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5705580279468903836} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 1.0500003} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 657740211026551879} + - {fileID: 5124763011978032562} + - {fileID: 8945883054039185536} + - {fileID: 4249841530267949295} + - {fileID: 615792120950184106} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &6584279440624949942 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8945883054039185536} + m_Layer: 0 + m_Name: Bottom Anchor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8945883054039185536 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6584279440624949942} + m_LocalRotation: {x: -0, y: -0, z: -0, w: -1} + m_LocalPosition: {x: 0, y: 0.049999997, z: 0.5550015} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6144662080407587627} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} +--- !u!1001 &3728308782907146483 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 6144662080407587627} + m_Modifications: + - target: {fileID: 2455711654808853570, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalScale.x + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 2455711654808853570, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalScale.y + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 2455711654808853570, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalScale.z + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640279, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_Name + value: Platform + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640279, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalPosition.y + value: 3.1 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalPosition.z + value: -1.2000004 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} +--- !u!4 &615792120950184106 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4266640295717640281, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + m_PrefabInstance: {fileID: 3728308782907146483} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3728308784063975115 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 6144662080407587627} + m_Modifications: + - target: {fileID: 2478550239312682541, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + propertyPath: m_ClimbAssistanceTeleportVolume + value: + objectReference: {fileID: 5243787471854130075} + - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + propertyPath: m_LocalRotation.w + value: 0.99965733 + objectReference: {fileID: 0} + - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + propertyPath: m_LocalRotation.x + value: -0.026176924 + objectReference: {fileID: 0} + - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -3 + objectReference: {fileID: 0} + - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4410526664489999667, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + propertyPath: m_ClimbAssistanceTeleportVolume + value: + objectReference: {fileID: 5243787471854130075} + - target: {fileID: 6209309998178532447, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + propertyPath: m_Name + value: Ladder + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} +--- !u!4 &657740211026551879 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4223635557334411916, guid: b3830b3b2f190ee46a9c88433e985221, type: 3} + m_PrefabInstance: {fileID: 3728308784063975115} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/XR Device Simulator UI.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/Single Floor Ladder.prefab.meta similarity index 74% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/XR Device Simulator UI.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/Single Floor Ladder.prefab.meta index cf14b3a7..e528c8ab 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/XR Device Simulator UI.prefab.meta +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Climb/Single Floor Ladder.prefab.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: ead42e0472b7547fbba6c229aeaf37d3 +guid: 1f62bdd0e59688d4bb754afe89fa2f5a PrefabImporter: externalObjects: {} userData: diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Far Grab Samples.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Far Grab Samples.prefab new file mode 100644 index 00000000..59391dbc --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Far Grab Samples.prefab @@ -0,0 +1,222 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1017698943250256213 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1017698943250256298} + m_Layer: 0 + m_Name: Far Grab Samples + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1017698943250256298 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1017698943250256213} + 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: 5032153987230353887} + - {fileID: 5151981248583452152} + - {fileID: 177564888636506461} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1017698943613317800 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1017698943250256298} + m_Modifications: + - target: {fileID: 5287248408654313296, guid: 3549fdaf258e11846b85a316c16c699c, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5287248408654313296, guid: 3549fdaf258e11846b85a316c16c699c, type: 3} + propertyPath: m_LocalPosition.x + value: -1.4873999 + objectReference: {fileID: 0} + - target: {fileID: 5287248408654313296, guid: 3549fdaf258e11846b85a316c16c699c, type: 3} + propertyPath: m_LocalPosition.y + value: 1.2473108 + objectReference: {fileID: 0} + - target: {fileID: 5287248408654313296, guid: 3549fdaf258e11846b85a316c16c699c, type: 3} + propertyPath: m_LocalPosition.z + value: -4.4574575 + objectReference: {fileID: 0} + - target: {fileID: 5287248408654313296, guid: 3549fdaf258e11846b85a316c16c699c, type: 3} + propertyPath: m_LocalRotation.w + value: 0.56098557 + objectReference: {fileID: 0} + - target: {fileID: 5287248408654313296, guid: 3549fdaf258e11846b85a316c16c699c, type: 3} + propertyPath: m_LocalRotation.x + value: 0.4304593 + objectReference: {fileID: 0} + - target: {fileID: 5287248408654313296, guid: 3549fdaf258e11846b85a316c16c699c, type: 3} + propertyPath: m_LocalRotation.y + value: 0.4304593 + objectReference: {fileID: 0} + - target: {fileID: 5287248408654313296, guid: 3549fdaf258e11846b85a316c16c699c, type: 3} + propertyPath: m_LocalRotation.z + value: 0.56098557 + objectReference: {fileID: 0} + - target: {fileID: 5287248408654313296, guid: 3549fdaf258e11846b85a316c16c699c, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5287248408654313296, guid: 3549fdaf258e11846b85a316c16c699c, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 75 + objectReference: {fileID: 0} + - target: {fileID: 5287248408654313296, guid: 3549fdaf258e11846b85a316c16c699c, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 90 + objectReference: {fileID: 0} + - target: {fileID: 6689992741278781415, guid: 3549fdaf258e11846b85a316c16c699c, type: 3} + propertyPath: m_Name + value: Blaser + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 3549fdaf258e11846b85a316c16c699c, type: 3} +--- !u!4 &5151981248583452152 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5287248408654313296, guid: 3549fdaf258e11846b85a316c16c699c, type: 3} + m_PrefabInstance: {fileID: 1017698943613317800} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1118486182725821730 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1017698943250256298} + m_Modifications: + - target: {fileID: 5354890054544157949, guid: fe7fcf44eedd467489de26ce92577bc3, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5354890054544157949, guid: fe7fcf44eedd467489de26ce92577bc3, type: 3} + propertyPath: m_LocalPosition.x + value: -2.0528674 + objectReference: {fileID: 0} + - target: {fileID: 5354890054544157949, guid: fe7fcf44eedd467489de26ce92577bc3, type: 3} + propertyPath: m_LocalPosition.y + value: 1.17 + objectReference: {fileID: 0} + - target: {fileID: 5354890054544157949, guid: fe7fcf44eedd467489de26ce92577bc3, type: 3} + propertyPath: m_LocalPosition.z + value: -4.5 + objectReference: {fileID: 0} + - target: {fileID: 5354890054544157949, guid: fe7fcf44eedd467489de26ce92577bc3, type: 3} + propertyPath: m_LocalRotation.w + value: 0.56098557 + objectReference: {fileID: 0} + - target: {fileID: 5354890054544157949, guid: fe7fcf44eedd467489de26ce92577bc3, type: 3} + propertyPath: m_LocalRotation.x + value: 0.4304593 + objectReference: {fileID: 0} + - target: {fileID: 5354890054544157949, guid: fe7fcf44eedd467489de26ce92577bc3, type: 3} + propertyPath: m_LocalRotation.y + value: 0.4304593 + objectReference: {fileID: 0} + - target: {fileID: 5354890054544157949, guid: fe7fcf44eedd467489de26ce92577bc3, type: 3} + propertyPath: m_LocalRotation.z + value: 0.56098557 + objectReference: {fileID: 0} + - target: {fileID: 5354890054544157949, guid: fe7fcf44eedd467489de26ce92577bc3, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5354890054544157949, guid: fe7fcf44eedd467489de26ce92577bc3, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 75 + objectReference: {fileID: 0} + - target: {fileID: 5354890054544157949, guid: fe7fcf44eedd467489de26ce92577bc3, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 90 + objectReference: {fileID: 0} + - target: {fileID: 6910721658033247306, guid: fe7fcf44eedd467489de26ce92577bc3, type: 3} + propertyPath: m_Name + value: Blaser-Long + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: fe7fcf44eedd467489de26ce92577bc3, type: 3} +--- !u!4 &5032153987230353887 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5354890054544157949, guid: fe7fcf44eedd467489de26ce92577bc3, type: 3} + m_PrefabInstance: {fileID: 1118486182725821730} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &4304486995001665080 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1017698943250256298} + m_Modifications: + - target: {fileID: 4164222508261582693, guid: 833cb867d186193418fc107735ae3139, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4164222508261582693, guid: 833cb867d186193418fc107735ae3139, type: 3} + propertyPath: m_LocalPosition.x + value: -0.95 + objectReference: {fileID: 0} + - target: {fileID: 4164222508261582693, guid: 833cb867d186193418fc107735ae3139, type: 3} + propertyPath: m_LocalPosition.y + value: 1.18 + objectReference: {fileID: 0} + - target: {fileID: 4164222508261582693, guid: 833cb867d186193418fc107735ae3139, type: 3} + propertyPath: m_LocalPosition.z + value: -4.578 + objectReference: {fileID: 0} + - target: {fileID: 4164222508261582693, guid: 833cb867d186193418fc107735ae3139, type: 3} + propertyPath: m_LocalRotation.w + value: 0.21263118 + objectReference: {fileID: 0} + - target: {fileID: 4164222508261582693, guid: 833cb867d186193418fc107735ae3139, type: 3} + propertyPath: m_LocalRotation.x + value: -0.70643383 + objectReference: {fileID: 0} + - target: {fileID: 4164222508261582693, guid: 833cb867d186193418fc107735ae3139, type: 3} + propertyPath: m_LocalRotation.y + value: 0.6743797 + objectReference: {fileID: 0} + - target: {fileID: 4164222508261582693, guid: 833cb867d186193418fc107735ae3139, type: 3} + propertyPath: m_LocalRotation.z + value: 0.030843332 + objectReference: {fileID: 0} + - target: {fileID: 4164222508261582693, guid: 833cb867d186193418fc107735ae3139, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 4164222508261582693, guid: 833cb867d186193418fc107735ae3139, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 345 + objectReference: {fileID: 0} + - target: {fileID: 4164222508261582693, guid: 833cb867d186193418fc107735ae3139, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 90 + objectReference: {fileID: 0} + - target: {fileID: 7128330710180914111, guid: 833cb867d186193418fc107735ae3139, type: 3} + propertyPath: m_Name + value: Dynamic Attach Torus + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 833cb867d186193418fc107735ae3139, type: 3} +--- !u!4 &177564888636506461 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4164222508261582693, guid: 833cb867d186193418fc107735ae3139, type: 3} + m_PrefabInstance: {fileID: 4304486995001665080} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Far Grab Samples.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Far Grab Samples.prefab.meta new file mode 100644 index 00000000..8bea0e55 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Far Grab Samples.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f5ee409d69254d64da7a3b74d31a5a40 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Gaze Interactables.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Gaze Interactables.prefab new file mode 100644 index 00000000..1ccef0a3 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Gaze Interactables.prefab @@ -0,0 +1,1093 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &473967896956997135 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 473967896956997128} + - component: {fileID: 473967896956997131} + - component: {fileID: 473967896956997130} + - component: {fileID: 473967896956997129} + m_Layer: 5 + m_Name: Interactable State + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &473967896956997128 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 473967896956997135} + 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: 473967898674444904} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: -33} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &473967896956997131 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 473967896956997135} + m_CullTransparentMesh: 0 +--- !u!114 &473967896956997130 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 473967896956997135} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &473967896956997129 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 473967896956997135} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 16 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Hovered +--- !u!1 &473967897193089403 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 473967897193089396} + - component: {fileID: 473967897193089398} + - component: {fileID: 473967897193089397} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &473967897193089396 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 473967897193089403} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4248956818382680585} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &473967897193089398 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 473967897193089403} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &473967897193089397 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 473967897193089403} + 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: 5561349426305759274, guid: 9e1dc1c14313460d872de39e35129b39, type: 3} + 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!1 &473967897596373899 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 473967897596373892} + - component: {fileID: 473967897596373889} + - component: {fileID: 473967897596373888} + - component: {fileID: 473967897596373895} + - component: {fileID: 473967897596373894} + m_Layer: 5 + m_Name: Gaze Select/Deselect Interactable Info + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &473967897596373892 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 473967897596373899} + m_LocalRotation: {x: -0, y: 1, z: -0, w: 0} + m_LocalPosition: {x: 0, y: 0, z: 0.23999977} + m_LocalScale: {x: 0.002, y: 0.002, z: 0.002} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 473967898674444904} + m_Father: {fileID: 473967898006735992} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: -0.5, y: 0.4} + m_SizeDelta: {x: 150, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!223 &473967897596373889 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 473967897596373899} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &473967897596373888 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 473967897596373899} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!114 &473967897596373895 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 473967897596373899} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &473967897596373894 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 473967897596373899} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7951c64acb0fa62458bf30a60089fe2d, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 0 + m_CheckFor2DOcclusion: 0 + m_CheckFor3DOcclusion: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RaycastTriggerInteraction: 1 +--- !u!1 &473967898006735999 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 473967898006735992} + m_Layer: 0 + m_Name: Gaze Interactables + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &473967898006735992 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 473967898006735999} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -1.5, y: 0.663, z: -4.5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4248956818382680585} + - {fileID: 4758432220186322088} + - {fileID: 4758432221792608628} + - {fileID: 473967897596373892} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &473967898674444911 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 473967898674444904} + - component: {fileID: 473967898674444906} + - component: {fileID: 473967898674444905} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &473967898674444904 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 473967898674444911} + 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: 473967896956997128} + m_Father: {fileID: 473967897596373892} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 25} + m_SizeDelta: {x: 150, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &473967898674444906 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 473967898674444911} + m_CullTransparentMesh: 1 +--- !u!114 &473967898674444905 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 473967898674444911} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.7490196} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &1529512124061104994 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4248956818382680585} + - component: {fileID: 4608473438835730188} + - component: {fileID: 191681418003103051} + - component: {fileID: 1529512124061104995} + - component: {fileID: 6616257527316408168} + m_Layer: 0 + m_Name: Gaze Hover Simple Interactable + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4248956818382680585 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1529512124061104994} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.5, y: 0.58, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 473967897193089396} + m_Father: {fileID: 473967898006735992} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4608473438835730188 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1529512124061104994} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &191681418003103051 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1529512124061104994} + 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: 76618f7490c40334fa7b685859587d2e, 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!65 &1529512124061104995 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1529512124061104994} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &6616257527316408168 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1529512124061104994} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8a35f6cfbfba9b548aaa00d52cfe8a50, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 0} + m_Colliders: [] + m_InteractionLayers: + m_Bits: 1 + m_DistanceCalculationMode: 1 + m_SelectMode: 0 + m_FocusMode: 1 + m_CustomReticle: {fileID: 0} + m_AllowGazeInteraction: 1 + m_AllowGazeSelect: 0 + m_OverrideGazeTimeToSelect: 0 + m_GazeTimeToSelect: 0 + m_OverrideTimeToAutoDeselectGaze: 0 + m_TimeToAutoDeselectGaze: 3 + m_AllowGazeAssistance: 0 + m_FirstHoverEntered: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 191681418003103051} + m_TargetAssemblyTypeName: UnityEngine.Renderer, UnityEngine + m_MethodName: set_material + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 5561349426305759274, guid: 9e1dc1c14313460d872de39e35129b39, type: 3} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Material, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 473967897193089403} + m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + m_LastHoverExited: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 191681418003103051} + m_TargetAssemblyTypeName: UnityEngine.Renderer, UnityEngine + m_MethodName: set_material + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 5561349426305759274, guid: 63e02ddb08ce42da868504e1333d48ae, type: 3} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Material, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 473967897193089403} + m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_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: [] +--- !u!1 &7910538102941576643 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4758432220186322088} + - component: {fileID: 5119077097342939565} + - component: {fileID: 8815504253944130538} + - component: {fileID: 674558902177696101} + - component: {fileID: 2535421555985625545} + m_Layer: 0 + m_Name: Gaze Assisted Simple Interactable + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4758432220186322088 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7910538102941576643} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.58, z: 0} + m_LocalScale: {x: 0.2, y: 0.1, z: 0.2} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 473967898006735992} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &5119077097342939565 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7910538102941576643} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &8815504253944130538 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7910538102941576643} + 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: 76618f7490c40334fa7b685859587d2e, 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!64 &674558902177696101 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7910538102941576643} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!114 &2535421555985625545 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7910538102941576643} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8a35f6cfbfba9b548aaa00d52cfe8a50, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 0} + m_Colliders: [] + m_InteractionLayers: + m_Bits: 1 + m_DistanceCalculationMode: 1 + m_SelectMode: 0 + m_FocusMode: 1 + m_CustomReticle: {fileID: 0} + m_AllowGazeInteraction: 1 + m_AllowGazeSelect: 0 + m_OverrideGazeTimeToSelect: 0 + m_GazeTimeToSelect: 2 + m_OverrideTimeToAutoDeselectGaze: 0 + m_TimeToAutoDeselectGaze: 2 + m_AllowGazeAssistance: 1 + m_FirstHoverEntered: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 8815504253944130538} + m_TargetAssemblyTypeName: UnityEngine.Renderer, UnityEngine + m_MethodName: set_material + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 5561349426305759274, guid: 9e1dc1c14313460d872de39e35129b39, type: 3} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Material, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_LastHoverExited: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 8815504253944130538} + m_TargetAssemblyTypeName: UnityEngine.Renderer, UnityEngine + m_MethodName: set_material + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 5561349426305759274, guid: 63e02ddb08ce42da868504e1333d48ae, type: 3} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Material, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + 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: [] +--- !u!1 &7910538103482509343 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4758432221792608628} + - component: {fileID: 5119077095728002161} + - component: {fileID: 8815504255550680630} + - component: {fileID: 7910538103482509336} + - component: {fileID: 2535421555444691989} + m_Layer: 0 + m_Name: Gaze Select/Deselect Simple Interactable + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4758432221792608628 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7910538103482509343} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.5, y: 0.58, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 473967898006735992} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &5119077095728002161 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7910538103482509343} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &8815504255550680630 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7910538103482509343} + 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: 76618f7490c40334fa7b685859587d2e, 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!135 &7910538103482509336 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7910538103482509343} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &2535421555444691989 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7910538103482509343} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8a35f6cfbfba9b548aaa00d52cfe8a50, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 0} + m_Colliders: [] + m_InteractionLayers: + m_Bits: 1 + m_DistanceCalculationMode: 1 + m_SelectMode: 0 + m_FocusMode: 1 + m_CustomReticle: {fileID: 0} + m_AllowGazeInteraction: 1 + m_AllowGazeSelect: 1 + m_OverrideGazeTimeToSelect: 1 + m_GazeTimeToSelect: 2 + m_OverrideTimeToAutoDeselectGaze: 1 + m_TimeToAutoDeselectGaze: 4 + m_AllowGazeAssistance: 0 + m_FirstHoverEntered: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 8815504255550680630} + m_TargetAssemblyTypeName: UnityEngine.Renderer, UnityEngine + m_MethodName: set_material + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 5561349426305759274, guid: 9e1dc1c14313460d872de39e35129b39, type: 3} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Material, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 473967897596373899} + m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + - m_Target: {fileID: 473967896956997129} + m_TargetAssemblyTypeName: UnityEngine.UI.Text, UnityEngine.UI + m_MethodName: set_text + m_Mode: 5 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: Hovered + m_BoolArgument: 1 + m_CallState: 2 + m_LastHoverExited: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 8815504255550680630} + m_TargetAssemblyTypeName: UnityEngine.Renderer, UnityEngine + m_MethodName: set_material + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 5561349426305759274, guid: 63e02ddb08ce42da868504e1333d48ae, type: 3} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Material, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 473967897596373899} + m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_HoverEntered: + m_PersistentCalls: + m_Calls: [] + m_HoverExited: + m_PersistentCalls: + m_Calls: [] + m_FirstSelectEntered: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 473967896956997129} + m_TargetAssemblyTypeName: UnityEngine.UI.Text, UnityEngine.UI + m_MethodName: set_text + m_Mode: 5 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: Selected + m_BoolArgument: 0 + m_CallState: 2 + m_LastSelectExited: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 473967896956997129} + m_TargetAssemblyTypeName: UnityEngine.UI.Text, UnityEngine.UI + m_MethodName: set_text + m_Mode: 5 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: Deselected + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 8815504255550680630} + m_TargetAssemblyTypeName: UnityEngine.Renderer, UnityEngine + m_MethodName: set_material + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 5561349426305759274, guid: 63e02ddb08ce42da868504e1333d48ae, type: 3} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Material, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + 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: [] diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Gaze Interactables.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Gaze Interactables.prefab.meta new file mode 100644 index 00000000..1e66da68 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Gaze Interactables.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e05cd47ab8981f64badd3bfe29af8f4e +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables Sample.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables Sample.prefab similarity index 98% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables Sample.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables Sample.prefab index 50a362cb..1cc41c00 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables Sample.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables Sample.prefab @@ -87,7 +87,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4769098102207602867, guid: 2ed984a58a974166bf92c82a74380454, type: 3} propertyPath: m_Name - value: Interactable Instant Pyramid + value: Interactable Instant Cylinder objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 2ed984a58a974166bf92c82a74380454, type: 3} @@ -113,7 +113,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 7517549319329480229, guid: 521327bdbcb341f782d36f02cab76cb0, type: 3} propertyPath: m_LocalPosition.y - value: 0.5 + value: 0.525 objectReference: {fileID: 0} - target: {fileID: 7517549319329480229, guid: 521327bdbcb341f782d36f02cab76cb0, type: 3} propertyPath: m_LocalPosition.z @@ -171,7 +171,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4257412417454173056, guid: d5615d616019430d9c2e8727e71c97fb, type: 3} propertyPath: m_LocalPosition.x - value: -0.425 + value: -0.5 objectReference: {fileID: 0} - target: {fileID: 4257412417454173056, guid: d5615d616019430d9c2e8727e71c97fb, type: 3} propertyPath: m_LocalPosition.y @@ -211,7 +211,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4257412417454173071, guid: d5615d616019430d9c2e8727e71c97fb, type: 3} propertyPath: m_Name - value: Interactable Velocity Tracked Wedge + value: Interactable Velocity Tapered Cylinder objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: d5615d616019430d9c2e8727e71c97fb, type: 3} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables Sample.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables Sample.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables Sample.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables Sample.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Blaser-Long.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Blaser-Long.prefab new file mode 100644 index 00000000..73eeebc1 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Blaser-Long.prefab @@ -0,0 +1,533 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3385772945386142710 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8720395994140980207} + m_Layer: 0 + m_Name: Attach 1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8720395994140980207 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3385772945386142710} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0.05, y: 0.04, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1511484438512298306} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 90} +--- !u!1 &6437316271001355229 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5917203958825261415} + - component: {fileID: 7327913166118033090} + - component: {fileID: 4779741401209332232} + - component: {fileID: 8555559421212654628} + - component: {fileID: 4302118958288390173} + m_Layer: 0 + m_Name: Blaster_Long + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5917203958825261415 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6437316271001355229} + m_LocalRotation: {x: 0.000000081460335, 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: 5354890054544157949} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &7327913166118033090 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6437316271001355229} + m_Mesh: {fileID: -4545305392863491524, guid: e51d3dbfe79e4c646bb30424a11f23a0, type: 3} +--- !u!23 &4779741401209332232 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6437316271001355229} + 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: 76618f7490c40334fa7b685859587d2e, 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!136 &8555559421212654628 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6437316271001355229} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.07774649 + m_Height: 0 + m_Direction: 1 + m_Center: {x: 0.05, y: 0, z: -0.000000004656613} +--- !u!65 &4302118958288390173 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6437316271001355229} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 0.06, y: 0.35081995, z: 0.060000017} + m_Center: {x: 0, y: -0.10121217, z: -0.000000004656613} +--- !u!1 &6910721658033247306 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5354890054544157949} + - component: {fileID: 7469549042548629770} + - component: {fileID: 5007766103700882973} + m_Layer: 0 + m_Name: Blaser-Long + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5354890054544157949 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6910721658033247306} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -1.939, y: 1.965, z: -4.572} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5917203958825261415} + - {fileID: 1511484438512298306} + - {fileID: 1847048393024268602} + - {fileID: 3152469075122894703} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!54 &7469549042548629770 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6910721658033247306} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 1 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!114 &5007766103700882973 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6910721658033247306} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0ad34abafad169848a38072baa96cdb2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 0} + m_Colliders: [] + m_InteractionLayers: + m_Bits: 1 + m_DistanceCalculationMode: 1 + m_SelectMode: 1 + 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_Target: {fileID: 3152469075122894700} + m_TargetAssemblyTypeName: UnityEngine.ParticleSystem, UnityEngine + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_Deactivated: + m_PersistentCalls: + m_Calls: [] + m_StartingHoverFilters: [] + m_StartingSelectFilters: [] + m_StartingInteractionStrengthFilters: [] + m_AttachTransform: {fileID: 8720395994140980207} + m_SecondaryAttachTransform: {fileID: 8163488654232436768} + m_UseDynamicAttach: 0 + m_MatchAttachPosition: 1 + m_MatchAttachRotation: 1 + m_SnapToColliderVolume: 1 + m_ReinitializeDynamicAttachEverySingleGrab: 1 + m_AttachEaseInTime: 0.15 + m_MovementType: 2 + m_VelocityDamping: 1 + m_VelocityScale: 1 + m_AngularVelocityDamping: 1 + m_AngularVelocityScale: 1 + m_TrackPosition: 1 + m_SmoothPosition: 0 + m_SmoothPositionAmount: 8 + m_TightenPosition: 0.1 + m_TrackRotation: 1 + m_SmoothRotation: 0 + m_SmoothRotationAmount: 8 + m_TightenRotation: 0.1 + 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_StartingSingleGrabTransformers: [] + m_StartingMultipleGrabTransformers: [] + m_AddDefaultGrabTransformers: 1 + m_FarAttachMode: 1 +--- !u!1 &7408197437310189400 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1511484438512298306} + m_Layer: 0 + m_Name: Attach Transforms + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1511484438512298306 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7408197437310189400} + 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: 8720395994140980207} + - {fileID: 8163488654232436768} + m_Father: {fileID: 5354890054544157949} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &8124602369512158954 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8163488654232436768} + m_Layer: 0 + m_Name: Attach 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8163488654232436768 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8124602369512158954} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0.0025, y: -0.15, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1511484438512298306} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 90} +--- !u!1001 &88085993893310710 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5354890054544157949} + m_Modifications: + - target: {fileID: 3064453622967830425, guid: 7942e6544a2b2ae48bcf988d9aed838d, type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 3064453622967830425, guid: 7942e6544a2b2ae48bcf988d9aed838d, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3064453622967830425, guid: 7942e6544a2b2ae48bcf988d9aed838d, type: 3} + propertyPath: m_LocalPosition.y + value: -0.284 + objectReference: {fileID: 0} + - target: {fileID: 3064453622967830425, guid: 7942e6544a2b2ae48bcf988d9aed838d, type: 3} + propertyPath: m_LocalPosition.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3064453622967830425, guid: 7942e6544a2b2ae48bcf988d9aed838d, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 3064453622967830425, guid: 7942e6544a2b2ae48bcf988d9aed838d, type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 3064453622967830425, guid: 7942e6544a2b2ae48bcf988d9aed838d, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3064453622967830425, guid: 7942e6544a2b2ae48bcf988d9aed838d, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3064453622967830425, guid: 7942e6544a2b2ae48bcf988d9aed838d, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 90 + objectReference: {fileID: 0} + - target: {fileID: 3064453622967830425, guid: 7942e6544a2b2ae48bcf988d9aed838d, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3064453622967830425, guid: 7942e6544a2b2ae48bcf988d9aed838d, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3064453622967830428, guid: 7942e6544a2b2ae48bcf988d9aed838d, type: 3} + propertyPath: m_Name + value: Confetti + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 7942e6544a2b2ae48bcf988d9aed838d, type: 3} +--- !u!198 &3152469075122894700 stripped +ParticleSystem: + m_CorrespondingSourceObject: {fileID: 3064453622967830426, guid: 7942e6544a2b2ae48bcf988d9aed838d, type: 3} + m_PrefabInstance: {fileID: 88085993893310710} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3152469075122894703 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3064453622967830425, guid: 7942e6544a2b2ae48bcf988d9aed838d, type: 3} + m_PrefabInstance: {fileID: 88085993893310710} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &5862368334091776017 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5354890054544157949} + m_Modifications: + - target: {fileID: 3774509235512974894, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_Name + value: Highlight Interaction Affordance + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7396278978564332023, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_Renderer + value: + objectReference: {fileID: 4779741401209332232} + - target: {fileID: 8634317094661461186, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_InteractableSource + value: + objectReference: {fileID: 5007766103700882973} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 6b12f432fa58c224baf0d659706362be, type: 3} +--- !u!4 &1847048393024268602 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + m_PrefabInstance: {fileID: 5862368334091776017} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Blaser-Long.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Blaser-Long.prefab.meta new file mode 100644 index 00000000..895625c5 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Blaser-Long.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fe7fcf44eedd467489de26ce92577bc3 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Blaser.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Blaser.prefab new file mode 100644 index 00000000..d5f9d215 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Blaser.prefab @@ -0,0 +1,493 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1284416445487218436 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1916555828440016318} + - component: {fileID: 3258111108087556635} + - component: {fileID: 780201921469275857} + - component: {fileID: 1934941278493803051} + - component: {fileID: 5183335765786241175} + m_Layer: 0 + m_Name: Blaster + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1916555828440016318 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1284416445487218436} + 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: 5287248408654313296} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &3258111108087556635 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1284416445487218436} + m_Mesh: {fileID: -4545305392863491524, guid: e8cf87fef9298444ca38948b2c8a4073, type: 3} +--- !u!23 &780201921469275857 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1284416445487218436} + 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: 76618f7490c40334fa7b685859587d2e, 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!136 &1934941278493803051 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1284416445487218436} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.07774648 + m_Height: 0 + m_Direction: 1 + m_Center: {x: 0.0005991794, y: 0, z: -0.000000004656613} +--- !u!65 &5183335765786241175 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1284416445487218436} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 0.06, y: 0.2241978, z: 0.06} + m_Center: {x: -0.05, y: -0.030879375, z: 0} +--- !u!1 &6689992741278781415 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5287248408654313296} + - component: {fileID: 7248925196756646567} + - component: {fileID: 5066365915309006256} + m_Layer: 0 + m_Name: Blaser + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5287248408654313296 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6689992741278781415} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -1.939, y: 1.505, z: -4.5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1916555828440016318} + - {fileID: 1714093953809707759} + - {fileID: 4320651432585960086} + - {fileID: 2523315500094793452} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!54 &7248925196756646567 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6689992741278781415} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 1 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!114 &5066365915309006256 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6689992741278781415} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0ad34abafad169848a38072baa96cdb2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 0} + m_Colliders: [] + 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_Target: {fileID: 2523315500094793455} + m_TargetAssemblyTypeName: UnityEngine.ParticleSystem, UnityEngine + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_Deactivated: + m_PersistentCalls: + m_Calls: [] + m_StartingHoverFilters: [] + m_StartingSelectFilters: [] + m_StartingInteractionStrengthFilters: [] + m_AttachTransform: {fileID: 1714093953809707759} + 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: 2 + m_VelocityDamping: 1 + m_VelocityScale: 1 + m_AngularVelocityDamping: 1 + m_AngularVelocityScale: 1 + m_TrackPosition: 1 + m_SmoothPosition: 0 + m_SmoothPositionAmount: 8 + m_TightenPosition: 0.1 + m_TrackRotation: 1 + m_SmoothRotation: 0 + m_SmoothRotationAmount: 8 + m_TightenRotation: 0.1 + 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: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_ThrowVelocityScale: 1 + m_ThrowAngularVelocityScale: 1 + m_ForceGravityOnDetach: 0 + m_RetainTransformParent: 1 + m_StartingSingleGrabTransformers: [] + m_StartingMultipleGrabTransformers: [] + m_AddDefaultGrabTransformers: 1 + m_FarAttachMode: 1 +--- !u!1 &7349667993634448629 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1714093953809707759} + m_Layer: 0 + m_Name: Attach Transform + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1714093953809707759 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7349667993634448629} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0, y: 0.04, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5287248408654313296} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 90} +--- !u!1001 &685600756766286197 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5287248408654313296} + m_Modifications: + - target: {fileID: 3064453622967830425, guid: 7942e6544a2b2ae48bcf988d9aed838d, type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 3064453622967830425, guid: 7942e6544a2b2ae48bcf988d9aed838d, type: 3} + propertyPath: m_LocalPosition.x + value: -0.034 + objectReference: {fileID: 0} + - target: {fileID: 3064453622967830425, guid: 7942e6544a2b2ae48bcf988d9aed838d, type: 3} + propertyPath: m_LocalPosition.y + value: -0.15 + objectReference: {fileID: 0} + - target: {fileID: 3064453622967830425, guid: 7942e6544a2b2ae48bcf988d9aed838d, type: 3} + propertyPath: m_LocalPosition.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3064453622967830425, guid: 7942e6544a2b2ae48bcf988d9aed838d, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 3064453622967830425, guid: 7942e6544a2b2ae48bcf988d9aed838d, type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 3064453622967830425, guid: 7942e6544a2b2ae48bcf988d9aed838d, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3064453622967830425, guid: 7942e6544a2b2ae48bcf988d9aed838d, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3064453622967830425, guid: 7942e6544a2b2ae48bcf988d9aed838d, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 90 + objectReference: {fileID: 0} + - target: {fileID: 3064453622967830425, guid: 7942e6544a2b2ae48bcf988d9aed838d, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3064453622967830425, guid: 7942e6544a2b2ae48bcf988d9aed838d, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3064453622967830428, guid: 7942e6544a2b2ae48bcf988d9aed838d, type: 3} + propertyPath: m_Name + value: Confetti + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 7942e6544a2b2ae48bcf988d9aed838d, type: 3} +--- !u!4 &2523315500094793452 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3064453622967830425, guid: 7942e6544a2b2ae48bcf988d9aed838d, type: 3} + m_PrefabInstance: {fileID: 685600756766286197} + m_PrefabAsset: {fileID: 0} +--- !u!198 &2523315500094793455 stripped +ParticleSystem: + m_CorrespondingSourceObject: {fileID: 3064453622967830426, guid: 7942e6544a2b2ae48bcf988d9aed838d, type: 3} + m_PrefabInstance: {fileID: 685600756766286197} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &8290935447177298877 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5287248408654313296} + m_Modifications: + - target: {fileID: 3774509235512974894, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_Name + value: Highlight Interaction Affordance + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5298392244203567607, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_AffordanceStateProvider + value: + objectReference: {fileID: 350172987230754687} + - target: {fileID: 7396278978564332023, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_Renderer + value: + objectReference: {fileID: 780201921469275857} + - target: {fileID: 8634317094661461186, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_InteractableSource + value: + objectReference: {fileID: 5066365915309006256} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 6b12f432fa58c224baf0d659706362be, type: 3} +--- !u!114 &350172987230754687 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8634317094661461186, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + m_PrefabInstance: {fileID: 8290935447177298877} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 49e0a5b5ff5540f5b14dd29d46faec22, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &4320651432585960086 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + m_PrefabInstance: {fileID: 8290935447177298877} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Blaser.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Blaser.prefab.meta new file mode 100644 index 00000000..18014ceb --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Blaser.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3549fdaf258e11846b85a316c16c699c +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Confetti.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Confetti.prefab new file mode 100644 index 00000000..878b8e65 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Confetti.prefab @@ -0,0 +1,4872 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3064453622967830428 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3064453622967830425} + - component: {fileID: 3064453622967830426} + - component: {fileID: 3064453622967830427} + m_Layer: 0 + m_Name: Confetti + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3064453622967830425 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3064453622967830428} + m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068} + m_LocalPosition: {x: 0, y: 1.4, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} +--- !u!198 &3064453622967830426 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3064453622967830428} + serializedVersion: 8 + lengthInSec: 1 + simulationSpeed: 1 + stopAction: 0 + cullingMode: 0 + ringBufferMode: 2 + ringBufferLoopRange: {x: 0, y: 1} + emitterVelocityMode: 0 + looping: 0 + prewarm: 0 + playOnAwake: 0 + useUnscaledTime: 0 + autoRandomSeed: 1 + startDelay: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + moveWithTransform: 1 + moveWithCustomTransform: {fileID: 0} + scalingMode: 1 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 5 + minScalar: 5 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSpeed: + serializedVersion: 2 + minMaxState: 3 + scalar: 3 + minScalar: 0.1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startColor: + serializedVersion: 2 + minMaxState: 4 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 0.5, g: 0.9250001, b: 1, a: 1} + key2: {r: 0, g: 0.84313726, b: 1, a: 1} + key3: {r: 0, g: 0.84483385, b: 1, a: 1} + key4: {r: 0, g: 0.84483385, b: 1, 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: 13107 + ctime1: 37394 + ctime2: 65535 + ctime3: 65535 + ctime4: 65535 + ctime5: 65535 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 65535 + atime3: 65535 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 1 + m_NumColorKeys: 3 + m_NumAlphaKeys: 2 + minGradient: + 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 + startSize: + serializedVersion: 2 + minMaxState: 3 + scalar: 0.001 + minScalar: 0.002 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeY: + serializedVersion: 2 + minMaxState: 3 + scalar: 0.001 + minScalar: 0.002 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeZ: + serializedVersion: 2 + minMaxState: 3 + scalar: 0.001 + minScalar: 0.002 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationX: + serializedVersion: 2 + minMaxState: 3 + scalar: 0 + minScalar: 1.5707963 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + startRotationY: + serializedVersion: 2 + minMaxState: 3 + scalar: 0 + minScalar: 1.5707963 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + startRotation: + serializedVersion: 2 + minMaxState: 3 + scalar: 0 + minScalar: 1.5707963 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + randomizeRotationDirection: 0 + maxNumParticles: 50 + customEmitterVelocity: {x: 0, y: 0, z: 0} + size3D: 1 + rotation3D: 1 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.1 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + ShapeModule: + serializedVersion: 6 + enabled: 1 + type: 4 + angle: 30 + length: 5 + boxThickness: {x: 0, y: 0, z: 0} + radiusThickness: 1 + donutRadius: 0.2 + m_Position: {x: 0, y: 1.686913e-12, z: 0.000000051140773} + m_Rotation: {x: 0.004037607, y: 0, z: 0} + m_Scale: {x: 0.1, y: 0.1, z: 0.1} + placementMode: 0 + m_MeshMaterialIndex: 0 + m_MeshNormalOffset: 0 + m_MeshSpawn: + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Mesh: {fileID: 0} + m_MeshRenderer: {fileID: 0} + m_SkinnedMeshRenderer: {fileID: 0} + m_Sprite: {fileID: 0} + m_SpriteRenderer: {fileID: 0} + m_UseMeshMaterialIndex: 0 + m_UseMeshColors: 1 + alignToDirection: 0 + m_Texture: {fileID: 0} + m_TextureClipChannel: 3 + m_TextureClipThreshold: 0 + m_TextureUVChannel: 0 + m_TextureColorAffectsParticles: 1 + m_TextureAlphaAffectsParticles: 1 + m_TextureBilinearFiltering: 0 + randomDirectionAmount: 0 + sphericalDirectionAmount: 0 + randomPositionAmount: 0 + radius: + value: 0.25 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + arc: + value: 360 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + EmissionModule: + enabled: 1 + serializedVersion: 4 + rateOverTime: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 10 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rateOverDistance: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + m_BurstCount: 1 + m_Bursts: + - serializedVersion: 2 + time: 0 + countCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 100 + minScalar: 30 + maxCurve: + 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 + minCurve: + 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 + cycleCount: 1 + repeatInterval: 0.01 + probability: 1 + SizeModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + RotationModule: + enabled: 1 + x: + serializedVersion: 2 + minMaxState: 3 + scalar: 0.7853981 + minScalar: 3.1415925 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + y: + serializedVersion: 2 + minMaxState: 3 + scalar: 0.7853981 + minScalar: 3.1415925 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + curve: + serializedVersion: 2 + minMaxState: 3 + scalar: 0.7853982 + minScalar: 3.1415925 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 1 + ColorModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + 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 + minGradient: + 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 + UVModule: + serializedVersion: 2 + enabled: 0 + mode: 0 + timeMode: 0 + fps: 30 + frameOverTime: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.9999 + minScalar: 0.9999 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startFrame: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + speedRange: {x: 0, y: 1} + tilesX: 1 + tilesY: 1 + animationType: 0 + rowIndex: 0 + cycles: 1 + uvChannelMask: -1 + rowMode: 1 + sprites: + - sprite: {fileID: 0} + flipU: 0 + flipV: 0 + VelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + orbitalX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + orbitalY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + orbitalZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + orbitalOffsetX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + orbitalOffsetY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + orbitalOffsetZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + radial: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + speedModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + InheritVelocityModule: + enabled: 0 + m_Mode: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + LifetimeByEmitterSpeedModule: + enabled: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.8 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.2 + inSlope: -0.8 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Range: {x: 0, y: 1} + ForceModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + inWorldSpace: 0 + randomizePerFrame: 0 + ExternalForcesModule: + serializedVersion: 2 + enabled: 0 + multiplierCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + influenceFilter: 0 + influenceMask: + serializedVersion: 2 + m_Bits: 4294967295 + influenceList: [] + ClampVelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + magnitude: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxis: 0 + inWorldSpace: 0 + multiplyDragByParticleSize: 1 + multiplyDragByParticleVelocity: 1 + dampen: 0 + drag: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + NoiseModule: + enabled: 0 + strength: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + frequency: 0.5 + damping: 1 + octaves: 1 + octaveMultiplier: 0.5 + octaveScale: 2 + quality: 2 + scrollSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + remap: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapEnabled: 0 + positionAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rotationAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + sizeAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + SizeBySpeedModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + range: {x: 0, y: 1} + separateAxes: 0 + RotationBySpeedModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + 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 + minGradient: + 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 + range: {x: 0, y: 1} + CollisionModule: + enabled: 1 + serializedVersion: 4 + type: 1 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 1 + m_Planes: [] + m_Dampen: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.5 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + m_Bounce: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_EnergyLossOnCollision: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minKillSpeed: 0 + maxKillSpeed: 10000 + radiusScale: 1 + collidesWith: + serializedVersion: 2 + m_Bits: 1 + maxCollisionShapes: 256 + quality: 2 + voxelSize: 0.5 + collisionMessages: 0 + collidesWithDynamic: 1 + interiorCollisions: 0 + TriggerModule: + enabled: 0 + serializedVersion: 2 + inside: 1 + outside: 0 + enter: 0 + exit: 0 + colliderQueryMode: 0 + radiusScale: 1 + primitives: [] + SubModule: + serializedVersion: 2 + enabled: 0 + subEmitters: + - serializedVersion: 3 + emitter: {fileID: 0} + type: 0 + properties: 0 + emitProbability: 1 + LightsModule: + enabled: 0 + ratio: 0 + light: {fileID: 0} + randomDistribution: 1 + color: 1 + range: 1 + intensity: 1 + rangeCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + intensityCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + maxLights: 20 + TrailModule: + enabled: 0 + mode: 0 + ratio: 1 + lifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minVertexDistance: 0.2 + textureMode: 0 + ribbonCount: 1 + shadowBias: 0.5 + worldSpace: 0 + dieWithParticles: 1 + sizeAffectsWidth: 1 + sizeAffectsLifetime: 0 + inheritParticleColor: 1 + generateLightingData: 0 + splitSubEmitterRibbons: 0 + attachRibbonsToTransform: 0 + colorOverLifetime: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + 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 + minGradient: + 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 + widthOverTrail: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorOverTrail: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + 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 + minGradient: + 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 + CustomDataModule: + enabled: 0 + mode0: 0 + vectorComponentCount0: 4 + color0: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + 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 + minGradient: + 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 + colorLabel0: Color + vector0_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + vectorLabel0_0: X + vector0_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + vectorLabel0_1: Y + vector0_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + vectorLabel0_2: Z + vector0_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + vectorLabel0_3: W + mode1: 0 + vectorComponentCount1: 4 + color1: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + 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 + minGradient: + 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 + colorLabel1: Color + vector1_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + vectorLabel1_0: X + vector1_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + vectorLabel1_1: Y + vector1_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + vectorLabel1_2: Z + vector1_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + vectorLabel1_3: W +--- !u!199 &3064453622967830427 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3064453622967830428} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10301, 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_RenderMode: 4 + m_MeshDistribution: 0 + m_SortMode: 0 + m_MinParticleSize: 0 + m_MaxParticleSize: 0.5 + m_CameraVelocityScale: 0 + m_VelocityScale: 0 + m_LengthScale: 2 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_ShadowBias: 0 + m_RenderAlignment: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Flip: {x: 0, y: 0, z: 0} + m_UseCustomVertexStreams: 0 + m_EnableGPUInstancing: 1 + m_ApplyActiveColorSpace: 1 + m_AllowRoll: 1 + m_FreeformStretching: 0 + m_RotateWithStretchDirection: 1 + m_VertexStreams: 00010304 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MeshWeighting: 1 + m_MeshWeighting1: 1 + m_MeshWeighting2: 1 + m_MeshWeighting3: 1 + m_MaskInteraction: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Confetti.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Confetti.prefab.meta new file mode 100644 index 00000000..8f36df3b --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Confetti.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7942e6544a2b2ae48bcf988d9aed838d +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interactable Simple Cube.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Cube.prefab similarity index 92% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interactable Simple Cube.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Cube.prefab index 11946612..4a7c8300 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interactable Simple Cube.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Cube.prefab @@ -109,7 +109,7 @@ GameObject: - component: {fileID: 4943412722579436017} - component: {fileID: 2719188128838509712} m_Layer: 0 - m_Name: Interactable Simple Cube + m_Name: Cube m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -146,9 +146,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_InteractionManager: {fileID: 0} m_Colliders: [] - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 m_InteractionLayers: m_Bits: 1 m_DistanceCalculationMode: 1 @@ -207,33 +204,6 @@ MonoBehaviour: 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: [] --- !u!1001 &1117405571790364861 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interactable Simple Cube.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Cube.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interactable Simple Cube.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Cube.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interactable Instant Pyramid.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Cylinder.prefab similarity index 68% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interactable Instant Pyramid.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Cylinder.prefab index 9ff9f44c..19b7f26c 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interactable Instant Pyramid.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Cylinder.prefab @@ -1,103 +1,5 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1 &3555266395154559664 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3651312844796179671} - - component: {fileID: 5911828657079854996} - - component: {fileID: 3768215008265120455} - - component: {fileID: 5059739475841926635} - m_Layer: 0 - m_Name: Visuals - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3651312844796179671 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3555266395154559664} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.35, y: 0.35, z: 0.35} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 4769098102207602864} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &5911828657079854996 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3555266395154559664} - m_Mesh: {fileID: -4957301927772954577, guid: 63e02ddb08ce42da868504e1333d48ae, type: 3} ---- !u!23 &3768215008265120455 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3555266395154559664} - 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: 5561349426305759274, guid: 63e02ddb08ce42da868504e1333d48ae, type: 3} - 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!64 &5059739475841926635 -MeshCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3555266395154559664} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 4 - m_Convex: 1 - m_CookingOptions: 30 - m_Mesh: {fileID: -4957301927772954577, guid: 63e02ddb08ce42da868504e1333d48ae, type: 3} --- !u!1 &4769098102207602867 GameObject: m_ObjectHideFlags: 0 @@ -109,8 +11,9 @@ GameObject: - component: {fileID: 4769098102207602864} - component: {fileID: 4769098102207602870} - component: {fileID: 4769098102207602865} + - component: {fileID: 5989527094017703538} m_Layer: 0 - m_Name: Interactable Instant Pyramid + m_Name: Cylinder m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -128,8 +31,8 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 7346323618051603254} - - {fileID: 3651312844796179671} + - {fileID: 8601105390305805582} + - {fileID: 3338351278058446343} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -163,13 +66,10 @@ MonoBehaviour: m_EditorClassIdentifier: m_InteractionManager: {fileID: 0} m_Colliders: [] - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 1 m_InteractionLayers: m_Bits: 1 m_DistanceCalculationMode: 1 - m_SelectMode: 0 + m_SelectMode: 1 m_FocusMode: 1 m_CustomReticle: {fileID: 0} m_AllowGazeInteraction: 0 @@ -224,33 +124,6 @@ MonoBehaviour: 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: 1 @@ -297,77 +170,200 @@ MonoBehaviour: m_ThrowAngularVelocityScale: 1 m_ForceGravityOnDetach: 0 m_RetainTransformParent: 1 - m_AttachPointCompatibilityMode: 0 - m_StartingSingleGrabTransformers: [] - m_StartingMultipleGrabTransformers: [] + m_StartingSingleGrabTransformers: + - {fileID: 5989527094017703538} + m_StartingMultipleGrabTransformers: + - {fileID: 5989527094017703538} m_AddDefaultGrabTransformers: 1 ---- !u!1001 &3245470402904072733 + m_FarAttachMode: 0 +--- !u!114 &5989527094017703538 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4769098102207602867} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0a1302d0d134fa8a2a5b3bf4aec3c20, type: 3} + m_Name: + m_EditorClassIdentifier: + m_PermittedDisplacementAxes: 7 + m_ConstrainedAxisDisplacementMode: 1 + m_TwoHandedRotationMode: 1 + m_AllowOneHandedScaling: 1 + m_AllowTwoHandedScaling: 1 + m_OneHandedScaleSpeed: 0.5 + m_ThresholdMoveRatioForScale: 0.05 + m_ClampScaling: 1 + m_MinimumScaleRatio: 0.25 + m_MaximumScaleRatio: 2 + m_ScaleMultiplier: 0.25 +--- !u!1 &8941496170888322996 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8601105390305805582} + - component: {fileID: 4679970489851906731} + - component: {fileID: 7428246769315610209} + - component: {fileID: 7828185126001756355} + m_Layer: 0 + m_Name: Visuals + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8601105390305805582 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8941496170888322996} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0.15, z: 0} + m_LocalScale: {x: 0.75, y: 3, z: 0.75} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4769098102207602864} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4679970489851906731 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8941496170888322996} + m_Mesh: {fileID: -5076798556035486163, guid: 73b694bb0f61cd14e9e1ed7b578ac09a, type: 3} +--- !u!23 &7428246769315610209 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8941496170888322996} + 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: 76618f7490c40334fa7b685859587d2e, 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!64 &7828185126001756355 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8941496170888322996} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -5076798556035486163, guid: 73b694bb0f61cd14e9e1ed7b578ac09a, type: 3} +--- !u!1001 &7398689087584339756 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: m_TransformParent: {fileID: 4769098102207602864} m_Modifications: - - target: {fileID: 3774509235512974894, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 3774509235512974894, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_Name - value: Interaction Affordance + value: Highlight Interaction Affordance objectReference: {fileID: 0} - - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_RootOrder - value: 0 + value: 1 objectReference: {fileID: 0} - - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 7396278978564332023, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 7396278978564332023, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_Renderer value: - objectReference: {fileID: 3768215008265120455} - - target: {fileID: 8634317094661461186, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + objectReference: {fileID: 7428246769315610209} + - target: {fileID: 8634317094661461186, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_InteractableSource value: objectReference: {fileID: 4769098102207602865} m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} ---- !u!4 &7346323618051603254 stripped + m_SourcePrefab: {fileID: 100100000, guid: 6b12f432fa58c224baf0d659706362be, type: 3} +--- !u!4 &3338351278058446343 stripped Transform: - m_CorrespondingSourceObject: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} - m_PrefabInstance: {fileID: 3245470402904072733} + m_CorrespondingSourceObject: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + m_PrefabInstance: {fileID: 7398689087584339756} m_PrefabAsset: {fileID: 0} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interactable Instant Pyramid.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Cylinder.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interactable Instant Pyramid.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Cylinder.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interactable Velocity Tracked Wedge.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Pot.prefab similarity index 69% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interactable Velocity Tracked Wedge.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Pot.prefab index 00dae4ec..42300a45 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interactable Velocity Tracked Wedge.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Pot.prefab @@ -1,103 +1,5 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1 &621085603691566938 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6058481881298704847} - - component: {fileID: 54538302038579918} - - component: {fileID: 261398194632122527} - - component: {fileID: 7576380246348283313} - m_Layer: 0 - m_Name: Visuals - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6058481881298704847 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 621085603691566938} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 4257412417454173056} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &54538302038579918 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 621085603691566938} - m_Mesh: {fileID: 6788383922943872000, guid: ab3a79eba4de4be0ad5fead9fb858190, type: 3} ---- !u!23 &261398194632122527 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 621085603691566938} - 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: 5561349426305759274, guid: ab3a79eba4de4be0ad5fead9fb858190, type: 3} - 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!64 &7576380246348283313 -MeshCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 621085603691566938} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 4 - m_Convex: 1 - m_CookingOptions: 30 - m_Mesh: {fileID: 6788383922943872000, guid: ab3a79eba4de4be0ad5fead9fb858190, type: 3} --- !u!1 &4257412417454173071 GameObject: m_ObjectHideFlags: 0 @@ -110,7 +12,7 @@ GameObject: - component: {fileID: 4257412417454173059} - component: {fileID: 4257412417454173058} m_Layer: 0 - m_Name: Interactable Velocity Tracked Wedge + m_Name: Pot m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -128,8 +30,8 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 7448573029504399239} - - {fileID: 6058481881298704847} + - {fileID: 6865308534320718724} + - {fileID: 2054279627301505891} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -163,9 +65,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_InteractionManager: {fileID: 0} m_Colliders: [] - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 1 m_InteractionLayers: m_Bits: 1 m_DistanceCalculationMode: 1 @@ -224,33 +123,6 @@ MonoBehaviour: 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: 1 @@ -265,11 +137,11 @@ MonoBehaviour: m_AngularVelocityDamping: 1 m_AngularVelocityScale: 1 m_TrackPosition: 1 - m_SmoothPosition: 1 + m_SmoothPosition: 0 m_SmoothPositionAmount: 1.34 m_TightenPosition: 0.068 m_TrackRotation: 1 - m_SmoothRotation: 1 + m_SmoothRotation: 0 m_SmoothRotationAmount: 1.57 m_TightenRotation: 0.077 m_TrackScale: 1 @@ -297,77 +169,175 @@ MonoBehaviour: m_ThrowAngularVelocityScale: 1 m_ForceGravityOnDetach: 0 m_RetainTransformParent: 1 - m_AttachPointCompatibilityMode: 0 m_StartingSingleGrabTransformers: [] m_StartingMultipleGrabTransformers: [] m_AddDefaultGrabTransformers: 1 ---- !u!1001 &3433992509968690860 + m_FarAttachMode: 0 +--- !u!1 &6056682962065602878 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6865308534320718724} + - component: {fileID: 7559751749375618081} + - component: {fileID: 5696302975601547499} + - component: {fileID: 6101957066895999530} + m_Layer: 0 + m_Name: Visuals + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6865308534320718724 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6056682962065602878} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0.102, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4257412417454173056} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &7559751749375618081 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6056682962065602878} + m_Mesh: {fileID: -5076798556035486163, guid: e3493855a112e8248a2ea2c9828a51a1, type: 3} +--- !u!23 &5696302975601547499 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6056682962065602878} + 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: 76618f7490c40334fa7b685859587d2e, 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!64 &6101957066895999530 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6056682962065602878} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -5076798556035486163, guid: e3493855a112e8248a2ea2c9828a51a1, type: 3} +--- !u!1001 &6087490268632961608 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: m_TransformParent: {fileID: 4257412417454173056} m_Modifications: - - target: {fileID: 3774509235512974894, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 3774509235512974894, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_Name - value: Interaction Affordance + value: Highlight Interaction Affordance objectReference: {fileID: 0} - - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_RootOrder - value: 0 + value: 1 objectReference: {fileID: 0} - - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 7396278978564332023, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 7396278978564332023, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_Renderer value: - objectReference: {fileID: 261398194632122527} - - target: {fileID: 8634317094661461186, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + objectReference: {fileID: 5696302975601547499} + - target: {fileID: 8634317094661461186, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_InteractableSource value: objectReference: {fileID: 4257412417454173058} m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} ---- !u!4 &7448573029504399239 stripped + m_SourcePrefab: {fileID: 100100000, guid: 6b12f432fa58c224baf0d659706362be, type: 3} +--- !u!4 &2054279627301505891 stripped Transform: - m_CorrespondingSourceObject: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} - m_PrefabInstance: {fileID: 3433992509968690860} + m_CorrespondingSourceObject: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + m_PrefabInstance: {fileID: 6087490268632961608} m_PrefabAsset: {fileID: 0} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interactable Velocity Tracked Wedge.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Pot.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interactable Velocity Tracked Wedge.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Pot.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Push Button.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Push Button.prefab similarity index 95% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Push Button.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Push Button.prefab index b02e11d0..e69e88b9 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Push Button.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Push Button.prefab @@ -232,9 +232,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_InteractionManager: {fileID: 0} m_Colliders: [] - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 m_InteractionLayers: m_Bits: 1 m_DistanceCalculationMode: 1 @@ -293,33 +290,6 @@ MonoBehaviour: 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: [] --- !u!114 &2043066480405472099 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Push Button.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Push Button.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Push Button.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Push Button.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Torus-Cut.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Torus-Cut.prefab new file mode 100644 index 00000000..6278d37d --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Torus-Cut.prefab @@ -0,0 +1,352 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4134975161117009423 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3614616631432527029} + - component: {fileID: 398121313250456336} + - component: {fileID: 2477716950891808730} + - component: {fileID: 7698751657578538951} + m_Layer: 0 + m_Name: Torus Cut + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3614616631432527029 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4134975161117009423} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 10, y: 10, z: 10} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4164222508261582693} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &398121313250456336 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4134975161117009423} + m_Mesh: {fileID: -4972316377868672352, guid: 46c1c422ff6897f49a404b012dc924d3, type: 3} +--- !u!23 &2477716950891808730 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4134975161117009423} + 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: 76618f7490c40334fa7b685859587d2e, 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!64 &7698751657578538951 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4134975161117009423} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: -4972316377868672352, guid: 46c1c422ff6897f49a404b012dc924d3, type: 3} +--- !u!1 &7128330710180914111 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4164222508261582693} + - component: {fileID: 440870316915411584} + - component: {fileID: 5561339668604436703} + m_Layer: 0 + m_Name: Torus-Cut + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4164222508261582693 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7128330710180914111} + m_LocalRotation: {x: 0.40557984, y: -0.5792279, z: -0.5792279, w: 0.40557984} + m_LocalPosition: {x: -0.95, y: 1.18, z: -4.578} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3614616631432527029} + - {fileID: 7550081162039136068} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 200, y: 90, z: 90} +--- !u!54 &440870316915411584 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7128330710180914111} + serializedVersion: 2 + m_Mass: 2 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 1 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!114 &5561339668604436703 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7128330710180914111} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0ad34abafad169848a38072baa96cdb2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 0} + m_Colliders: [] + m_InteractionLayers: + m_Bits: 1 + m_DistanceCalculationMode: 1 + m_SelectMode: 1 + 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_AttachTransform: {fileID: 0} + m_SecondaryAttachTransform: {fileID: 0} + m_UseDynamicAttach: 1 + m_MatchAttachPosition: 1 + m_MatchAttachRotation: 1 + m_SnapToColliderVolume: 1 + m_ReinitializeDynamicAttachEverySingleGrab: 1 + m_AttachEaseInTime: 0.15 + m_MovementType: 2 + m_VelocityDamping: 1 + m_VelocityScale: 1 + m_AngularVelocityDamping: 1 + m_AngularVelocityScale: 1 + m_TrackPosition: 1 + m_SmoothPosition: 0 + m_SmoothPositionAmount: 8 + m_TightenPosition: 0.1 + m_TrackRotation: 1 + m_SmoothRotation: 0 + m_SmoothRotationAmount: 8 + m_TightenRotation: 0.1 + 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: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_ThrowVelocityScale: 1 + m_ThrowAngularVelocityScale: 1 + m_ForceGravityOnDetach: 0 + m_RetainTransformParent: 1 + m_StartingSingleGrabTransformers: [] + m_StartingMultipleGrabTransformers: [] + m_AddDefaultGrabTransformers: 1 + m_FarAttachMode: 1 +--- !u!1001 &2323328105576732271 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 4164222508261582693} + m_Modifications: + - target: {fileID: 3774509235512974894, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_Name + value: Highlight Interaction Affordance + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7396278978564332023, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_Renderer + value: + objectReference: {fileID: 2477716950891808730} + - target: {fileID: 8634317094661461186, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + propertyPath: m_InteractableSource + value: + objectReference: {fileID: 5561339668604436703} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 6b12f432fa58c224baf0d659706362be, type: 3} +--- !u!4 &7550081162039136068 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + m_PrefabInstance: {fileID: 2323328105576732271} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Torus-Cut.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Torus-Cut.prefab.meta new file mode 100644 index 00000000..3b09b547 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Torus-Cut.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 833cb867d186193418fc107735ae3139 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interactable Kinematic Torus.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Torus.prefab similarity index 77% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interactable Kinematic Torus.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Torus.prefab index 5d7c630c..e7882dce 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interactable Kinematic Torus.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Torus.prefab @@ -32,7 +32,7 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 7517549319329480229} - m_RootOrder: 1 + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &950121296977689675 MeshFilter: @@ -62,7 +62,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 5561349426305759274, guid: f077c919501a44778a0c2edb6eb1a54a, type: 3} + - {fileID: 2100000, guid: 76618f7490c40334fa7b685859587d2e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -109,8 +109,9 @@ GameObject: - component: {fileID: 7517549319329480229} - component: {fileID: 7517549319329480235} - component: {fileID: 7517549319329480228} + - component: {fileID: 3569311851364831330} m_Layer: 0 - m_Name: Interactable Kinematic Torus + m_Name: Torus m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -128,8 +129,8 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 5017849197920860822} - {fileID: 6369939804988844616} + - {fileID: 3847192154765675287} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -163,9 +164,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_InteractionManager: {fileID: 0} m_Colliders: [] - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 1 m_InteractionLayers: m_Bits: 1 m_DistanceCalculationMode: 1 @@ -224,33 +222,6 @@ MonoBehaviour: 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: 1 @@ -297,77 +268,100 @@ MonoBehaviour: m_ThrowAngularVelocityScale: 1 m_ForceGravityOnDetach: 0 m_RetainTransformParent: 1 - m_AttachPointCompatibilityMode: 0 m_StartingSingleGrabTransformers: [] m_StartingMultipleGrabTransformers: [] m_AddDefaultGrabTransformers: 1 ---- !u!1001 &962542200794522557 + m_FarAttachMode: 0 +--- !u!114 &3569311851364831330 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7517549319329480230} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0a1302d0d134fa8a2a5b3bf4aec3c20, type: 3} + m_Name: + m_EditorClassIdentifier: + m_PermittedDisplacementAxes: 7 + m_ConstrainedAxisDisplacementMode: 1 + m_TwoHandedRotationMode: 1 + m_AllowOneHandedScaling: 1 + m_AllowTwoHandedScaling: 0 + m_OneHandedScaleSpeed: 0.5 + m_ThresholdMoveRatioForScale: 0.05 + m_ClampScaling: 1 + m_MinimumScaleRatio: 0.25 + m_MaximumScaleRatio: 2 + m_ScaleMultiplier: 0.25 +--- !u!1001 &9050723057493692988 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: m_TransformParent: {fileID: 7517549319329480229} m_Modifications: - - target: {fileID: 3774509235512974894, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 3774509235512974894, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_Name - value: Interaction Affordance + value: Highlight Interaction Affordance objectReference: {fileID: 0} - - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_RootOrder - value: 0 + value: 1 objectReference: {fileID: 0} - - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 7396278978564332023, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 7396278978564332023, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_Renderer value: objectReference: {fileID: 8321842482108814056} - - target: {fileID: 8634317094661461186, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + - target: {fileID: 8634317094661461186, guid: 6b12f432fa58c224baf0d659706362be, type: 3} propertyPath: m_InteractableSource value: objectReference: {fileID: 7517549319329480228} m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} ---- !u!4 &5017849197920860822 stripped + m_SourcePrefab: {fileID: 100100000, guid: 6b12f432fa58c224baf0d659706362be, type: 3} +--- !u!4 &3847192154765675287 stripped Transform: - m_CorrespondingSourceObject: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} - m_PrefabInstance: {fileID: 962542200794522557} + m_CorrespondingSourceObject: {fileID: 5258331117553129771, guid: 6b12f432fa58c224baf0d659706362be, type: 3} + m_PrefabInstance: {fileID: 9050723057493692988} m_PrefabAsset: {fileID: 0} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interactable Kinematic Torus.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Torus.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interactable Kinematic Torus.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Torus.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interaction Affordance.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/InteractionAffordance.prefab similarity index 99% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interaction Affordance.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/InteractionAffordance.prefab index 8ac8cbc5..41eff283 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interaction Affordance.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/InteractionAffordance.prefab @@ -11,7 +11,7 @@ GameObject: - component: {fileID: 5258331117553129771} - component: {fileID: 8634317094661461186} m_Layer: 0 - m_Name: Interaction Affordance + m_Name: InteractionAffordance m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interaction Affordance.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/InteractionAffordance.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Interactables/Interaction Affordance.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/InteractionAffordance.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Poke Interactions Sample.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Poke Interactions Sample.prefab new file mode 100644 index 00000000..823d787a --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Poke Interactions Sample.prefab @@ -0,0 +1,5557 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &670559717724737759 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 670559717724737752} + - component: {fileID: 670559717724737754} + - component: {fileID: 670559717724737753} + m_Layer: 0 + m_Name: Particle System + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &670559717724737752 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 670559717724737759} + m_LocalRotation: {x: -0.7071068, y: -0, z: -0, w: 0.7071068} + m_LocalPosition: {x: 0.003, y: -0.01, z: -0.011} + m_LocalScale: {x: 0.1, y: 0.10000001, z: 0.10000001} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5278684166855141785} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0} +--- !u!198 &670559717724737754 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 670559717724737759} + serializedVersion: 8 + lengthInSec: 5 + simulationSpeed: 1 + stopAction: 0 + cullingMode: 0 + ringBufferMode: 0 + ringBufferLoopRange: {x: 0, y: 1} + emitterVelocityMode: 0 + looping: 1 + prewarm: 0 + playOnAwake: 0 + useUnscaledTime: 0 + autoRandomSeed: 1 + startDelay: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + moveWithTransform: 0 + moveWithCustomTransform: {fileID: 0} + scalingMode: 1 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 5 + minScalar: 5 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 10 + minScalar: 5 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startColor: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 0.9622642, g: 0.19517623, b: 0.20951429, a: 1} + maxGradient: + 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 + minGradient: + 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 + startSize: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + startRotationY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + startRotation: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + randomizeRotationDirection: 0 + maxNumParticles: 1000 + customEmitterVelocity: {x: 0, y: 0, z: 0} + size3D: 0 + rotation3D: 0 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + ShapeModule: + serializedVersion: 6 + enabled: 1 + type: 4 + angle: 13.08 + length: 5 + boxThickness: {x: 0, y: 0, z: 0} + radiusThickness: 0 + donutRadius: 0.2 + m_Position: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0} + m_Scale: {x: 1, y: 1, z: 1} + placementMode: 0 + m_MeshMaterialIndex: 0 + m_MeshNormalOffset: 0 + m_MeshSpawn: + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Mesh: {fileID: 0} + m_MeshRenderer: {fileID: 0} + m_SkinnedMeshRenderer: {fileID: 0} + m_Sprite: {fileID: 0} + m_SpriteRenderer: {fileID: 0} + m_UseMeshMaterialIndex: 0 + m_UseMeshColors: 1 + alignToDirection: 0 + m_Texture: {fileID: 0} + m_TextureClipChannel: 3 + m_TextureClipThreshold: 0 + m_TextureUVChannel: 0 + m_TextureColorAffectsParticles: 1 + m_TextureAlphaAffectsParticles: 1 + m_TextureBilinearFiltering: 0 + randomDirectionAmount: 0 + sphericalDirectionAmount: 0 + randomPositionAmount: 0 + radius: + value: 0.5 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + arc: + value: 360 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + EmissionModule: + enabled: 1 + serializedVersion: 4 + rateOverTime: + serializedVersion: 2 + minMaxState: 0 + scalar: 50 + minScalar: 10 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rateOverDistance: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + m_BurstCount: 0 + m_Bursts: [] + SizeModule: + enabled: 1 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.1511612 + inSlope: 2 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.054507792 + value: 0.57502365 + inSlope: -2.1679857 + outSlope: -2.1679857 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.07063622 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + RotationModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + ColorModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + 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 + minGradient: + 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 + UVModule: + serializedVersion: 2 + enabled: 0 + mode: 0 + timeMode: 0 + fps: 30 + frameOverTime: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.9999 + minScalar: 0.9999 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startFrame: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + speedRange: {x: 0, y: 1} + tilesX: 1 + tilesY: 1 + animationType: 0 + rowIndex: 0 + cycles: 1 + uvChannelMask: -1 + rowMode: 1 + sprites: + - sprite: {fileID: 0} + flipU: 0 + flipV: 0 + VelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + orbitalX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + orbitalY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + orbitalZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + orbitalOffsetX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + orbitalOffsetY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + orbitalOffsetZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + radial: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + speedModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + InheritVelocityModule: + enabled: 0 + m_Mode: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + LifetimeByEmitterSpeedModule: + enabled: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.8 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.2 + inSlope: -0.8 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Range: {x: 0, y: 1} + ForceModule: + enabled: 1 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: -9.8 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + inWorldSpace: 1 + randomizePerFrame: 0 + ExternalForcesModule: + serializedVersion: 2 + enabled: 0 + multiplierCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + influenceFilter: 0 + influenceMask: + serializedVersion: 2 + m_Bits: 4294967295 + influenceList: [] + ClampVelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + magnitude: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxis: 0 + inWorldSpace: 0 + multiplyDragByParticleSize: 1 + multiplyDragByParticleVelocity: 1 + dampen: 0 + drag: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + NoiseModule: + enabled: 0 + strength: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + frequency: 0.5 + damping: 1 + octaves: 1 + octaveMultiplier: 0.5 + octaveScale: 2 + quality: 2 + scrollSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + remap: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapEnabled: 0 + positionAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rotationAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + sizeAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + SizeBySpeedModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + range: {x: 0, y: 1} + separateAxes: 0 + RotationBySpeedModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + 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 + minGradient: + 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 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + serializedVersion: 4 + type: 0 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 1 + m_Planes: [] + m_Dampen: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + m_Bounce: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_EnergyLossOnCollision: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minKillSpeed: 0 + maxKillSpeed: 10000 + radiusScale: 1 + collidesWith: + serializedVersion: 2 + m_Bits: 4294967295 + maxCollisionShapes: 256 + quality: 0 + voxelSize: 0.5 + collisionMessages: 0 + collidesWithDynamic: 1 + interiorCollisions: 0 + TriggerModule: + enabled: 0 + serializedVersion: 2 + inside: 1 + outside: 0 + enter: 0 + exit: 0 + colliderQueryMode: 0 + radiusScale: 1 + primitives: [] + SubModule: + serializedVersion: 2 + enabled: 0 + subEmitters: + - serializedVersion: 3 + emitter: {fileID: 0} + type: 0 + properties: 0 + emitProbability: 1 + LightsModule: + enabled: 0 + ratio: 0 + light: {fileID: 0} + randomDistribution: 1 + color: 1 + range: 1 + intensity: 1 + rangeCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + intensityCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + maxLights: 20 + TrailModule: + enabled: 0 + mode: 0 + ratio: 1 + lifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minVertexDistance: 0.2 + textureMode: 0 + ribbonCount: 1 + shadowBias: 0.5 + worldSpace: 0 + dieWithParticles: 1 + sizeAffectsWidth: 1 + sizeAffectsLifetime: 0 + inheritParticleColor: 1 + generateLightingData: 0 + splitSubEmitterRibbons: 0 + attachRibbonsToTransform: 0 + colorOverLifetime: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + 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 + minGradient: + 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 + widthOverTrail: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + 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: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorOverTrail: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + 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 + minGradient: + 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 + CustomDataModule: + enabled: 0 + mode0: 0 + vectorComponentCount0: 4 + color0: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + 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 + minGradient: + 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 + colorLabel0: Color + vector0_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + vectorLabel0_0: X + vector0_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + vectorLabel0_1: Y + vector0_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + vectorLabel0_2: Z + vector0_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + vectorLabel0_3: W + mode1: 0 + vectorComponentCount1: 4 + color1: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + 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 + minGradient: + 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 + colorLabel1: Color + vector1_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + vectorLabel1_0: X + vector1_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + vectorLabel1_1: Y + vector1_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + vectorLabel1_2: Z + vector1_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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 + vectorLabel1_3: W +--- !u!199 &670559717724737753 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 670559717724737759} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10301, 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_RenderMode: 0 + m_MeshDistribution: 0 + m_SortMode: 0 + m_MinParticleSize: 0 + m_MaxParticleSize: 0.5 + m_CameraVelocityScale: 0 + m_VelocityScale: 0 + m_LengthScale: 2 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_ShadowBias: 0 + m_RenderAlignment: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Flip: {x: 0, y: 0, z: 0} + m_UseCustomVertexStreams: 0 + m_EnableGPUInstancing: 1 + m_ApplyActiveColorSpace: 1 + m_AllowRoll: 1 + m_FreeformStretching: 0 + m_RotateWithStretchDirection: 1 + m_VertexStreams: 00010304 + m_Mesh: {fileID: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MeshWeighting: 1 + m_MeshWeighting1: 1 + m_MeshWeighting2: 1 + m_MeshWeighting3: 1 + m_MaskInteraction: 0 +--- !u!1 &670559717807210331 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 670559717807210308} + - component: {fileID: 670559717807210310} + - component: {fileID: 670559717807210309} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &670559717807210308 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 670559717807210331} + 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: 670559718557539513} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &670559717807210310 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 670559717807210331} + m_CullTransparentMesh: 1 +--- !u!114 &670559717807210309 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 670559717807210331} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.16862746, g: 0.16862746, b: 0.16862746, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &670559718557539512 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 670559718557539513} + - component: {fileID: 670559718557539494} + - component: {fileID: 670559718557539493} + - component: {fileID: 670559718557539492} + - component: {fileID: 670559718557539515} + - component: {fileID: 670559718557539514} + m_Layer: 5 + m_Name: "\uF702UI Canvas" + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &670559718557539513 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 670559718557539512} + m_LocalRotation: {x: 0, y: 1, z: 0, w: 0} + m_LocalPosition: {x: 0, y: 0, z: 0.0638} + m_LocalScale: {x: 0.0021239999, y: 0.0021239999, z: 0.0021239999} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 670559717807210308} + - {fileID: 670559718933509770} + m_Father: {fileID: 5278684167267454861} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0.0002, y: -0.0508} + m_SizeDelta: {x: 42.1, y: 20.3} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!223 &670559718557539494 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 670559718557539512} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &670559718557539493 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 670559718557539512} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 10 + m_PresetInfoIsWorld: 1 +--- !u!114 &670559718557539492 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 670559718557539512} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 55 +--- !u!114 &670559718557539515 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 670559718557539512} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7951c64acb0fa62458bf30a60089fe2d, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 0 + m_CheckFor2DOcclusion: 0 + m_CheckFor3DOcclusion: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 55 + m_RaycastTriggerInteraction: 1 +--- !u!114 &670559718557539514 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 670559718557539512} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ba6ff5e7c92519444bc2a7ca46558963, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Text: {fileID: 670559718933509771} +--- !u!1 &670559718933509769 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 670559718933509770} + - component: {fileID: 670559718933509812} + - component: {fileID: 670559718933509771} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &670559718933509770 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 670559718933509769} + 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: 670559718557539513} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &670559718933509812 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 670559718933509769} + m_CullTransparentMesh: 1 +--- !u!114 &670559718933509771 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 670559718933509769} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 0 +--- !u!1 &670559718997833774 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 670559718997833775} + m_Layer: 0 + m_Name: Poke Interactions Sample + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &670559718997833775 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 670559718997833774} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.5, y: 1.13, z: -4.45} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5278684166855141785} + - {fileID: 5278684167143734386} + - {fileID: 5278684167267454861} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &670559717111966434 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 670559718997833775} + m_Modifications: + - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_LocalPosition.x + value: -0.5 + objectReference: {fileID: 0} + - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_LocalPosition.y + value: 0.0768 + objectReference: {fileID: 0} + - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_LocalPosition.z + value: 0.091 + objectReference: {fileID: 0} + - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4922582553321831162, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_Name + value: Push Button + objectReference: {fileID: 0} + - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 670559718557539514} + - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: IncrementText + objectReference: {fileID: 0} + - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: UnityEngine.XR.Interaction.Toolkit.Samples.StarterAssets.IncrementUIText, + Unity.XR.Interaction.Toolkit.Samples.StarterAssets + objectReference: {fileID: 0} + - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} +--- !u!4 &5278684167267454861 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + m_PrefabInstance: {fileID: 670559717111966434} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &670559717130836253 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 670559718997833775} + m_Modifications: + - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_LocalPosition.x + value: 0.028 + objectReference: {fileID: 0} + - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_LocalPosition.y + value: 0.0768 + objectReference: {fileID: 0} + - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_LocalPosition.z + value: 0.091 + objectReference: {fileID: 0} + - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4922582553321831162, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_Name + value: Push Button + objectReference: {fileID: 0} + - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 670559717130836248} + - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: Play + objectReference: {fileID: 0} + - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: UnityEngine.AudioSource, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgument + value: + objectReference: {fileID: 0} + - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} +--- !u!4 &5278684167143734386 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + m_PrefabInstance: {fileID: 670559717130836253} + m_PrefabAsset: {fileID: 0} +--- !u!1 &5557099179639923687 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 4922582553321831162, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + m_PrefabInstance: {fileID: 670559717130836253} + m_PrefabAsset: {fileID: 0} +--- !u!82 &670559717130836248 +AudioSource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5557099179639923687} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 8300000, guid: 16fba6d30ed741d4a9fdd6e79ee2f3ac, type: 3} + m_PlayOnAwake: 0 + 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_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_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 &670559718849154294 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 670559718997833775} + m_Modifications: + - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_LocalPosition.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_LocalPosition.y + value: 0.0768 + objectReference: {fileID: 0} + - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_LocalPosition.z + value: 0.091 + objectReference: {fileID: 0} + - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4922582553321831162, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_Name + value: Push Button + objectReference: {fileID: 0} + - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_SelectExited.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_SelectExited.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_SelectExited.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 670559717724737754} + - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 670559717724737754} + - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_SelectExited.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_SelectExited.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: Stop + objectReference: {fileID: 0} + - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: Play + objectReference: {fileID: 0} + - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_SelectExited.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: UnityEngine.ParticleSystem, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: UnityEngine.ParticleSystem, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_BoolArgument + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_SelectExited.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 5419331889293473514, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + propertyPath: m_SelectEntered.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} +--- !u!4 &5278684166855141785 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4616165200164398447, guid: 76f3439a0ae796e4b81bee3f91f888ee, type: 3} + m_PrefabInstance: {fileID: 670559718849154294} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Poke Interactions Sample.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Poke Interactions Sample.prefab.meta new file mode 100644 index 00000000..6876bb3a --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Poke Interactions Sample.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 88246f8e9c3765d49be8da34eca3c630 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Teleport.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Teleport.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Teleport.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Teleport.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Snapping Teleport Anchor.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Snap Teleport Anchor.prefab similarity index 62% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Snapping Teleport Anchor.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Snap Teleport Anchor.prefab index f8add975..51b39198 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Snapping Teleport Anchor.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Snap Teleport Anchor.prefab @@ -135,8 +135,78 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 7e2f4617667341945b5a7756e14b62d0, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!23 &1208746707607620209 stripped +MeshRenderer: + m_CorrespondingSourceObject: {fileID: 4368389211439169982, guid: fad94b617f0540568dbf4c9c4011248c, type: 3} + m_PrefabInstance: {fileID: 3195856363542219727} + m_PrefabAsset: {fileID: 0} --- !u!4 &6707876468356395517 stripped Transform: m_CorrespondingSourceObject: {fileID: 8164705571879959090, guid: fad94b617f0540568dbf4c9c4011248c, type: 3} m_PrefabInstance: {fileID: 3195856363542219727} m_PrefabAsset: {fileID: 0} +--- !u!1001 &3444410858110733116 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 6707876468356395517} + m_Modifications: + - target: {fileID: 3774509235512974894, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_Name + value: Interaction Affordance + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalPosition.x + value: -6.4 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalPosition.z + value: -6.1450005 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalRotation.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalRotation.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5258331117553129771, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7396278978564332023, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_Renderer + value: + objectReference: {fileID: 1208746707607620209} + - target: {fileID: 8634317094661461186, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} + propertyPath: m_InteractableSource + value: + objectReference: {fileID: 812628894447230767} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: eb9104ef66b7305468adb3697fdeed5e, type: 3} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Snapping Teleport Anchor.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Snap Teleport Anchor.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Snapping Teleport Anchor.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Snap Teleport Anchor.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Teleport Anchor.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Teleport Anchor.prefab similarity index 90% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Teleport Anchor.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Teleport Anchor.prefab index 6a9e1393..3d6826ae 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Teleport Anchor.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Teleport Anchor.prefab @@ -48,9 +48,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_InteractionManager: {fileID: 0} m_Colliders: [] - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 2147483648 m_InteractionLayers: m_Bits: 2147483648 m_DistanceCalculationMode: 1 @@ -109,33 +106,6 @@ MonoBehaviour: 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 @@ -208,7 +178,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: 11cd62256b1d470f922b2c8e6446cc77, type: 3} + - {fileID: 2100000, guid: fd3c5d8fce991e04f9c11109dde95b3b, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Teleport Anchor.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Teleport Anchor.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Teleport Anchor.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Teleport Anchor.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Teleport Area.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Teleport Area.prefab similarity index 88% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Teleport Area.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Teleport Area.prefab index 40d63f86..76b651be 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Teleport Area.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Teleport Area.prefab @@ -48,9 +48,6 @@ MonoBehaviour: m_InteractionManager: {fileID: 0} m_Colliders: - {fileID: 4489918388059320994} - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 m_InteractionLayers: m_Bits: 2147483648 m_DistanceCalculationMode: 1 @@ -109,33 +106,6 @@ MonoBehaviour: 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: 1 @@ -207,7 +177,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: 11cd62256b1d470f922b2c8e6446cc77, type: 3} + - {fileID: 2100000, guid: be1e10ce8a6f8cc4fb08d11c7f722469, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Teleport Area.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Teleport Area.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Teleport Area.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Teleport/Teleport Area.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Teleportation Environment.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Teleportation Environment.prefab similarity index 98% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Teleportation Environment.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Teleportation Environment.prefab index 6239b306..120a8c7a 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Teleportation Environment.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Teleportation Environment.prefab @@ -99,7 +99,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 5561349426305759274, guid: f077c919501a44778a0c2edb6eb1a54a, type: 3} + - {fileID: 2100000, guid: bbb56ac3cf3c61a46ab3887c0fdbda8f, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -141,6 +141,10 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 1565887663814566041} m_Modifications: + - target: {fileID: 306423734865422085, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 830d28b607e09a2479e2005c2eb5c75e, type: 2} - target: {fileID: 4266640295717640279, guid: beb4e2871579447497fe41dfb108e2cd, type: 3} propertyPath: m_Name value: Teleport Area diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Teleportation Environment.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Teleportation Environment.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/Teleportation Environment.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/Teleportation Environment.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI Sample.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI Sample.prefab similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI Sample.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI Sample.prefab diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI Sample.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI Sample.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI Sample.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI Sample.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/Dropdown.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/Dropdown.prefab similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/Dropdown.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/Dropdown.prefab diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/Dropdown.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/Dropdown.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/Dropdown.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/Dropdown.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/Icon Button.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/Icon Button.prefab similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/Icon Button.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/Icon Button.prefab diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/Icon Button.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/Icon Button.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/Icon Button.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/Icon Button.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/Icon Toggle.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/Icon Toggle.prefab similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/Icon Toggle.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/Icon Toggle.prefab diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/Icon Toggle.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/Icon Toggle.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/Icon Toggle.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/Icon Toggle.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/Interactive Controls.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/Interactive Controls.prefab similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/Interactive Controls.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/Interactive Controls.prefab diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/Interactive Controls.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/Interactive Controls.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/Interactive Controls.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/Interactive Controls.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/MinMaxSlider.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/MinMaxSlider.prefab similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/MinMaxSlider.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/MinMaxSlider.prefab diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/MinMaxSlider.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/MinMaxSlider.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/MinMaxSlider.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/MinMaxSlider.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/ModalSingleButton.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/ModalSingleButton.prefab similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/ModalSingleButton.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/ModalSingleButton.prefab diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/ModalSingleButton.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/ModalSingleButton.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/ModalSingleButton.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/ModalSingleButton.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/Scroll UI Sample.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/Scroll UI Sample.prefab similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/Scroll UI Sample.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/Scroll UI Sample.prefab diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/Scroll UI Sample.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/Scroll UI Sample.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/Scroll UI Sample.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/Scroll UI Sample.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/Text Toggle.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/Text Toggle.prefab similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/Text Toggle.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/Text Toggle.prefab diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/Text Toggle.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/Text Toggle.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/Text Toggle.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/Text Toggle.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/TextButton.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/TextButton.prefab similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/TextButton.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/TextButton.prefab diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/TextButton.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/TextButton.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Prefabs/UI/TextButton.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Prefabs/UI/TextButton.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Scripts.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Scripts.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Scripts.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Scripts.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Scripts/IncrementUIText.cs b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Scripts/IncrementUIText.cs similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Scripts/IncrementUIText.cs rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Scripts/IncrementUIText.cs diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Scripts/IncrementUIText.cs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Scripts/IncrementUIText.cs.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Scripts/IncrementUIText.cs.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Scripts/IncrementUIText.cs.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Scripts/MultiAnchorTeleportReticle.cs b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Scripts/MultiAnchorTeleportReticle.cs new file mode 100644 index 00000000..86643c76 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Scripts/MultiAnchorTeleportReticle.cs @@ -0,0 +1,164 @@ +using UnityEngine.UI; +using UnityEngine.XR.Interaction.Toolkit.Interactables; +using UnityEngine.XR.Interaction.Toolkit.Interactables.Visuals; +using UnityEngine.XR.Interaction.Toolkit.Interactors.Visuals; +using UnityEngine.XR.Interaction.Toolkit.Locomotion.Teleportation; + +namespace UnityEngine.XR.Interaction.Toolkit.Samples.StarterAssets +{ + /// + /// A custom reticle for a that displays its progress towards evaluating + /// a destination anchor and an indicator pointing in the direction of the destination anchor. + /// + public class MultiAnchorTeleportReticle : MonoBehaviour, IXRInteractableCustomReticle + { + [SerializeField] + [Tooltip("Filled image that displays the progress towards evaluating a destination anchor.")] + Image m_TimerProgressFilledImage; + + /// + /// image that displays the progress towards evaluating a destination anchor. + /// + public Image timerProgressFilledImage + { + get => m_TimerProgressFilledImage; + set => m_TimerProgressFilledImage = value; + } + + [SerializeField] + [Tooltip("Object that is rotated about its Z axis to point at the destination anchor.")] + GameObject m_DestinationIndicator; + + /// + /// Object that is rotated about its Z axis to point at the destination anchor. + /// + public GameObject destinationIndicator + { + get => m_DestinationIndicator; + set => m_DestinationIndicator = value; + } + + [SerializeField] + [Tooltip("Object that is rotated about its Z axis to point at the potential destination while still evaluating.")] + GameObject m_PotentialDestinationIndicator; + + /// + /// Object that is rotated about its Z axis to point at the potential destination while still evaluating. + /// + public GameObject potentialDestinationIndicator + { + get => m_PotentialDestinationIndicator; + set => m_PotentialDestinationIndicator = value; + } + + [SerializeField] + [Tooltip("The amount of time, in seconds, between updates to the indicator pointing at the potential destination.")] + float m_PotentialIndicatorUpdateFrequency = 0.1f; + + /// + /// The amount of time, in seconds, between updates to the indicator pointing at the potential destination. + /// + public float potentialIndicatorUpdateFrequency + { + get => m_PotentialIndicatorUpdateFrequency; + set => m_PotentialIndicatorUpdateFrequency = value; + } + + TeleportationMultiAnchorVolume m_AnchorVolume; + float m_LastPotentialIndicatorUpdateTime; + + /// + public void OnReticleAttached(XRBaseInteractable interactable, IXRCustomReticleProvider reticleProvider) + { + m_AnchorVolume = interactable as TeleportationMultiAnchorVolume; + m_PotentialDestinationIndicator.SetActive(false); + m_DestinationIndicator.SetActive(false); + m_TimerProgressFilledImage.type = Image.Type.Filled; + m_TimerProgressFilledImage.fillAmount = 0f; + if (m_AnchorVolume == null) + return; + + m_AnchorVolume.destinationAnchorChanged += OnDestinationAnchorChanged; + } + + /// + public void OnReticleDetaching() + { + if (m_AnchorVolume == null) + return; + + m_AnchorVolume.destinationAnchorChanged -= OnDestinationAnchorChanged; + m_AnchorVolume = null; + } + + /// + /// See . + /// + protected void Update() + { + if (m_AnchorVolume == null) + return; + + var destinationAnchor = m_AnchorVolume.destinationAnchor; + if (destinationAnchor != null) + { + PointAtTarget(m_DestinationIndicator.transform, destinationAnchor.position); + return; + } + + m_TimerProgressFilledImage.fillAmount = m_AnchorVolume.destinationEvaluationProgress; + if (Time.time - m_LastPotentialIndicatorUpdateTime >= m_PotentialIndicatorUpdateFrequency) + UpdatePotentialDestinationIndicator(); + } + + void UpdatePotentialDestinationIndicator() + { + m_LastPotentialIndicatorUpdateTime = Time.time; + if (!m_AnchorVolume.destinationEvaluationSettings.Value.pollForDestinationChange) + { + m_PotentialDestinationIndicator.SetActive(false); + return; + } + + var potentialDestinationIndex = m_AnchorVolume.destinationEvaluationFilter.GetDestinationAnchorIndex(m_AnchorVolume); + var anchors = m_AnchorVolume.anchorTransforms; + if (potentialDestinationIndex < 0 || potentialDestinationIndex >= anchors.Count) + { + m_PotentialDestinationIndicator.SetActive(false); + return; + } + + var potentialDestination = anchors[potentialDestinationIndex]; + if (potentialDestination == null) + { + m_PotentialDestinationIndicator.SetActive(false); + return; + } + + m_PotentialDestinationIndicator.SetActive(true); + PointAtTarget(m_PotentialDestinationIndicator.transform, potentialDestination.position); + } + + void OnDestinationAnchorChanged(TeleportationMultiAnchorVolume anchorVolume) + { + var destinationAnchor = anchorVolume.destinationAnchor; + if (destinationAnchor != null) + { + m_TimerProgressFilledImage.fillAmount = 1f; + m_PotentialDestinationIndicator.SetActive(false); + m_DestinationIndicator.SetActive(true); + PointAtTarget(m_DestinationIndicator.transform, destinationAnchor.position); + } + else + { + m_TimerProgressFilledImage.fillAmount = 0f; + m_DestinationIndicator.SetActive(false); + } + } + + static void PointAtTarget(Transform indicatorTransform, Vector3 targetPosition) + { + indicatorTransform.rotation = Quaternion.LookRotation(indicatorTransform.forward, targetPosition - indicatorTransform.position); + } + } +} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Scripts/XRDeviceSimulatorUI.cs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Scripts/MultiAnchorTeleportReticle.cs.meta similarity index 83% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Scripts/XRDeviceSimulatorUI.cs.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Scripts/MultiAnchorTeleportReticle.cs.meta index 5306c715..2967af1f 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Scripts/XRDeviceSimulatorUI.cs.meta +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Scripts/MultiAnchorTeleportReticle.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: e8b922481d9264546b97958b2c7cf0a0 +guid: e001d3dc91354f8f8c590b4e1d1d3da9 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Settings.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Settings.meta new file mode 100644 index 00000000..f7170c56 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Settings.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6a8d03fff18a47f4fa22d3d84425d0ed +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Settings/GazeTeleportAnchorFilter.asset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Settings/GazeTeleportAnchorFilter.asset new file mode 100644 index 00000000..baff5692 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Settings/GazeTeleportAnchorFilter.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78420fc4ced962da97dfc51346eef2d2064f5f008f4083d95f11741976771b7a +size 1761 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Settings/GazeTeleportAnchorFilter.asset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Settings/GazeTeleportAnchorFilter.asset.meta new file mode 100644 index 00000000..706b404b --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Settings/GazeTeleportAnchorFilter.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 14af1242b4be8e2458dd5bee35c06ae5 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Settings/TeleportVolumeDestinationSettings.asset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Settings/TeleportVolumeDestinationSettings.asset new file mode 100644 index 00000000..3a857d82 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Settings/TeleportVolumeDestinationSettings.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00e11305c322d390d7383e0008d0361bbd737341b6df1028a80c4fda6349eb99 +size 715 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Settings/TeleportVolumeDestinationSettings.asset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Settings/TeleportVolumeDestinationSettings.asset.meta new file mode 100644 index 00000000..a1d21e09 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Settings/TeleportVolumeDestinationSettings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8d66c9762e1587643a1164368c8a2c58 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Sprites.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Sprites.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Sprites/Asset.png b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/Asset.png similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Sprites/Asset.png rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/Asset.png diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Sprites/Asset.png.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/Asset.png.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Sprites/Asset.png.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/Asset.png.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Sprites/Checkmark.png b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/Checkmark.png similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Sprites/Checkmark.png rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/Checkmark.png diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Sprites/Checkmark.png.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/Checkmark.png.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Sprites/Checkmark.png.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/Checkmark.png.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/Circle_60x60 Outline 4.png b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/Circle_60x60 Outline 4.png new file mode 100644 index 00000000..057dca14 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/Circle_60x60 Outline 4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c9604d852305595e1c82f12451f64ebc6a2c9d8f7a7add09094bab9e7428d21 +size 4796 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/MouseR.png.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/Circle_60x60 Outline 4.png.meta similarity index 98% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/MouseR.png.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/Circle_60x60 Outline 4.png.meta index f9fc2b6e..4a2b6ad3 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/Mouse/MouseR.png.meta +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/Circle_60x60 Outline 4.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 14e910c1fb9c7514a8106ffd25f1d892 +guid: 2f8349570a152884fb6cf7ebdc8c18b3 TextureImporter: internalIDToNameTable: [] externalObjects: {} @@ -38,7 +38,7 @@ TextureImporter: mipBias: 0 wrapU: 1 wrapV: 1 - wrapW: 1 + wrapW: 0 nPOTScale: 0 lightmap: 0 compressionQuality: 50 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Sprites/Circle_60x60_Horizontal.png b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/Circle_60x60_Horizontal.png similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Sprites/Circle_60x60_Horizontal.png rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/Circle_60x60_Horizontal.png diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Sprites/Circle_60x60_Horizontal.png.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/Circle_60x60_Horizontal.png.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Sprites/Circle_60x60_Horizontal.png.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/Circle_60x60_Horizontal.png.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Sprites/Forward.png b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/Forward.png similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Sprites/Forward.png rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/Forward.png diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Sprites/Forward.png.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/Forward.png.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Sprites/Forward.png.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/Forward.png.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/LegibilityMask.png b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/LegibilityMask.png new file mode 100644 index 00000000..2e0217f9 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/LegibilityMask.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95530547506c0c8a54b84ba131a4eb384c257fb9cb555a087fa3445af42f3050 +size 532145 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/HMD.png.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/LegibilityMask.png.meta similarity index 96% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/HMD.png.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/LegibilityMask.png.meta index f85dc620..0a8fa2db 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/HMD.png.meta +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/LegibilityMask.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 4eb43321e418951499417cda6141b31a +guid: a85d80c1edb5d2f458d42e79f78055b9 TextureImporter: internalIDToNameTable: [] externalObjects: {} @@ -48,7 +48,7 @@ TextureImporter: alignment: 0 spritePivot: {x: 0.5, y: 0.5} spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteBorder: {x: 712, y: 711, z: 712, w: 711} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 alphaIsTransparency: 1 @@ -63,7 +63,7 @@ TextureImporter: textureFormatSet: 0 ignorePngGamma: 0 applyGammaDecoding: 0 - cookieLightType: 1 + cookieLightType: 0 platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Sprites/Round Radius 4 Outline.png b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/Round Radius 4 Outline.png similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Sprites/Round Radius 4 Outline.png rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/Round Radius 4 Outline.png diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Sprites/Round Radius 4 Outline.png.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/Round Radius 4 Outline.png.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Sprites/Round Radius 4 Outline.png.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/Round Radius 4 Outline.png.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Sprites/Round Radius 4.png b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/Round Radius 4.png similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Sprites/Round Radius 4.png rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/Round Radius 4.png diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Sprites/Round Radius 4.png.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/Round Radius 4.png.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/DemoSceneAssets/Sprites/Round Radius 4.png.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Sprites/Round Radius 4.png.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Textures.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Textures.meta new file mode 100644 index 00000000..403b4cfa --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Textures.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 77dbd9eba08ae3342ae6c444454ddded +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Textures/Concrete_Albedo.tif b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Textures/Concrete_Albedo.tif new file mode 100644 index 0000000000000000000000000000000000000000..2e93426c47a88a978751e4490a4fe1ab80546331 GIT binary patch literal 2220452 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�xS<;DU( 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

7UrZF4F~Z zLAM7q%{kKzjNHs;{vkjRQYS*ZI~*O?xr-ICyfYO3GtOP3Cg7sQ^x2mvj3Ptc&;Q3V zp(8HMwm(iWDb$RzVj;5rPZ!^;xugP2T;Arj^P*ss-yrW#n2XJRLXQyuNRj4)?pErI z2#pcVR)~~yX-iEt^OIShr0}qr3D|L~RZ%B1{LMkk%k})`qb{Qsb>vTN7oC{ecsl|c z|Ma6NwARRGRMc~1g}l)2j4VYR-7fFadj~CVC9K%ltJ+@0jhKCg%1xobUFdpN6`Wzd z;WXzOnraUCt)$hkT~r_>c~miQNm`ACmh~Q&jjhD+s5=_PMJr6-`6&-SlD#Vxs_7zZDO*-P&0mDPjdqFOL(Eb=7ux+*?3 zPX)RuKg$H&2`FB-f;o-@0G zf&ynCX!+j2GSx?@m5`@)k%gvvd8J+lme6{i0*d zQ#g+q*E04UR$YM6dGpmjNQPcdJ6qu+Kb=OjIHbr z+=D2vG5tu4`7rl__r>x^O8HezZ9Gq<59uxMve$OOM;g6d2UnvpDKyOG{g5j|%IwLo zxt|7r6tU+P+VuTjiVfKA8TmnsN^t!(rhTB@IIhbj&bJ+_G8)>YT{G#4^Ee8Z#@`vr zm-nBy%yY{xKLWk3V;H7#Veu3SZmS91GHXr2`TY?{Y{o*7$88)7cyU7az5+2I&PIGg zTrB^!HO`WO=KyT3YIo(D(U9g|el)sq($b=Z@XGy6&BWA|mF0?f_swA~0#b+K)K#bX z1&42QNVugX4yorJb&NI&+?>epDX?e;s)qmgGv(A`V1OQ^^t}AC)EWGTo?G8*ha^W3o zB~!)-Y*&?s17=+1sw!FV)_!n3R1qDn{k*XfCnR4PpL71TXcZxp{;#{1}~aK(wH z+n~j+hQ0VZMCB;~_sJWEg%6?#ueQ8;OmY>rZutJkn%I|*^B*4DrOm z+E>Q-#X%zDbL)6&Lyyab$lQg?K3Wa~x04&R%u6%_LX&OC_AC{ps9n6@RfhLEX*EZy zn!jpp(WJ*l1}c1|JgaJv$?4KK8YgtCj%shd6%%{n>7_I66DT=N_NQFUM~aKg6^Op# zZ1qsd`SQiMA-jIKp`uT$0@TdSNBvaot$MX`$6uupMxV0$f+Kv!|5H}g`D9H#IJW$b zqo1>m{pQp(pK>}Aff6V$=_%B9j#fw4s~nga=er@GVR>f#N3+@V_wrxFjK(|SS& zCF6FEfm~}rw>Lz+goSpdn#(}^4#eQ~6Z#*;0nN38CbGy&O$sxfa@$8rH@@H$l2?ew zv{&@A(b(9upq_GLJEOFG?U038_fJdD=7wZV|7()jf%238?qon%Rl_Wk_*vf1yOwDp23~L zlZ;*9(|+|LV0NwOgH#afwjkGJB>0(Ag_(J8b$G&D(|N zQO*l~=*%e-vc*!Eph+dlI*u@qr^@o`GBaKFHACn5Ss%wq4&b!^Pq8D0FcmYPd$UG@ zQhJyAX-1l>Lh~(oC+PVMjQsBU+z20+3h$P|csIY!yYiz@%pl2lbjb;;M%74Ou~{>+ z*pVWKpEx_W;~&SEJGXAf0UfUQpUaFReat^G*H`~W5PW!cpV9z$&)|fs>^6Zv0({+% zF5P?m{nss!%(A-PI=gbSqZ4;&$66BLp_v>}X%vnRLZhYMd^PI?fevDc|Fp;8U?89* z^5fUfeK3aRFY;qWnh#n8oPRU5Hwkx$=?5}Jae@LiF^>O*0`lK}!$9Y9ovIP>feXdQ z|2uKBdz%krgV&l9);Dfmx%HlW;-B~109Z^Ti>x0o-b29|f3XfuX#R$Cyp)@ie_y15 zkNRnVI{Y~DPm}f5o4&VOJHMfH+UH*znZI?*0IbN}*Lr82JC7H?$I06B+^8M@X+7Y3 zA^9tsXSSyaXa0%06{7ZdI_+1?_oz2PIw^37fbH$Jv+4XqNwg4bgLD1w?HLF>+oV$0 zF7RTj7jJRKbzmRz>>&i;hU1YSD;yI=US4hc%b25VgHU-03G66N$mCV#tL|y<130oI zO!Lym$w#yR=e=q+PFX~tShSN{uEtdshtdIpaHNt}=Y9skM!aL}c))I93^rjpsEnqj z=Ce>C5`<*btuDAnm!y&eGfIYRQ~JvTe3Bx0dryp~swp#BQN^D~qMg`;fz4=JoU$lP zvG(f(%jzmgs<-$nQ@D4KH+S)<3Xq6|swFG{fGSPiZ6B~%pD3wv>D+VA=^5jlYcCBI zX9HvMYftgo-4fPHfs2#RDu<`dIQ^f^Ebl*L$!$G9az&-b(+GeuI`KjpKB4Cc>ZIHud&10 zZnvruQ5{b(9K$5W3stW8S0ZB9?ZZfxcnfq`-S$_+AU|G?V*gu0@tm@%4ABI5Yx(Y1O)FIGuH9jgMXvj)du0y)BFZoW3mH zyw8QSz(5*PM+kbob#uoB;9m|eb`4&K5kH}mO5T1pcWZsHO0X_3?OSwp(sNOe6|!=@ zIL${^UAlV9VZ9%i&`FpMg@d$n!ca_Ac_62O8pPwH+ikvd6)Tl4Kk!KS>I9>6Xt;ZX z0M$yc7?H?Ji!XV|!0Ao*e41LLWYqc!jTQ|B27k{yhde;>3^vYXGk4FSRr z`^x@{FnWDi!!;6aogMgD1hi!eMs;z^VFe|9rE3vXu9}2($>oC8(nrj(J16MmL+gCR zzC88EzW4x7{!h+W(`qvqPjQDrA3LL9-i)Ae~~P@ChObWeQ!kgmCam+3PtoC zp||;h{hV<)0KoEni7p8|+IFG+rifUFegYtHiyI^ivV*J|r|0oI8 zm`I-N09eH=Ft}%``~fVHKB;H?kVz{EjCpmx|1-87Ht1AdXN&1A9mb%Hm|l zl_23G!w?SbAcSiK6Q}b1V*}~Ja+P7U$8Elupaa8kDO;M*Wh@fHaSm|W%NM_cjHkUj zET0pS7UUz)>2Vl}qrOuJi3^||>9DdfvnvwYcK*l5P{~TY7_TdQJZH_r(r&S)J9Cqr zzbbR|j?w*!tQ+vLo`Y1__5;9&9X;?R&icY{mK>ZDHt|JFXDO46cVi@aWCl4``g7A0 zJd5o<+Nf+uMsYePVgFaMatOC1%Qo35jWfWJNmym@`pLvq2ZDu4Kz4aykjtTR3mo44 zVQ&f*RjL$jsm>J{-L_%AlJ%&emdIEczH}vh)vi>G)q~SA-ZnaD)f17l$AU(E)t_bK zknGl*NyqwVpY1Bw-8BddNX9`_*VOYeTuiD*7X}&CIis5XvwdXc z6`s8{$P({vA{vCtVmYr=Ki*H7G&ZvKdnv}whWKZ7i(|}(zTmUNK$(nPY#%2R(3Uwa zVhxE)g>}(blCEz_Kb#5Q!Q+?eji$a-0aq4B(%OFY%Xj*Q+n@H93B?8LA-iEuE3Ep#iVOqKW*l-e�Pc|RV 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≀2y>s}K(!COh-&iyLh(NQz@s+8H& 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®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 z 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

}$+9j{=Z#ORDUK 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

Tby~h9(h7$_L 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

h-g~A&&k@ORw?ebT8TVJb@?*Tv*X7QPoNB? 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%0A(p$hA=mB> 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%0D$FHMG^@#y9`P{;Wy1$ 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�X)aoB-U}Ww@Fnz0RjyJlIbTaACi@&X#AXh#4P_dfCsHc&nWt2`VuQC+p&2U}~4Q(H-Gd^fHp z-5EKUkE@>$L#8Jq2~u1eUjOwR_ePo=Ek$r1@A>5 z)Onu7Dc7kf0OH%S{om}SYN^m0s7dyM@1;*Z>^sip6_Z@z1!amJfyUgujq){UwC{UBC(wxR_-ao!A1ss$pF1obTs z4YjX>kR{4x!P;T`Dsfv}p+0%S);C-As#{0S50bzA(E=4s1_SXAKP={}QWRWsbTOmE zU-)8c>`$-ENb8p2T2P+-9!Osp-b8h2Rl2u3)Xh-?6q`svB1Kr;g^4_cCw4(MZ)!I5 zco!Gj@8|mmSey1*Hy8K(Ky_eThFyMcc)hws$5&B%sbP1`(%zU2voc373!Yc)#5;z^ zDSLYq!z*A8ej{c<4zieYa#lv0K@UAd_HcWHqTrAFj32}_*+{B$bI-DkJOPm%D$G{5 zXBYJo-~P1fceXIwX}Osqvz(_|Yx_Z#*ACF84f9v!^%O-w$S0`bk(2Hgaj3Fd7!)T_ zgG^<&u9$jQ=IfWLrf{c|i;xj7UHb<7CTbfTmQp_%2}F!xqtf(+k4?}(#(tG-B-rri z4d6R#hYCSNBiG(m$ID&b>5APnxOPclb=@U<+SKqM<>xNvRfo~JDDPtZ3Mf$+B(_q} z)Se<2;qczCDz3Nj!sk?@^4K!IryULzgjyW;mGycQcp@j`><(-4mY4CPJWIU~p31kEl~Og5-ZPDRDRpeiEkmNO#D`KNhHe?*y87@VLa7RY zk2*qaOfQ-Q{(mvma&U5SX3`3Kd{$?uAr4<*x%V7hs zq864A%Vv6@{^hFf)5#gGH#baRaDNe>%fnPf_hGum$(s-Eor93|n?IAjF|D|X?z0MK z7$SLacH61uFZbIR0z6DX37)4lZ0m924{Yo33s3Fd{W{dzUY$y%qqbxa9_6^v^g(iy-()T{{Y-lwL{<%8g200-M}(4|7=l4;Ziic zKAbJ^+2AHHkG=QJ@JPv9H6Ugl-?vz1lV3><9x8ZD`q156WV!#WI7p}!_VGRx0d1!4 z>CMWAB|0BM)P}T`8d(*2QHp1)H6HaKH<-Dv_7DNd5Z%Pu zZcwsRUh-SkkSR&5U5j;yI5PJtn|*%h(bBHW$Ws>DQm#)hE}DAdJG0_w1wNiv^#Poe z_sUB>i=X4bKz~Jumc-`}`!*dAD8c}BxcG$XiM$I&0+qI76#aIi!h|_(GJgNVTh`k3 zr)$fVoc3sh9yy%;_LN&O_PfDdCE~ekerVrD7x$+m8iVv*_3ZxKf)vZSOh-lF)c*74 zuNI386a@TqM{Ze*(td1lM%`HzrQxKE6Nt9>Jl{u&b>rV*x6aG6#;wM9*VCN7GS05= zTlXazkZcy(;A#l&pKba+hfd$nsJ9TmQot;4srP^lT@gQ2(sQ~I9*$;_$hR=lSVQ@^ zxckA4bPoERmxhX=$(VZ91IUP-eZKl zp~o)N@u^lV(5`1cDTv?{2bJfSEuq7=$of1~@}$cWCW{yk0O@;};WZ-ek4m-_H}+V~ zo(>>x4^XoK)z#@NC`YZqv+2L&LUFX^e<~t7f$V8cHwjgdl%r&?G7{RyCZPp@(kv45 z6^80aP|2|>3QQJpvjChR_uek7ISBbI%TIsi%};6aPosMSvVA}`;YGgRHEdaiu7Rn< z5LvWXfNFnY8=`0`+SL z!6A>di|lreN3!&<9UJ`#*`yzWBsDxCm9O>%B4nLooGoC$3(ZY)eTMaX(g8DvY*IsQ zYql{d?NVEV;&BDyqNI!Z1w~Kb_+)|%JPUE4%`C1!R9lh~TF;W(>@p0ZFn@ zS0Zsy0-GiSvF9_z$2g=DsK8UetSoTz1$0vZM^D3aAcPFw7Ol^mVKme(Y5K{tFjXAk zvCPFIy!KSZJ*He?ZPDznIu^U=Jg&&8*Npp*tp0Uv9|2ViaJz<8(9?D?XNQ4KJkL^F z>&|(g( zv=*E*e7R_TMxEW6%X8%hW&mU~^kRWHo5Z6gFi0pMJP9}XSW-RKtnCNt{QBN=D-4$b zL3j3Yvb4Q@agE$qyeDS%BClS*bR?Lvu$&k5R`f&)pbGlqacI20U;ws-TtL)c<0LP10*9fso8ss#4pWKS3Uq=tUGhj**+*Ww-0{j6SI z)*@R8eWoXbR}xai>0+N_ZO(!26+F4dU#n~;w3hFcnh0#*%~4Ce2Jk93IrBCKQ+5>o zbpq){%hgjxYvUKub!GPwuZPgvEWimc~9m0o{*xl@&U z1sp*KW`}NA3mjxuRj~FCB{Ke{+WW0R8ByGTU+- zzkR9&1924jslcQh3#K?suWPF`;qp^TaS6)656^Gz*|EntMi+Fk{V4H9&_@xN8spFt zP(CXi_i~m0oVuv8^&EtS#^tuZILdz%(Mh_sr};j<{RejzCSm%?4A#bpDTNjdhX2RH zZC{8#<*p}T&^Bm|)Z#h8Wvxp^`IDTwLG-f&xl0SOW)Gh+(x#~0+6 z3}ZQ>FDkE4 zn-p*oPjSkkA(9dckiHPuPAqu4!ws1;+Q*3tK@~<{Uwex8wB>vu0fEW#gwr|MZ`yuZ zlCV!pLJflM5o8Rux+Q(O+)_xUA_}g0nS8P{5F>L}J4}V}LR$b!6F~IaeV=aMJ#vK~ z=XP`YdREzH^;_>1H2y$Q{@7ccDzmNVy6O$JS22_4A;%C@{X0xeQk9xDz?xPR7Pt!m z(~FzYk#dx~r!YV7e{_i+)cCml zkx;st7Npf%bZA3jGrs;kk&vnusieqc5zwpWa9Iw zDJKlK3~d!fNcGSEPZrwAhm|xg zpRSg#C1wZEXAeejmNsR_uM~(`R*}t~=e_ezaI(sz)O<<+Pr-!{?LtS%&hWU0@TE^^ zwft;-|IVv8)u$#OK9|jXc+b5MGx;vJyaD6uSK)Q=Sy>fVbu^!4!|5N*h4UI3{<|0f zuQig=^XvO(tyW|F+b)+-{z*~Ja(m^^Zp`H0!aAS(jI;7d_zNM73%HlE@7n;c52)?8 z?*q~=15YA9Xv@Y*OzLv1zzr;$YYxM_L(ECn#n{p{sWOsuNo<``2!d-4+<4?tlB6(D z^OP%OwSUi}7E-ol<$3aiA7%m7R_>Z<{VkKM2&vFC;W=QNbLsUeF=BA?qY%onmx`~~Po zkZW;`=tNMJ0Mr*zg(tQyP5X|cUaIKl$+}Q7Y&25;d+_UZcI+kZd)Lbgs*8eMa-a5H zst?N_U$j}~btk{aP>&#&<6u5yHjxAk#~>Gv-RzRCpe6CHoN>f(afuJ?sfo12q^wCm z8ettFW|hs^VRiOa+ynjk2W~CT1janXzCD2TkdU8Aih)wqH~-|1r-ZzzS4hw0#D0*l z!a$cC07(P0bDVZG6oRhJsJkd#lP#C4HP?yF4Nr(T!<^m=ba$WvWB2V7WDlR_c$~Db zB}3~3?pBy3v(*;7Qv5N8!%S$SeU(t8hHDAW6y>-+3l5ieWVP8tJ8!qpr{C3>lvM_D zemQU< zKGMxdnUcpnC%ugm{*q;M>7fvQ*HCHW<~S~um(`q#uc5a6u17yk>koL$CyM%g=9>f0 zs`i^=>XY&U1#fFQPu(?Rp0RG?&kK^on91ctm2fUSzvyYK`InKSH!Ky)-ga86($(PL|eY^#R>IG4|Y* zT!G*nHIVh>2CNx#PcgRPdQ$u1-Uu8)3eCNRXIz%HJ-5T+WhoU=r%e*4mbk=08aYb+MhF9{)t_N ze_HvSdgp+UM#(_Jf#HAhn-+Gd$($K=1Y#|I!+yd~83&z~8 z>=5kk0d4+`3-JyUYGEMU% zAj1)(ey)!J9&@X36Qf!5={}EDMCrAmUq|6&5$|`Zq5FqjjkE`GYaBq2HG8_6N!5Z? z%`)*9AwXrdT#RO`rZu!IBD*yKx)L&-Id0wtdVE>$u9jU|{6cJ11K{W1IX;Q5(ESi| z4w8({PQw{u1H#!kf1fk@fV65|{o#VeTM^zT$&kxx$K=!dH zdY-n}ON;;+!BMFocAz$;>Rs8Zla~2K-V8O+wdc>IW+!^xW5d{?;tk{2eCh zl`S4B*X>wLCO!q+6f)$J2IJ4q#u8CdAl(f+9_zTCqKO)jJ7dMPWx_;F9p5uqXvMu} z0I`qK=?86*t3xa^Maz`>9P`363I?{CDA!NLI!YV^(vxzTP_xZvg>+#95>?4b znvYg%Vpw8X;x%&&v^{upqE2(PuRLvZP3AOFk2jm-_rWh1WQhg3QoywS`=qv^TivI1 z16TNC)MppkTA%XkfcZMHT>zYNsqN5+u}7UxpZ4$xBzB+sEE)mL#`m16JiPValg92V z8)S7v7P{qR&PqjfPxmM9e%&Qv`{_|eAOW?!_^ofK!Dt{VOIIR`2K?L~&8KK`JfEB( zHWe($rjxo!7qs#L>nG%;qM)%YJhecIXyRUm(_UixU6?pA>TDoI!+7KJG+mu18WEcy^#n(Vyn-NkBx> zXk+=a8W^-EOV1@kB!7I}GxRsZl*0cFkymfjHEU-bIe{>_?BMA!RT1_!qoBF)P;_pA zrPc7_sC>w>Lv9xwglJMG9TMRHK1~C4j|@iiG;{e9wP>pFw$>9{_ox}*V>p^HaWbU3 z><#50qg(WCTdGW?g-+A&e!97r51MsQQ)jiLnx3*xOj=M+FMh-lT1q|klm)bxQ&g@3 z3`ifT>0-l^Bq(@%b8{dpBQDS8K1!ny&~x#)*320m$2_*9WZutJV8B33#e`n}l7>lq zrKMOsyGS;noG@hsW_6+c+}6^siwPcL*b(BDHaKu?o7YzAIt9XH@&mEk=3CIl4TPo# z9^@CJ?=2`%Mo9c!%4VL^{mQqopzt-r#gnX{9bS{se%vyB7yG_ux*%RITBqt?uV2Ln2zl6D& z;j7)6E{@$P3F-7wH`vwHC&ik=(n3AyNLHJ_%f|Dt9a?bYM`Wpjo&~$l1?2qj6Um9VeQyRV_mpS(` z0mHRq&@E85S7=-U=o~DMw>?x~*#t&kEWI+VVn@A@G#0jq43(WZ^YG@r>-|sQCF`^( z+2BTF*KZUpclYb%p|wrM+pisnpJsEO)VW0%kT&{I+r6m2_|7XsK-hd5LFu(nyp!F%J^X9HPNJw$=`QImU*TsH1Dk0_{1s?qw|M8^b*ZmFj$ya@FSSUOT( zh_@{1R^jHQJ<#N?s3~auC&$;%B)whIIMKYtVgxh=E|^0XMWVP3(2qyW<5I=5*khbt z`E3KQnkQ!!N%)=DEw|&ENUZM{+*^xczZ06w;=Z3ecf$YLfOB$wArkajlNr*D&Dp{} z3K+$rd>$}U9HM6q?G1uGT{SGa-+!#|2G>EA$w2Z~)P z@N*AKx8k>E*#wp$2wy~r`X5{@?@3QvPsRVS8o>`a)OKL8Z|Q-OD>uy zCQ(R(iFLOz{eHEd1N`^;H#o~zC#^uiX=zWT3D9+%MKQ5%qk}j$c%oN0V2mM$+|b9V%!co zct~~mvgyRLzlB)3F6E@Ylt2?4Q4g7@2JesewS&N3DQFuEUR?cQW;=PNIAncy?~`Zw z61ZMME9(B#db^d?smAInV{F2XIk6~5%^@XlmgqaHJQ$Xt2@a@(-Rw7=7hyKi^@!>P zhL2%9MO6RcjSRVoz?=K1sWnZM+P}SJMH6G9B_`W281Pwoc{=*V&~5Zm<1Mk$!xkYZ z=Xb5!y42TIw|^$fF<)I?_7kVkfDGisC6JEn{d=yeOl4V=IxvT~+H`V&8 zp^XP12l&!}1iP_jNNKR%hmAeas#%lVYTyI!VJ@+%erc+`Evo&6Fopq~;iNf_K#)wp zux^-hs)Q&dLZsZ+fjVw85pbWA7gPnG0(LdrB0of4A`xJ6vtZ4u618oej(s&5L1|2ch}(5DW+J>zz!y!GX1VYwPlr=l2#{9=pCrC zFehtj&Wst0*-Exi`dp1cjjTgYN$E!?;&Mkvs^^Z%c|$6d8UPve*luCdwx!j%hOuZ0 zDFl+6LN_H67PQY$O^w;8&U_vV9Fh?DU`50i9?4t0O!fKL-IWVbn^{itH)crnXnlkagsPhA8%+)nlU@J2=NEso=o$L$V-{GUrDWYh^uniUb(E% z{ao|vc1sb(M;NuGszdMM7{R?wldW+_=maJg(O~Ev|7F)1OMneqJK<+GgD<(5652oA zanjURn$9OSeQ)<&h@m=_=zf0Law3wHD$Xa3>A*Lt zz>R2_(4kI+&5+fp$1=$=6;E@?6vRILiLI5(Fo98Y;`1`n64_aiF#R3h!+Wid2d|CU zPA}N)dPtr5d-&9ncK+L?7l%xav^lx(o5u{um%bAniwM1q8Uc)aK0@O|zB@qOH8p>X z?2$|BsOt(?IAouqe zi@B_w`PN}*zkc%BodF9c5di`2Rez@$W+rG_1!x#hDIHKP38)&s0vH1YjB`EYd~t5^P@y z^AvTkRXq%CXD@)KSi!VqL3?#j9MhT_Kk^C*n&vVCtjj{?Gs#Jhdl)83`DeDX4|3hl z*r)n9<`cG?9E9mwDY)qB*@I5~tLQ(*RSRLtx14*T(sFz z@fs?M;j!^e=^d4|3Ktl_ni(BcK}JNJ6{la*>-|3zHaCFg?Kt8-E4D;qe6y{HuMTNV zqn~|fG+F7gLqJ(oBP&hv`mEd5rryU->Fw~M66bAav$w`iFF$kX%GhCK!Kxx9-V0_; zCY~BR(?e!Vm*_<1il4J(ZZB1*o?_UwD{)yT6L)jT z>Z$5fojPuG*)bA+n}}#yn|WE3I5U4@{^^0bf5g9rU^q(NxK7_G`XuZ>%BRB3iE(AL zKS@K1?(+r#ADoDOL7M}JB-+UGu|py00nTJ;-`dc-$z!mukVbwp@rWBR{vJ<_X56m1 z+NeyEDxozaERu)#A8n&{5;tdcZf34~`!D?ay-J_unb+eTerc1^uzSE_0{|DdTe@rC zfMz0=G)Yf2f;;f2v0qt1KUf;AVcNSsX@bW-pr;?SV8OjX8kFT^iZ)K0BEQUn*xkz- zQxlp3BUrH0Z&;09W8LAY`OFn6l?2zV5KoZnAJZTrri_vFk89IpePz(m*A?@$ zR<)gsI_BOAdgnd2^yJ?-a7y`=@g;|S*thys-|;o|nzeEU8Q%{`z~W>4v|tRfgveo7 z_TbJ$=N-ySWxf_7n&MhT8Y1m%IRGTqoEz19^(^tJ;st~Ri>cgiy~Fy%-OK`R9cz)c z8TG+w$6Fng^Y!WDhiU-r9E>TgYP@IKVeqUW#WQ$n{vcbN53$Y(=)(^L!De}yNuGrw zt2=y^zI&mD`=}d11`&y+iCHzoEO#9}tLQ#oqn?dV4(C;?>gkVnHyB!8`sj4xmUP~> zSVFb-=AJXKUgBGrj=UZYkj-kK9bzmEz?&vs^*^QAD-!08uRW@wxSiH$u%;%46K0Au z6jn4dG+=B`35)j?GoB$A!y}?6HNal;#MO!d8qB2wAK0RCqHf!ER)R?ar)>!Ap1x2y zdO?gh-v~;&q^HS!7a^%(+G{}=J5sdc<%z08;ASmqqRQqa`0i>mitOSc0kZL!$D5=H ze8g7*i{}cnA`I&pF_(6upazN)VKMazZ){&(@&@Zvi@lShb2Q*<^kSNLyJaz=O6!Wf zst*eXka}(k)b${WpHgT#sW&Wjw?@B`f1_I8^eaX?DZCZ@eQlZ?6ya0rVCPDNS~bcO*U!) z4DfIXDqc(pb40!~09n6^JhRS_@BS^1)EB~Av*C#$EpWQDigU;Rnj*( zua$yg(Z7bf`R)jl$dg;#PtIh$ZUpSHRI%iG>#gs^HF73GwqmYqg4J$RwRQUd#r{}* z7)!o3M8C&zdhch82AUrb(62e=smL+dmH1{00K;E$I^N?#V9s{31=l zIX_f5i~e(W_l8>p67dAvQ-=e}gJ#UC3xfBud`Fc9MwA5@(pnq-lrgeVb+oHWnsqW! zJ@MWHquu4+_NIClS%!}k3yd%=6G#FgmyqlSON-Po+b2$8X@U<&`%aDZCBu=8c*p}G za;5RLUsZn8nQE+t&f2ni$e5ntOLxqR5uDRtAe}4NCkHN#7!s zJN5`0=4o^y;1A&F_?87A!H54`7Y~cDFc@?wTc`T(`hREy^U1)oxu5G791e@S6rVMb5j4jF6KcgGQZXo(XcB3{>iat)Gvt(9DvsOeU_J;?Jt_Hqd{2`Bq^R3Kj zaX~p3|5fkQXFSZVdimHke)v`mup21Z zoiipneMjSobJL234DtiRhlfZu_;Vq?L7>i7cqn`Q8KaeUGo$dvz;Gu*$DpLIxZYhI zc^+t-?f@GHrda?7@KbI8cE|_i=n&=IuIcFOjnwK8$*griXZ259MdKf{D|(|Aveg8k zUVamqXrU;NuuI2Q*KO*U~A9h*YY4Gl(CflqWbq89pk^H?MVJ-$!izh32czsGtp`0$ad;i9ugz`Fc9zT0dmE zRpo)(328+2u{TliI=EH&9>VE=wbUri)19~ZLv1C+ZETVlSzWe}zuzX3TUwy%h*VH8 z)YNjEC%e;B8Wi^sm6uuIdE)$0PpCn0~mi1}h&}kw!w|bRgo12iYT|T7WIQ z<1=_y{#=u&m53#v8fL6|M6UglrB^K{k{~9LC0)^g*|=VPx}-Xc&v$q*P%WwVMWHR& zO*(t*_O$Xw|J8_>@H(-gi4P6aEB&XM8e*IxLQ>ZlyGxK_QG``VG8b>6qLWv}=C z{1%gMxx#DD^&E!pFXkWKO16^wdkF|B$$*uAvcUr4o)y_?Vy3(uiXW`^kM*M$e$t4K z&OOpVP1dTggs?bBD*q zavOiMXY7sVPxo_bgf_fdf@_=Qj2#-1&TcNM-c${sa%N)|b7N#B!05)qnlr6ulpTZ> z!Zld*cKS4xsJLHAWf_0*b-}Ga`&WG4-Rl zuP^xRR|K_p9a-92Zd)QgXDE*f?d6SZU0x%N(c?`lIF|J!B*4%;xa7|CGEgFCw*OIA z6ItG>SI%dX3r-hp+hJY)_Mm_G?j=G4SOqAS@85S$k6@4z zDph%(0=m!;H8DBzH0f>J;4kJEJENtirjbCa0)i1Qts04L2*R3yrY~dLgRHkXhp%cz zWhlTHwhvR^*p|-pTS6;D_^74Vv5fjJrI9aeJw(W4Ze@F$Z(zd2^+6L>FGA0%3mBt zZ0`g$s*BE;5M6gFw!ToCIog+XDFN0?;d&gq3eua*uVgqyq3=GIO7iZi*YQjqoq~}CC4hSd` z>^>w27)b!^|M2ksdqdDZ4D|cT`Cu>g-pJdrwZAnIg|cU|{D-VQD$75hro^e=N~m$s zt;g5aG@7(U2JyX2L4(dU8$}zfsUrpepM-LSh0c2BDp125uI4l%_C1T-Deg$77zW53 z9T@vXpowPM_RN8@T5zCFFdDiGoU$#eHgora5y)|M) z`z74nH2@Is+b@C0S^<_1sv(SCKZ_ zS$3^PCHt+(+tWa#pI6YMqO04E-}g@?UL5M|AXJ$@E{_e3nH=|#-aJ?{z%YN7`{y~@WT>!v-}(KED`YT(v4NktqpsnHWiK+F#%m)JU9t_E!!?KYO-brBcA z#J1tGL$*;{->I;_Lm^9@u@rs3=loP(IX*mlVoq}9TzjiT8b35y7|x_AbAlC{7kVlq zrgH4XTaRg!00YEek!`7$IuA$)wG!!MP^8Hji$(=UXDm^;o~N$=z73Tar(=A|NOnyj zPYOSl;EMfFt)IAz`GWd+1*TW?)CF?Lx8BXW`LqV~!hOl$Qc|M_s|8hcix|~(Nju)P!nMp25h9lX&r$ncYSEJyQAbXxYXSNg!s5aJ0=_7{ zcn}Y80wuMY6>i3%e!uHxs$hcq)AmL4E4N}3_0`x7xZ>Z&n+25Pk1HkD2o{AoGe^>R z%Sr*a>S6|(nzm-BHDaor^%X`th0}nZNLJUFu!_$c7o)Up1S`0rRUtOwOR-$F3e#6lPyho0Vhf=Akjphptm`$)AI178OzSOzU#E)j3HqCnV5~0d z-&xtnB}sM}3Cvaq|CQRnZ)7x3d7Lb!YYII_{oh^aL|lCYN}BO5A37qo(3KJ6#ht~V z{@+w090i@_rloSh4M?o`vXFCYKuQ*+n=^Qlu1m&NA(F8h5c^-A|3$f#F6m;a(v%k4 z)sq$}^*mE$$?l-q`f|YBw4gK>dKlonkM{e|apMU$RA zRG*!lat)Au#}$kaSxdOPu98es+3@p9iJyQPC+?&rH|?2ZOl@}SMn;Ku>ct?E=WwQM z{C3MEIWMogaIoU*VL8zmvy?mP82#;*c1zZZAR*4yQ3{lm;{X_-2#rcPi-IO=fE?*y3A6Tr62`Ab zPYEeES5Oo2(hI$*q)c~u#{JGq74_G-Dv?}IF@Y)rtl)00Nhl7jSFWWfnd&%o-YE$< zfotVKR(tGtb9NJ-xIQ?pxHgNeIK0ySuy;K>RtIullRu)N5HT^p47er4DAKm&{7Wn@hGfrldVrQGt7UW$?b%?y8a=Cd=1-8^OL|Hyt-_ zLG)k~GjrNMV~XD8`TcB6`S)dgx_jSsxv!iG{WC4aMgwZT06k8r_b)cz9_esfw>4H; zxT$QP>DC-ET9lEuk1HQ@liMlA*FvS}vEZehx)#VAyz2!n@fDph&?S0N(+?hWJG~6H zEzl`DI2KhDi-Nl-i2ZE~l7=FQr-6qnfd}b7w)l9fa!ahJvAHcKwWvE1sc(#Ndr#o* z5K*7n93hw(+d|P|rFQHDEea?5{n2Fkt!^cU3mGky8Hy z;nVCZ61nCHo7UOd7-@mK1_WLUjSCZ7Pzs>^EAdl^qP{GA3PP6ge(RGA<}SI;#J3 zeR|w3=wLe3iG>6M-1;|Mm$S5Q7RF-|96x!WGYS=v<3Usc(O8*#SM&cccxMnPowv+| z@cs}GNLtVD0v&UHN26W}Ge}SH_hDAniEG|do zDz6hs8Bfrf%0^9~rxnVPPi@tUa2X%>K}T}LC^;SeSB#YdQ<{^N&R&(+lG(%3i5N_1 z2nMlO;HW0^5!Ui(@4L6xRbZJ{bc^oGKBj!zJHGckVFh(K<{_%c=Mvg2ZQQYZI72KH zOy-w#pYgE zs9sQGwo+CS-tQHn`ntI195VilVsk1Lgx5tWCGr!0YUH08dC%S4@W>puxjP(`k$G%i zq&;I$$(|j7QaOEH6bT|}P*EC^e;oN(#TG5s(rcY5dpuci@&RL$_|C;TmB*TocK z&`)@>BY9iG75;GTT6?4z=PDNZl-7EwBP90Gb$5c@TH9dvAWQAPuC$u)uJSs5Ub2ivC?f?WfpNT z#i9f7{0{NNev5N*CbO)BlJw3J?8MF4h4TV|1aomZjG?C|jh>|a{;rzmj6p|oiKhiBNI>}h?whv9ayfTqY*h<^69+OD zKJ+Y{M#(LucwUo-e>-8(+Gzt|+T2soA4*fzDW2F8Ie%2r=3-vy6?j1w|6j?_Udb1Q zF2@;=0uFV+iQ6d;s>tZMTv29up!ks}m$O|Nf0VlqAGL_px)Sv1lUe3?KCalFe>20j zb~r!a8!2@kl*SbN4CJje?#cVXef^>&raH*`^uujmix);aFk$E^%M+!I>E4W*v6L1k z&D%Ao+=X1gQrP4+m*Lea^>T>nTV`o6UoriWdu<0d=-^47)B^{ua!iw1%9*Bo8gRbd zKzx(t3X#(mkeE^xO1d_xK!MxIA8n3We#?oiFlcN~cie}|l6e%KE7vX6!`o=b5ai+z zcR14NA)}r_`U<~Yc_&`iV4a}92C@^UeJF+)(7qryugl^)mseiB7VG-LJS7pzG4Vr< zk~H3=6so|eteO`z;VYoK!wCi$CS(;wd&=J1jpj?dQ?o+l%`&BI z+@86!yAj1cd6*jt>$?YxG2IzfRX}VK7r(4+|H^6L1a178-NEs9j)*N0RBG<;eU=( zl0o)(VSB0^5j7EReyanhx&yRSs0l8s$-m_mL2xnIDIS0RzF-IO*_(fFYyb`f5xRzg zgv0EJPxhpbP^1u0H*sL*_2*3h2P9s-@_2D0;UQT@WFd?GkNe;#!;^@ED~g+wJO%oH z|HS}1KYY18Jc~uaAqHD#W-%EB2da2%h0kk$K|s*z3IFl0Ou~aDo?!FxJ86K)2pf2e zY(^qr40^~4_MC5mc>JkBL@2>)Y~DZd>svj^jJJHd+-kJz%Z?sEJmh?o7G{z1Q1DD( zK~n*^<1NL}pDy*U#M-bxAST9q)BT5EZtX2FD&~}cz)j1%6&17ur%|zZ-KJ&Y<(-2h zc0Gedl$L;zWDx-+|5oo6n4oKa{Mf;@`$CLO|Cv{RbNrttd+z`n*7R;8$ZgXx}h<)IG=exMdnyrki!+zc9woC2aSm$_pEhXp=%Oa!7PS%OhZ-R?6K9eN*}S4|aZCMd*H}Nsraj zSkwl{)W-?d^n|o=-fn0NCa9?UD2TY3#iydXK0I6dT0bg_LxG};p6AOV{?GuB5w2K% zb3sqjoPz<-73JI-Tkh4=)m$!#7I(b<7EVKuU^3W>7U~GdlneTwCJy*xO(aH6{v1u*p&|xXaHn06f2C`G!&f> z`L;iyW}qG}E~Qd?nqWjbuaBD=F<8D12|U%>D?SV^#To1Avn~L{{W7N1q0fvV4*hOX zrI9=vv9X(B%cv%7cWb`NLH8Kd)GC1A&*49OcIbsp7&5qZuAJ5LHSB$J-VX;}zc{MP z1gvp4H^W4Lsk4iw9n7$7`l{Kn)Y&+-`8yqwR?sK&OHjzA)82$1A-^T7XnNt*6yf5Kk8i;! z7i!qPjClQD0kl>+n=TI@Nmr53doFUz%NQ|QK4U);wgQyjl9}#atU!$~C!A9S|J`?r zPgk}aNZn<^VE!W)j`RhXLx2#vUf`_^7JN!OBtl4okb$L~t}Hz*W_HQvqJ>&Tqy z{rq4nZyf2UVV{A7;+aspy%|W5LQmvHHZmdbkWHT_veH7$237x!IQ%XeP<-#^((P?m z{k^hEOYg#!J5Dxp9&qE;MS&EnT9;0N7s>*j+-|3fM^bL&^AI}$-QD7BJR17iX6__< zu2vnS3=?=DfN-2s1rwW(dUB=*CG8o(9A~T!op1!@nvQYpk`)@GQ za*$M~lngnVx*UXY&;nHERW_M9j6I7#{7CVdn(96`hH0(0^sdYKIpVo?>u>F__>4`; z+8CLsc$=BEc-6Dgz7>I=Ee2+9W=~C|W{+$J_=s~4cRBR}47uES--K-W9$>`pXJlTM+!GT?^@uZq2Wj&u3f z2qRrZ@;vmifK{s_MK8G7vuIQLroiX4lD8sLOwkrSSL;1ult_1q284<>S8JELpPEn# zybiP2Udo`(gK(jn%Q4^fhRrv6w)TtG@Ivc`(&TmcK+$)+chP_Nob^#IZv_uY?S%%1 z>^G&XrHnxLtI%w}XE~P%dLvx`4?Bjs#kNaws2;CccMH_V0oOGLG{!s3``2c#Gk9{~ z!fW#s{-?diLol0aq2TBD?g4WA zur#N7)JF|;&Yvq(${RHLPYK)&6dLZrPxpY{Dt|))*KY%qN~gM*B@_F(87MFb5X4A{ zi%QRftyZWJ-81-^z8L9laf6Td@}9o#-cm6{G}N?(eAIWmP`*1%^y`85tN0O>w&V9^i`y~nBW~V!bz8WJkXi~05 zvz!-G8-t9(idf^ZLphSpGwqRC%qPdjz2|pbU-=^wb<~E!93-&~kV^A~HUsrP2wpfi zw4x+eOAknLjhY-bS0J z2VCePl`~nDZ_OxJdqC8+3D%Z!XkcYQ6W(S-B1+HuzqK&_*l~QO4flZId-)h7sbMBR z61nNMo42%O0)8RCna^=1hq@Fwc$W|Qea||iBP@4gU7#vaoUDzP(uG@gue)np0V%Kf zG6j>BZ`D-EkRvJZiZ>vyUOphXc10Wn&gYrgb>*oqyQDSLNh4h?4;6f$4hzr; zlpjV)d(&)$;-pg0#@OhVfcWT;hKfC^zWEXVZgK9p2@oMkFiOqGnZ1fX@_AJ6?4m8( zlurmcWCrZZx6Tl%!}y+2Rk1{SK4tmw7mXu5Sy0_x0dnK~8 zoFYwZalQvmi9m^L!{{TYA-MWQC{oI+bt_nJEa5dPktH``l}l5Av;8pj%?Dmz!M?V1 ze_~xXH}SB92D)in(a7Z?f?vh$GSn-T$Paj4l-e=;8DaE`lyDc6$y;jXy$kFhUrXxWmf$u|53E}B~bdr_-Tyr<>Sq}?D1LEg) zKZA3|A_V*X4|lRDFjB{t5Tq4EIW@H&l{`&8)@E;yE#J;6fNv0L-;Oz@1^Tc2Uw2x~ z#wYRt0WDgxYmRNOU!MGL@a_6K;p;g;P!e7|G!MPmQ59rj@nnMRn zZ>x*ZJ2`o=dSgeAhCWQKDj+;LKuurxMDmpFo(9I_5ali8b!d8()x`33)Oa#niZJY9 zGH1IoCzn{|dgFL2=BQ@nG8~|SfvqskB%Zly%Nx;aPL=>1U`u1RmCG+!7I;d+Okh%T z_b-*Xmjs<e4g8X-K_4IXu9e)-TeQ78R< zc#kHozk_Q3K2<`^Oz)*|mT{V;VXQMEN)l){(o+If-XA>_8#Mbiv5!Vt@+R|k@|D;9 zr&UQsYSafHbachp%8W0s!Lu+X%4QQ4O_*O`_Il|MRs$4hxctNueI)=F2IsW~g9hVM zY+X%fX;FqlhjcN^z2kLcOxnZ5ggcp$*8JXdHjtQ1Ca$BG7X(o8O`{jzFJe<5Znu2A5HE6 z1l|&CzeA*H^_2Gl?V#PfP~sPcLm52$+w&4|7aos((9a z9WJ87s-g(YE=|(nZ;4~HzzNp?a#PRH5)qjOe}>Yd=-Io2^dy6o-ESNnbUyXGZY+IR zC+#c3g&c1;4hXe`(0e)4XHQ};_6RaQmT>5PfI%caJ=ufRY7r1lqN;4WI&9CJ#gpD& zJ0VPF%U|*c_8)twZSufZ|Bz1NYGkX?LUS@HtjIM`V{f-e9lP8l@D%G;@lK=1{ohIe zo`{eQybc=S_QyEul2dqJSWy0Ld)V952m4bpev-+6M6Qk#Obb^948;}EM#xoKV4rZ0 zqx8k04q?cHxQHIorQJ@X$!LIL3`iSQt{5bW3?5H_8 z(htdA4E@I`t?QV*hW?z0W_p*D8C94V*GHbz&10lITC+^NYe=)kN1AF*El^2|nnc_7 z8Y&p1I5Q(4{fKv9t?9B>!K=|Np}{`eS(&U99RN;bPHOrKgJlU@iKcL((d8$d4ztQH zYP}24@{>o_%eb}3i$}rQBF*mp6_M#&v^;D+x2gYU_)_C;R=qoVggw7~Td#Edu%E$H zk*a@*W(|ZSvL)Ec`#;jV$VD44<)a~VUxo@p`zR2kh_6%CUD1((#TfSlu??!;2;Zys zN5wikuY-u)d}S8Q-F7%*mkVDQ_%4{Qrh64Zl`6Ryq8ytu9X$Qk^+T3EAl*oMugUpm zyQ89sz&eqy2Paxkk){I*Z(#uo4Gw|wQP#JSr!{NVqPa_ftQ}i+2Jh;C=?zXtwtt_P z#zix~Pt37jp4OoXaNT4NUSyJv^rEhI5Jzj2prE23oJAb{YJB8qg%D==bYc4`+k9k| zxAwk-%Ae7Yn)TFDQen#>^0*OPqn^3yP&u)Sz7_>x#V%erpej8jQ0Lq&o_em~Kl&9g zf{9!X>h5Dp>@IhhJ@5WX;z;DXmai%z#f0u3+nKYw8Xo9)6kXn~{8W7G%Z<}jy2 z+FPIM8q-gGo(%TL-K}$0n~wKgTIe5FBu|qzO9!NBd4>c?pLRS-a9nMPp|~R&HG__x z5s^7W7}I}oZ{?yT1DzNL8G1%t;s{xm1+fJ=DN;!eJ*Zm11j z7+KP$oz-hPb|lEBH`Qim==(uN?(|s0%FF#xlcZA*cp*l)O?PBjZ#4_Q+6aiSS=nRr zgx+9EN|DeE?@Lxf1*XSxA)rs<#)|5i4of{q-AC>E}=O( zPe)JGB0gv8UU~I#r7CbcZR)x=)F;A&!IeY-6)pz%kMTK;hf;HS=cf~1+-`#f$L)1M zR%?e_&oIufeK)O|DJM$?FTwf#Lp97!1mpzoi-v!Q0!E3XWeW-mmEjp$6$smotJEf%wJNpfa#qRKizx1)YcZe!(Rrzh1YMLjb|5UDh6d7p*9`xfZAs8(9 zQl+lhpC1j%Tdzu=pYE}DBsRT1D|yug1jX9y<}KYq1e*otJ9Z^mSpU{cOO~DX7{=p_ z=AV{N38g3Gsy4t#_pf>Hf{PrKmo>vRc3mGcvS*#& zy--wj$WYbEZs{L0M3ClGhkEybAv+W)IJ8HR?5CZE!%w^A zqm`#tcGZRc#nFuu@AQuzC+99i28=L9i9x9&T%^LbbbPbi`!I{ipS|ynt-v_*r*|$} zTnn7O0ItQD7@b*b(~&Pf>va0=bb|I!a!7F8OF+Sa`9PDj5DQ=t3{&uG6iBV2F@L&% z3l-h71AGI5L&#xp9mb%-II9hAFV`PUMH&HmN9hK;;jtc}pZn8J*&~TvX8MkM8Osi_ zY^wfFTY~=^xF_t`(L-A^-V_?9Wx~2P;Lc7V1KztzNGn#F$E@153pHzC;6-!Tx7&WK z5`u#w{%0C^{J)$@q=v*QxaB2$vyjEsIK=7S%bApbd=VdJ_PNDzaBdnOm(4}G@XF_x zgBA|PRSEkQeKGrsE`&TG zSr;Hv@OCea-uMuKCYt#d@j=>2}S zCy9LLL!Mc_e+lgeqQf90Z38_D3Mk<3XHP1pqEiO9qVEzPxl+nmV~NLO3P`3$$U3m3 zpMH$!D}GcXr)J3_Djzq)oP$qw!TMz3rg9%y6A`@+gdeg7rX#RYa#LM&(W9$2GBYKEf?kfLCu7KITPg%EilAd<=q8y~WJ&EzIE zaWt*qgj3#g_SiIXwRP zvGQPFssZeM@^W5~nGI_tEa{C}sL@AqE?YJk>S-t3+_S7t@0$8IxMhN+dg^n7vdsdY z2zb&}0N{eS6rN9%mHzLd9l;n*9HHD#h z1N!It)_J`q7-BcHdool}BB10&2T?B`jTZY#4_l#5h0DsKlSne*Qo5q$nBVV7o~_n@m< z6zelozdtt*4abRt?WTGF6uLj*Lg%S^DH(D6ZDEmPRF4)94J${_Xo|w=3Kqvcevc_7 zPFTs7US&>5!T`5Jn9`%aJ7p3@4b$fcI;rz<(9kw3IKSBs_Oa|6Ilk~_i`&s+$jH7V zp*pqrdwd0-RdSwV1YkKjEv|n6t*cMlE*Ubs=h8OizR+Z!;E!tmN-C2NVjN2E0-0*5|dZ{+pZL6=B`$Om+UgXA2+>-XlSV zpFC`|erh?Xnz8MS4}l+}q)5D0Ti5ROVaTcg&v!)Gm~4(qti3bpcIwiDbdA~jx;NR_ z^AP0!7vMy+^`fVDqmT5cRNkeP2V^`_^vz5Xt=dk3UOpK)TEEKZoB6kYLzM z@N*+}n1T`TpmvnH4w8r5td~#3cnmI?p9#*<*|CWG7X!kCtF)9 zPd8stNR-C+F2(2h)G*RG`w!IOE>yr6ERUYNc&rpR?{?$wfwg%}c>77I8(sGp3<6vb zj359i(>@C8-tgD8nx5Fx3^MZ|b=*!%;i#YL_T4+UTh3=c?E{^ElPNQ65?%61F|R~` zw(H0X^J%Qz8-?S5i|Cx(G31Dc>Q+OE%&%phNRNSgE-88qTOpS)q_oPvT14%MY|fHR zsfxr|wsit&_C4PNmVNYy`#co&6HGh6!8fFcw;QG?SJ^*!`}Q+b0UE|Qu0+%E9UwBF zTB2ZKw#T-lI)WSL8M+!rG8v z)!OPNJ>~s;tc$EOV#sCj#!dl3!XnQ@;C7=7)EYaN9cVCy`P5G!8qRgKYBZ#%8fuGc zdo#ZZz7F&p*eQ`Qry{Ft@sxqk4I96FjrrZqle_~4(EgOv#h=^#rp@cy`Flp*w4FQa z;bcX{cCw%Jzs0gYXl-oC9TiOd_uL6p9Uzj{my~sG8rG3hu!KO>_YjEW^Ad}?1UGQfVOjg8n{Am4OeDD24 zh^QcaZ~|+gwV|jpAM{~3jY*yJn;)h;XQ7^b)r8kXo6)6CF#0%`UjSe0>XcxQE&en= zN=fH^crE{r*S_lxV9`MLe^9GQ!D(;&p{u0d z8q%T9Bb6lNvwfl*!o*ff$>QctI%el^$kB5_N{KDGv_NS4#hus8wVWI_?2Cs?b|D*H zk+){qroPZJ@EJtOV6Pr==8+J@7)kdkqU{0NZ;f9TXlO+ZaoQ?0O~*4eFUE7bq%KCa z*E-}XA1m$#BWf`WCe>M?RdP1x+%NXu?UGfZXsCK=Z|+(*yYy#QxY=xlu0%)fiwRh& zqO$gu^7qx=jgC3x@Wk;UNw=p@hxUM(Cwua}QjdCjzFPdxYSiMc2Dg7QvwE)M@y4M&0qJ)tTgK!J29+DD z1ZHV6U#B^5FyYmO7XMV4{IrKG1B`p$uIr3^^+YrNHHrQisngkWWw0$wLo4I7JaYxZ zp^*+klymZqzqQnk^YrE;Y){AsjXQsRW*j*6ly(&l3%2$kZG+m?&E@Nba>(;tKin0x z*UBO7$C{zkN~2a;He;7@na8`Ru5bOlYn0H`TE%}Zzbr``ztbDihpu|^ZP7s(_eNbS zD*OTe0G4Sx?65YsI%aBh?^#0v@5?KEgNL|JwQt|f$&(K6pY;z7ACCgq8VLorhj#B= z6lDh;eXl6DP*|%XV=MiV+ggH5d-;)_b43v$r(rtNae$d}M9Q+R#pTLtw?^Wql!>w- zYgdVruFmx>vsSNM{HiM50KWbwx!uinZw(5p!;Pj(Z{~1t*GxQkZ(Bo!hJ#v%Us|nb zycU`!I10cZyQI?C!&fr%HeuXyAjCt|*k~1|8}dE@C!Gb<$-9H+qD<4{<@mx+TKQmKLLBVJsk%YSW zZ$|y=x=B-NWn@L9%qHLpcOnl0iA= ztChUyL}g427m5{EnnImDy!zTSX1-KOS<3L6vKz1YA7AF(aMW*=z=;st;vD0P4tKrg zQqmSt0wfTQ?rFWK!b?(Fi^ZEnp{kAoF$gFeC7@$&KygT-f3lW8;3>;dFVS#$X!GZM zZOYYB%;lCgq`AzF-Vl#96QY|3P%B9Ioq(PZ?#IgK9ZUz3scu|bHR!71 z=O}RHikK-x@ye^zMZC$#RDP#5e>PjKJd1G=bH`J%9)_Vkz_`LxflC7}AEnm7?zTFt zXCY*uTYSO*mCMJ85;wv5X<{Q_(4I1R(^Sb&;zSy6q47%ieM!F;a=LMas*XSr3QD=k z{jJGOy^|U=dEM2lh%Yc3OX9U%FcD5Y9A7K3+?u<3viExr!COix!;t(mEbYYIv{aOI zpx+3huSK^o&-0HGt~E`eFJ%lZo3<%=Ef>|f3G`E-uwzOM?%&zlf~qutBG5$~fP1f5 zVeAu@)1uCS)E^b zB}X%_7?NcRdBGPQZ!&h>*-e?qg0L6Tm#)ej*K!3~8Q(Gl>$T$20a{%?kYsE9Ks0;1wZGjoS~WI0dSI2|0BD^oLbWj8Jm_so@hYldbXD>ED^ zj>?s(Eu2}IsactM`u_R-pYV`J_v`+^^?6_Kt5nakQ?L>^iV04c2%-DG0=jt=tjMr` zX&d*YVwiMij*W(1paUnl17EB1t4*l=FI!}>l_hmV+)=!^lz-P)cwOir`=OF}0#e-w zxqee~RGyhQ!=hF(ABC2eP||oBJWnLh7=^G8L-0O*C$KJjshD`M!|4T=zcaWkGcbdm z`=4-BM80&HI5hVNt9dl)F|*@1a5zyh^tv89f@j6ctVBz4zk`gc2>WYgPTh(OIMCXK z_~M=>_-ico(FvIlLefe#a#g{iS^WG4>VbH+efTjP27*M3cE`P{*~pT)lX+Y8=!5TS z^S|t8?sg5h3fv*|vf!Q;>r%g_g>Mr{difX{T6XEIF0OY%>?_eQS$L1d+!3`P;vGTW zIy2(r?&jU_wfRrM%x;J^2=B;_&6o4;uid0CdSig5j5D>yE_`+ExJTd(gl80eLLkd^ zAnzCW==KYB$irfXDyBolp)KZU^jOb2?O{-5`uXY{f1VEm5RNd_Y>fm)r4TOvr~XYf zyg_2|L!`xk-;edr;v|c%AIq=pgbv}M{HZz@!Td%zJB>Kz@y+=^n{ZRwXveeY!4)e!x{67qC<5eqyV1*Wk;<1uUdNwJ-K za~5KtI<3>w6~1oIe8ydv%M@C#&5|pf?9Px4_9*=b8L26k03+*1u7mbG?p6SsyXyKW z6-lGqqcR!CkAsGb9Z)S%MvmEB!=(S#;|w<1%ig%ZH5JpN)^0}bj@4*`021CTP93T! zzSHTZjlgGgppsnn=-6CSwOWPZ=rU?9=d61jK)K$^DwWBeN-I$*4oG2e>4yg|=SB50 z%k*XMeFnT->>BIr=aOgiszeO|x``fG^mVRVfL`Jw4msSp^j&TJmyRo2uDIPhiVjHM zJvrkgm}q*zlAlrRA&6*V%Yhui{@m5qwk>UD=d3u=^Bemq_g)`yy0?&j3h zyo*s?hp4(r@K|(VlfjG!N%@JNZomGLx37UoP?vRyk%vBGw8{$ad-8ySG9 zoDZ3-%ieHLO4OLoaGidv79HQCjw}4ak=d$x;A-HZpD!P)i71PrK_rwI`P1!4Af*w} zJX&C%{%(t3DCvJs7j~2c)-6W%FyWs&kx3U8Lm2nsH+(22nA}@D5ii^VCzjYE7egwYupr1MGM+qC`iU7>t;Fbum*QoaA zCAnP>sK*OOT}RPGWyOxlw(q8Xv<~}i1IjsNxInH{UO(3%fLgRyHX6LMf@{O&*cshb z638zGU=8#1?k~p?{TO2M<66@z&%+8uWWYx?zd$Ow!6go3A=YdNXJWWRn09dp*f4)Y z8>)+n5j~`Dfb_~&)%Qp}J}(P}&qDq%k&P;e(jE)O-AaL}ZZRHnPv=N<15)+{Zd2~I z?5m&CHZA6MySguDJ;9l#0N2)V7rbqcrbG%#}+@$h748 zr7I}u9@j8$wFUiIC*#{UjZ)FJ0%-N3L~+BW;Tq3`PNRT1{}rQ|K~($5x6(UE>&7&8 z1)5SRkT2#XBVtJ4uRNc@K8*3e;U>q^^4^GaIJ zyTFpghp2R+3QF5NX7N@{oom=yPk<eOdt*I`$vBHf|2)mXyTskTkEXA(ulwv&;ko6ADyOqnFV+qus`@1jfmv3VOV900G z9gUz~rRzTv>@&lXV^_V*9W*-%d?dPGm$u+i3>}`|^Eyf>^C*?b@FzWOZ+u>=$k`G1$EA8%0 zuI0st zCA{|ynPln05?VM5KvD+0K31X&tf4e7J!$dPPv5Q?mrZon60T6XEiYG|e*OK&|H@t7 z=K}C_6wgHH`yCK}ytH$r`~1w-R@6}l$dzY4o{oL;kEJLw=f8zd=Cz<@$am$o{w;`d!zVaU%hn)9^G4^_ zdAmVZ2l<-pKB-hH+D&po%PvK)MMHr=M?Tu{;_i(~3hW=ifU~{(wVd9!6<0pYmVkqs zgz)OBbalc_fNSaav_iKUEN$S3?Eqxem2f`YY`y#(kW&f$TA?xH_NkuN#^NWk^|*x( zuFS9M4_taZDXVDvpyLXb!#&0OE|xY5e^M+st77xakJ>7Rqr@jgMkunlRUoi78N&AA z#4D;+t;aMXc4UWCRV`*BOfq~Ni$1-40wFaC7rw_BL8^6vUd?tT> z1HVyqM^E!7V3)HNQx6guu!om=ylkC1+AnvMys-v2ds~QqPAVyfqmsSP)2FB^wv-$hUsSA}G z#;V`D-7)lfQnFDy^tQVoI>8b3#7>w(Fnhb^}{fmhXlS>udRU zHmX>ajq_~=iGHXwaLRI+bc~F*zf6d$stAx` z04Fbvp3JLst@?WDi?b!_PMFSuI7jP6cx`+Y=F}S0rZiwN^0D1_EWe^h;S1q0|DEH2 zYGC139R#V|3U5Ane*BYLLx+F@ak%MIwB0$e*H*5L{z6d-9})<0P;R%@KoF=G@M?EM zg!HzCWO>ZI)o_KCP0pN_f>y~Mo4rv#_bshV-OXsbtp=q}Q<`M}pqn*zU?%2BE}Y9& z3b>hWX5GuD7wUw^Q@Iih(J8bYeQ(D$G&nE&YRP_IN#OJoMIk zU~j*Nt>Lz-|C4g&@?Qg}LGqRZQQ0JPW{WD2C@!a07DV?$9lem=& zL>XA7wxcN9kkgs?K_d$!FVo@Gg$V}c(y(=k_4c$zE;X`X+fH2-Synim^c#>h$@kr$ z0XE&{`3@(EzQM7UT(Ky2fRUf>R*Z-w^{RtFYVuGztjFH-7)Tb-8p7mfd0Rs$fmB;! z1n;FJ1sV4Is9?PT09ypO)S^PXpF)NtOv=Y8sGdk%vojw1iPMhur>k0)NLr6snx)w&Fi zVYTdB-{)Cce#M9KyXdi+F?b$|>L{Z+wF^-S+sJiZf)S?q95iug2ZiNLE1$g=B8j#@ zDHWxY8wQjqz44wtcln&}<)6}OfWsSIp&BRC_(O?5ju(G1iMIg)ge^LG;k7W7%`2Y+ zDtrYv5pUPssLb{`W103(fO;dmV%Tq5kg%NY06tLiNO*9r2nBFe`mo&}Au}v^w2OYZ zt#W?OoNu_HAhN1rN!I!Knfu<>YI#zKO{YTwGbfVPuGV`O{NuRyM^OyGD>`a>a?$}XxYt$BkZp$rQF>A4b2mi9%e*Z2haiAMcW*xU9ro4LI&XQSJ?WoFeS(2YuOJ>v&3_arR)tS(7${EHQ`0&+JH;xfhfYzWJ=i#(w4d+ zWdev=5la7Otw8=D|9PtdLQ#iz#1x;oL*V&{%V?b5IoMO9&lU6%Veu)bvSti&@u>D5;e+@$P*_~)Rs&CYQFH|XK?&-H2OMM z{y`S3abygy<#L$1##24l=sc5teo|uN{NxUmW%%#@Zz+3*3BY4%DS>fqy-N7HLH{1`h4i@Wumc#FMReN zRJ5jr3@0VK@a{!Hh;2jY!o^UZGB3HyJrS*;H5USN+C~IlP{v(uWaUYY+W+zhr3btk zokyJp`+aJ|=3+C$I7ajb4upBU#NWHfs(k%fg-UPxJD`lj@SsX4N7VL?WtEVip!N&? z5ny9*)}GU@sz$1tev}gXC>1AQp%EHAnxIx@_qjkd%^WZOqi3M9Jz1Gv*&&Af+mh|M zB(Id*1w<{t7)FymDKGKhpe@W-oA)4!yJoge_zoxT>8Q33c-bn5iD(pP%lJRFjyWFbA3}h=W|Cb zE7kvhkUaZ32i>o?U!7bzk|6Ck0#6u@Jm%x8Sp7-iZs>)EhaCRQ7^u0^mpDbQjR#(v zI4a5wz;SWpw7zv$DAPzJ!Dxg}K_0?*bMPb#wjuKWpp)_Syd{Q2%{b?nkZD3RHoQb-*vvZtbJXg`vxr?&kJT`z4=R_{pJKpp*w)wU0DzEZ{(ZW2`n zj$Z30)O+fPF0QRi> zW}(3|{A_hWByV#4l%Js)v(qPew8@DlsOz^SQ`Wti8qS|oR-sXeDGaEJZpuMRbuL*6 z{%EE1Pi+K5;9YH^taCU?Ypp~bM6Qr`3v!04m*>2e&bq?njo?t<{$YV-SrW8bC#liE ziR~S}UJcj(q%wX(h(t-0CT$uze>r7lU6e*V#Y&cT(YR3Ezc5A2C7~W-z1D1l%8v!N zO{A4wv+^YPp7QG-CRN8f@Pb^yHxUD!MJ?#dNeqbUS%u*xUcm3*@27b&P%{xp^8I0< zRAyWsV`8m$*|PsJ?Cc~914X`- zyAklmmTz3?m&~0xMh(H531owN@5tF{#=ha@*(!^iOXlmM%8R=YlvKy?8^eJ&=P0ry zN5AF%E!{-$h4UL+G6QQR^dyN5sW0P+S`~C=qXb5bHa3%-)-NH7u!AWOtAxv63{)H} z0Zz!J(ANZhM^yy*oQ{0FH~bt9o3#Qh63timU|EAGuncE!GX~A9khaRRxWOj|o%Cf-*C7 zN+gTBV0(EQG)av=;;AkVkKCH@tE8i)Iw~;Wvk^Ch;HM=sy)O6T+3xZUz zlY#AXY1LVGSB!!d4!K5pX;zc@}PoeFr9VsU`&u!$ilC>kf4tSPj=)ckY@XUm1 z>}g?+nw#x$$qmX@ScK|xyaqmh@r~FS?|)^c@%-6Y}@Nk4j5tmaA? zbhd;dW;9GRS&NtJ>y-!1#BDau1*iDDB;26)I~?yVSn*fh>9JknQQ8Ss!9KwsWY6V# z;AYKj2j1MfH2eKqS;!S_74a@(*c&pjyoDsCyB6#8VY7)KrD=ooRZ(|$^EWPXmZdiB9%tTTa$vpfmcqnv zTPNSl5~$4I^|?x;QtcvxThP5*)wMhV7_K}7@d#J24vy7l61(pLGfH4J^Zfd|Z{F3u zn}%K1A!XmaPu094`WxD=*BemuVH9KifQ-NdeMQKI0%Tm?I{#L+HL3ocQK$a0cP8-6 z?Q+K-BEg`q|0KjUM6qfGT!CJ&H>j=?qafbB^geq$5NDj+nUWNF1!{%M_v{%pu+jDa z_V#@spJl_5`gf(3q};K|r>dcst2EHrRx>^qSDGC-<(AffMJ;cNov}TH^<9Hk+QR|) z^C4dY+r9?*upB9ZM_U+>0339=(%l;E^i-C?7eA%Ms$ELQdW4_Ab5AdK^0anw0LDur zFkJBYX(;+44z08)kNt2K>mToxBt}lw&##olTNz`$-l@`u8?_%sq5o!g<`bzgJ^vvqhZTzDn(_5}`t-}Yoz`@sBA82#>y;8QeG5qg zvs(3JdwLP}t_W!RZevv}5ms;IQ%DjZ%l5U&C9@zDDqp4hKi<4|1^KTtV!!P+N&|@O zl@LGs{uLs|aarQp%7w4haBJg7^%?4U=;ykKukH6r%WDE%Q<*@Yt$3Bnry41?GBPhg z3Me4gZAd^80~P!Kx>r+}Y?6`+CAsTp2a5US2|AI76Kt+^FrcBlVpBtdx#Eg9`MUAb z1P;!x#5o1HW{a2e59{pSSCyeC8OrMTUe#G{7w&;a)Ze_QZs3rBGkrR9gFKD#Yn$?O{l`zQ#Td)Ry@E-<^?T^HS8~C+ zvA1>n(o&7nmNf%5>q{KRJNziH&NBMEWpdW~cjHs(6OH$8hjB&w?}Ftol9A`bf@Njm+2R{iGs6NqzRT8kKP8 zR78T~<&oz~Q#<*mhJ{d#$9yf*K3sawv<}$*?{RYW){g9eb+96yEpIW21~sQDrCc%H zZvR@=`rE2ZopV}}XsHc!wwyiwINoE#&-GVFTHhL0WXE%7G3nW6+lv*&`Q{*J5u4WW z?{%{cFEH2rJ`X2*u$IK37fHuk+co*FJB0TcHcLTL-%-9Wo2?l@o4k!>9Awqwn6De5 zYAqYOh9#8i`s`oK_4~`Z&?o))8m+1BWG>ypwFd$v3YzZkpRD14eZ4|QOx?e1pp8z4Y<-U zwk8eZPo&*lHyI*BAi$!?`h*a#Ab-pkJVO>fIEd?gpEbvVYVyG#Y${oBb!#6&1Ev7^ zoINN&BjwV6Zy)>*u&ChjjG-`rWN`J$ziA_j=o=8CF2y%z_kS7Y7rvIH9iWl$Clz-e z;-m~<3FdXvDEA$CXo~sjRTd7(N4|BUp7rmu6#!OD^M3Ja`O7}9aj!&`QTibqTsQ$n zR@$f?e2;$om4Y)f+x;2my8LSINY@!XnALlaGKTCT5*7mB$Wms%2=J4N&JC}Zf}!ol z-m^-Bc21m!(KfQ8i?A}Ibs<3MrPm*SS#M7LTd8(@3x-IuQ1dwWWB!x|^w&z1m@SC` zIgocRE%KVkMWHrTCe!_lE{hrQTNK4)?~@ zslFzTng@BiB9=>Va??=q+@koR^>7 zhqSSg3E1bFNzlU^_pn{Oi#LO};JV({A5aa0y07>Za?q=E(oGCTqfo_iR1xi~rg&k! z^55MJ11j)ZU0Kg@#a0xxuvdFICYy%yAR#N6mgl?MN6ukWbiRC^{Zl^X^<%suWIqaq z2l$9}LyqZhO6u>x{YpTmu>F|w4;_VUJi{J_f(8-GVz3$O2(hCQ{^-ctA84$gQntS= zUjn6wCr$urR%)Aqe2}~iF17s6ZD{DN)6JE6LhEr7<)xt`-7rB;wZes8(wL_CxX7QwRzF z^EO2DHjz!%gd(ie9K!ZLPIAt|W0fd`qFN8f<0!a3*PHa@o$#-%IQ0(~Pc0KOy`{R% z{k5-4f^xKd_@j>BYizwwCFSr(AEzP<@1ixI@2yqxvgvXyq#%-=-VH{ z_IJlN+=SAh zF;fgg$eWz?+&#n9d=EegS;M1KP`j1e1A5hgcGLFupW0MKr_L_8xE;Qj5;3Z0?H5KL zKN-2gd6%7#50RKB8`f-E$xp|4c!UbNB;>mYSQVp3ba~=X{g{pfxVZp^pR{}c*IP?* zv=5`(@F`enh($s;XEYW48sl=v^3Aizoor4VKkiKLcbwO8HEUTn5ucKc86*-iun~nO z^-@pMw(WPEqB0lXnG9DR_~XdgB&En>S$hyg$2ysTt6_2snR7%AD@|nQWZbAxglQ5u zEv~FAQZ>m08ptGNs*UAlub7@B*} z8*fL^Csj=)_X3(@U=oiEAh>-%_ziakxnBzA?DJ&F( zqPcpgZ{37_xmqEy??YDm0&fj0NYkaD<-EZg+nJn_(?R)g@#R}*9PI!2eNGl-Sw`_z zK6siafx0YM@1wL|qbJy;hCGy}Rgpz+uwU&iy z4AkU+-#2}xyp+!F(d>oqR&Bz&78(|l|<%bHW0Ps+>>#X5+r4}EME++V+yk zaK_>5%C%b}b?@nD%>%dOunKU^+bm<}UBgpcj>4OTmA@R{o(?x~tO8>OA!e`s?WgQ)R!7;0)3o>uHABBR1AUN5TtVN!M`dNl4 z-^@XUxTf!smDdmnUPB>WADSMuhm{qA0@(yUpivBBdk`T);j^+!HpcQ9NrTo;(>M|} zfkSHToeB2Q!SZYVA4+=VXV1fqrtH`~J4levv#@)%qibsiqyf@s#Q7pYEUYKeWpc`e z;cchF#?X{ODCIT}GxW&l1TVdo%QnqZnPhi8`%kHNmi%22HhY*Rbw0wU)a5T*;!wrp z=2?nOV%h25$Re>&bJ6p?+D@3{sh^s0-+Ri4qArci1eDE#MHRei_}l*Y=(i$}R@b4p z_fGP-0<^*Vz&7EZmFH6aZjwQh^!D0xrg9fm`|rhvXFRpPLh%b&{83mpF_6_aZbUcv z1I2}kK$;ScRXAk=wvDk0N#kc7h|htVng7XO9CX6RySfDd*rQe-O@WD9|;>P*-@rux^)^$wm2@n2Ri;te{r-GOn&?GAT1Cs!eD zG6O05R4^!#u^j^HHmPqDTPpbhN|cFUxjuVXbT2kFcRJVT9HKEX_g5(s68X3(?v^1^ zaa*xtg!&Lul`)r{#*Gs|LW)gm0o=BPP;}bdAF)*N)WRvu%ZvNngK4q z(fetPxoTO@sMN#50OfzGD+*}RM+pndw8fv&{@Ll>ztP3I0{E&T`&Fi#yI`|h?xKs0 zOhXY8$%9n-G`=I)S9r2FI^`O|`y~WCL~{`a*r;35pIgR~tx)gK)NKT}ER~xt)c>}6 zGy+>4lpgNK6p(EV9hQ_(cv|ILka{$Y6qla+I+vQIT~uX*%3;iVq;{C=h+0y%F}0!Z z>IHJr1$lAV|1oVedvTihgLD(PTF3U$D(fQq?}na_ZJDmAF07m~6;Mw$>-c@q-zg&c z0BBfs@4>m^=2x}c#9FuFY{Qa@pexMMd&OS0qD9{XNGU@7b_^no{>=*PMp{w+&`U1p zO%~C+Vsr#ciD=~vR)S)XU?@M5w~O@XJK=Z%r>IM|>8X45yR% z!E7O5T?}$g2EmR-xNMHwubo(L09`$AHFh0^uqju~iq@|c(gur=;{wHQLY1*A9q=gZATS zqav13AA<{Iho>O2V|ap38vZChJ2>T|Bn^oH*8fctUq2ogbVz+yHgst`G%?ksBa5>$ z#(5;|@`Z8!a%$**ZQ;uzq$)tyVbbk1nskE?=bTjZD<^v`b^GTn!(sX}sZ4ygwEe$K zM!9uV#gqMV=@RlGQ>~h?Iz-8`oC77Zq>pjN3KYMegF2b@aXt?NAQ-R9|*$;8bypIEz}pLC>mPi)E$3| zG@WOkX7K5#iN%y;cAB)_Z5_;W@yR_!rmDvlRUE8My*ye5JI=a z)j!%e%Gs?5=qYL35oxcL3y_jiH%p7n$eXBZ?WxL}@=izHzVp(XM9wVpI16|`Me8~% zC?Q1|nTN)D@}JqF2w}qa&ZN$jWt`2Z`}lKu9YU{CoiSb2C_)&`oJEjA_=}K05$aiX zBfT+PDtfSqQt$QvmS*Ifh4M&;eMd}7F^c%;rJje3+ys9|q1~vD>{FXrW8&=Vceb(* zX+)VA77N0g8|O-0EwobuZBVlRP+;`b&{_qno@RHITTxwzy-+$Pyq zdONK7xI}?j#3A6R%-m?Iacar>#T2SP&*qr2E>$VAwzunS@+IWMrb4=H0uA@N{l3pDhbR915JBfwJJp|AJz1V zZNIFYwTeZtqvVwq^B<}+4Q~|aS{fQ|N;bV@?0!M*#mg9JkSF+&-lK;S`m#oDODG8m z?$|hs|3H`WHM9TZ8h%4=6s05A8KF1wYM-Ueb(L5uqP?Q-O3KKv`Xu!nnzua}4yDY+ zZA6$4^4H_e&?Et`1fWRJ!atmjyaE8R2=AYumv-Jvc*%M5RJ>X$cSDt2pioq0I1=R= z1mhifU=)%!MZkz+Da@;?s#nNV{c8G*m#;0;65Xa#qfaVm3f}V3Lz1*VbHTs}-!?hC9po1(_RGZk{0l5fXMT)`wW!6WFL9UOY{O1Fkdc#j2Bx*D0Z&zJ~x9f;udOw4|{lhJjlCAu{BeEWI;Zb?WeD~q~ zIEEFYegG}WPGY3bBPNPV?b#M*?mWiTB6d4Lw{CuR2!g+5q#FTx@|NGjBp^t7Ad$AE z0I6{UGTRvua2edUY!j7C)BfDxFiAX3>7k;93}%@s9M~p3pzE==DO(r_~g=BEKV|ao#DM+cNd3iz(Y&)h<(arRc^YfT2gKQ=QX_c)daj$!j)Y2{G~MY( zcOK=JBwRsT=5=e|oAjr4#fH2!aa8ui^)mEbo2rJ2I0Zmgq%a$GoA-MrG%}x5j#Bd$ zflgIvgo(^mqmFx|k+w8EC@qI8_h2B)v>R%6dB3wWL zL}M!=^g81FSRVPwt+xB(rR4}Pnx0B=uMH8&o6uv_f+6Uftv?Kj<%VgyR@P&uhhGri z827jX#b*l;oiBNn06HiL&WSV)NFutUinsXd`oh?lCl*r+0{RGml5RJ54RN*!$lf_h zscl(4&tYW08w7-+=#q_H07S&tG488dPT$1NEtEPFW~=e_D(Y{0=1PTZ^CBxIsZ?|K z#CqK=kphfS65@<+Rihxt5@1c6J9W27y_6RaG)G6#4}I`zThBSy6`USsASrdA?KqrjQKwchyI3Sy&QIWa`qErB;TShG>O_ZEN`u8MeXKE-(7wn`jH{IW=& zbuGsK;?k=p66|R!$%iR{A%uj=(+A?BToH{dHi1Fji5Q4~5BZf|`O*Ei$Sdptq7% zX_cN*lNI(%V!|*Wx_`UvuKK}^3e|;pP6ric{Q?}`pqW14ngqrfzPRTIskj%o2>|2n z@OZ_v7O7Olpiet6{KmSlAsAxx&7i{nw&M*Qjwgn%`g60gV_R9TrCEL_<6et_ zVv8qoS@A^Y5Ts%xb+>CgY)9xRpm~_Mt(#_|Ip&nQj{0=>tDLK;B7YU@ioB}mkU#>3 zaZ(&kt>bjHeieIaTcO>^&kw1L-iX6Ss%?$f;v{zB@K-yeU)=doGLOR0&5c)uAVc|4WK< z6=6Xu07mgX6#UpviBlwhCb3U##u?qJ3|6wfNqbd|iE*C!ybn`UeX#P)^ghb1^VHYi z*G7sz9{h;uocMjnV8Z^e6a-5j*nrU(5B6?EWME)e#myBC^bFN1aG=6o0+x1!{w+Ng zd#QMZzHxl)??&A4{wokvv)DbT0Q}`35%Gk<*hz!o1Uffp`LGp`7JvJq7aJydQdw9s zCb=!$MBMqe(EZIDwpz`x_S^m?lNW8D-ARIW|JqkpdDScz)l&*ULtt;~fMn85`2`(a zdVXr}aL+&ErOT(71*6%j$d3Y(`C2yj4SM_I0`s;G3@JkSwbR5K<+;7)A=#^P-W!)G z8k8Wv?gJ5!S7EnUjvZpem5NKnrMJwGYc{T+&!kPE;2E+S@kpO;{qpIVp|6^xFfkdIFd-U4Z7^uL69x!LY2PB9(_#O6AUpbY8?J z9l#->ntY;-pA~8zE7By#kY~eYiV>`_TJa>vl=Oi=Mg8wViv^PtRdqmHhM59Oj4}*< zRj6Bm7m1@d>A4F>9af$dlDq^NzK`5$wPsZpcjvL+$bRZg3T9TjW}X(o5s4p9wp?3* zfeZ=ANaGl`kYjejs2oBHjV8bR1TTm?i)E&smx^*aHYNS*FjqNQYdEQOEZ`c`)j_~0 z7gbsL@g<-RL5t*!8quwaJnnAAk5g3j>(1Qg!syqITu4C2ADEx4j(lE1!akJr!7QG z0X0@MAe%}MxCi*GC+SLuK&G;VR0e!63$Fl>T4_1efCqHBM3tm+v8*tJ6t)q6aDwgn zK`WJy3V0lbIj{t%+Bq*2sbbC})`1LFSM&QF3Va#z&|r|?%?q}A- zAsnzS2Uj`p5prc78S0+5qu}sKWRO2JVMk%PHDb|qGD>1G&&@o}z=SruaYUDbI{Zf0tZ=J|V9f>Gko0I^mBtI8m(s2Ogs&e4G@$)FT% zDkQdUI3}8J`8>XJIK#g!E9yM;i*AEX@dmwXLh_Uv$#y=xleEEs3k?5*7a8%4Dju($XaEgX2L4BRkl*v|) zt%Ml{ocwJy>FMmxlOr(yNLJa)BeR4bqDE`Dk#R4yAtOj&@O)kokZ%Yx40*%MYbySdVlKh+mxps`3HoWdP}SKg({V@ zndiJqf#=-l=A&l0f)B-lY<(GTDZD4I$rwwOzbRt5 zcEC3z0klU_ilm@taABDi69y@qcW^2L4VAgzWXGM8vx-0hTv?=rG&Z$n_*sV_A8vJIrw)vOHQg#c@M8$rh2Q2=D{t?K_cV_;aS4RdTtMT z4L6W^aalqu(FeVZ^YGf78k&P(q;IB1Ue650uY?B!D9fr%t>7}i*APp$J>{5kcz~#% zuyB}*#tjHX_+_?Oaq?=gajL7pTA4|*ryGI2eW_AqY1g>M^je~ehtE6rYAOATWJUiE zBK(G)%Yn`uN5!h8G~)i1CJrgFQeUmt06MqnYU$CSVxlbM$0BA}d50`X&p8ez`o@z| zFz?_cM$6;gUPD)@r}(H&QN%ZPghv=YoI$dl<2qwk zCqH_NtBPCqnGeul%UI#iN=1t`?0VO}^^o~cC1Kql1iz_US9IAa+l;x;x$_*Kcu92t z>Hv$s>eGDLZro&GmcZwjjEd~w-whLpm}>7gsKHu$M_#ppD^)E)F0S8AWMO@R+pSc- zDUJKtNJOc(MkM)bFV6)tknai7F`|H(_f|}ztv+J~pFq*`afL7Uy48+b4!A%nB_NF@ z3X9KQ(gyRXGN!ome4yJI#v|qa$W_|Li$wIu$dJRZN((;~;F`k$%j*#C%c_|ht5`2S zzt0E*#-gR^jKwbMB+}pnJ?m#beTlWaW^p(5g)cAPu?b6wC-F42=82 zx*#^T{!8u{5@Af~74U%!sU$$Ddd1`Oe3ma%h|XpjaQDxxp|x9=Ru4N;uxd4|JpZB( zIHBOR%)!rImYgCi44SAU4rM56D0w<#Hr=<>&9f~-gsD~pI5YD=aU|U9yNhvJJVg1A zG5x&B=f4g=qj(bdTR|bE>Yk%MHimpGm6t-!m_JXr(##_#N6--!cJ`0F=YpTLLqz)V z4L^?hoV+pMLVy!Og3E)Bx2X)6yIF3IgrV`?2@oGo2SoWQJAhOf+O@pnb(^l7!6)W4{A6o!ksSmOU-U8i1@(l8j>5@V5)Ybnt2 z+TxGy_tyK#Sw0D~SG=XImS%Sbv8F+9Dp!~;j(g^*XU$UY&&?ibW)X5e0BVrnKTP-2u zpc-tgN$I5e9|pSp2|-bSbL@o~WZ5GU`wIhe8OXg7#;?x587FGfJxoBmrOO z?i9~TtEN;Q@QiIdFlDKv-mV;HPBg?;^P#8`X7G6ZtMLX2@PNJ_CXy}zBY)DKlFWn4 zl7>KAm6^X(-vmE}2RqNHR=W)+n!a212B2k7p?#0eh&CKQwkGrB(|Z?4t{O^{`U9s7 zER_Ydo-5G0U9corObFUjsnj0u~Gy zBP3VU=u`m_Mu&iu3Wz#VKvcp2M0|uS=#&r`JwnO?L>(QXBBG)qj*wOXfdnJ zE;F=1b-<-cATaP7A?+`QvW-ycZKj_ z@zP2+-rr~+66vw&0?E1^nq4nCXDi-IX;C2_(jcZ_vcnU1RQd$V*17{yfi{(dqn`Uk z1;wKMRn(76YS&CzS)JFiJVy>FjG@Sq+42U7Kk>b@6x;=!tR3=5;F|y&6{R6#I=Wv< zYBzwi^;~ zKdq)n1=qfk-JF||=`EM7_BEbwf%zYYevP_*^7qmZhP)@v;90o*VrPlpJe+C`8ytg- zwarzV%KP=nfA*1IPl5x~LX`hW(spx7gu4=jK#2f8quD3@%1_S5W!-KDnM$DRx&A)A) zc-z)#xD*s*Yqo54uJ-jy(_56?Cs_vt+HBD&dsKRKqjOm*9Np7PM62}F=Z=8ZCsWIf z{rw4NBWw25Z@=#&x;3W8kR1WXc4;g3Xg&9JYcrc@Wh=o%Q=*i-ccUg`wUo9SP(POBd-UeO?q_NR2O+RM+69M9{sxA<D0TXzidy)^N>TN{+o}# zyX?zMoVANkvcUNh?Z->9*R9>9jO;3FEjBL?y>>k0zlSl7S7j4u6ew3k%i+}hVuoSA zAnEGCT=FHd`i_1RB%oR(G3e8YfI}ix7xb|&ArwKaxi8EfYKWluiHJ>>Qq$R#2%mYp z2gPT#$~E}lw-bQSp`eZQK{4#|eJ6pc`onxAbLPbOxL0r>s7cS>exh!%!YrNM3fN<5 zH*>1?4NYz4RsD7}Y_QNa*Y+;vJd?N&HVb^IDVzJN4&d>L%O>3+mzOun0(`EK-_Y9q zYzDD}vuVxgFSQmE{Gd({{|n|3DmwDM&LiD(%SQWjaXwt6Mg3owX!C+NTDX)m8tNY| zXI@kJJz>GQT8 zL)*@2>|fjAu$Z$`ydcNhzwi7@TD$*L!f21U8`8_0zUM-{!K2iX|G2U_{y&er_1jhT zJ40>Ia$p{B8)a_s31%~upExbsdq8uo+K_ORScknhSf2nfV5xT)8 z8WOEim1VZ^JiHRynn~GVbY`pB-=W0x)b=~F$Q#CiVXjB2PFWpEf#T2nWddaG#XzOm z5@33Xt*or|@T4t%LHlCTw2SKf`}INrxQ=o7^IhssXP0{nKFD6WB~IOuCET^_cHAU@ z`^_eXAgpnP!Q%!ztXb9rPyX%ufbZ#Bl=1y1%RRZ5JLY z8DMC5g~}=U&Gdlf`^$>H@dw1wVkwUPn)du7J*O|l!E{hWh{XzK79BHLEL~=9RW+}C zGHOA77)(qp4H&)P<;m zfC`T*9Fd^&nO!ZwM z8M7yzj{a>a(`X<8=T+4HB zo8C>+V5D+D%$5b%wC^!$B0|>d^#T1VQ3pj3%}U;b*zm0?SIt?;0jb$4$X3eslN%I~ zM;*iVny^*<4p`)Nu$bV8W3 zBGyjLV&|Wmx>K}8!xYXdww#^^zvnx`D!OOAre4#a$qXBdtH||#BGB@Pvr8Q~aP0RL zLWpGkmf8W1C}pzET8svMRjbFUa>f!RmuM;pWC z{;vZNu&{UGgS5Rn^AMB7fhYw8LHj0w%iANA#2e8g`Z6>nWy{AOc|eaX_X)NFQIC9| z8l3+5BulH&R9w1g`wv3=_1)NSt*xNdoFFis98f%hO)~AP>7LBY0aNFOE>zS%+mL{> z*B;3=v#fZZJ#S|P$(=j%uV47TEqZR-kKt_rA(Iyx?dr7{_nqGI?rZNa0fB`ZXt4;_ zMvKp45)TfK{<5T48^vGa;>>d^1^k4(X6xs@yq(w3fW|W_){u4fJ?Rw`ut#Ebq5H>2 zgU=2~oXMCQfLH2@LW#z=m2qA`y0oD4$YTr8Z_}r8jH(!N{ZjK{QaL~dH5cXE@i5v5 z(@$ZaijNc!ES1V$=j~fnV&vh{4>-i2NNtijU`mLmU9aM4m(wTMLs5}-^KbDsv1O9~ z?db%4_G)nj0<%uK5fM#4y=h7UVBe&fly^*cnrXJxmyRD;SHP1>(rMoMZj8`fvf#nd z5M9b=pD)g8jjqYnD|N}kJMh!+6rSjWka7Vt77$ET$W3;%S@wE+Gzqg?SJ|pY5{_g!e^HSHNPBov8i`USe=N5c&>1o7g(^jMdZlcHD^Wi#`ZJKG$4cDT=T>Q{fN&xQa2Z0 zoxJF}-vty(90O{L)Jq(Zo3L=6aOLh0irw20nC`AjL%r>VN@kI!*TynM<4h zX{WY@$}0Vs9jq7%IPND%)_^Td=vp)M>1g7IsDr~_dSC_S1ZtaW6!yOI5h zMLSMY*BP^Vvfu8+fKP4*ZN!#h+ZK8wuxrOEO;77DZ08!Fw_hcsr`*_yvR+m>kx>n4 zMLxR>8h>T{`lsxUmPj5J-3pU&peVavC!>mQI{2sIc1t-_Gb`n{gIn5Nvz0Hkc zvEmZHWuZtpOV_!68AHADZ3LxX;!ENTVFcs;~(&2DjZU@e9MT}dM{_8IQ6cubKOYpWze&nNn z+>o@7Q*W;ay{X6;MyU~;4ql*#MauATU_M{cmL%~uS!}0Jz}_vTZ5%QBK3z>Gm(gS{ zB!b_}0gVJvlOFU+Kt@bi9n3C*HYgB_vyVoxSfz}STV<2^NUwLKH%(Hpdj>VGv3^J+ zEfUd;X#m+>iA$|bIb@O>Aq&ntirUI#ARsn0wdk}G7nP@b6|g#1Fak(d$^oP_ zdUXZY4?v7u>`27 zmaI#sOfHCwOLOolb$Dpyuuy80U63f4wsQ#)5<_n=0HZ6?x@wC{O0#1!ix#3-lsIIZ zENGHT=d|ZkhAI~&l}!2wKXWMbUS|FpHIEc8Qs0x)|Hq2*N{lR_)NXPPZJsh0V8Cdi8URFpo?8Z@O}Zs4=erZ(mngd z()Wy2YGudNW%DW?WZ$jzC+>>*SZO8So1Ky21((f^wMc9%7>&7yg&DhFDvCGOa4Kcx zhP4+fayoAzz40OuHACIuxyW(O+|MSI8)Mt6++q~@^SP))eGZ&j-dUxPat~9y55b8; zw3`93G&<_6aODyGsv ztsCcvi0$_ok+J=l4I;I>Q?DW|j@n|8G~Q*3QT!`Jj1wnKDTEbB$X`y&PD)2U#Q=Ad zD@${`0&4>e5Wn}-w84OImq8##QjL-k`4B~e_Dx?RJu)$96c`#mnHNcFn$s zM0GDl!#S_dyIexh=u%hNkK-y#wJcm*om_+P&MP6eL+DeXxe*9bW01D%QyKfu3_S;W z2^C#!f(%mVg4(1}UbeZ5WKK+r>mmm`J}JzF;!KWY%cY_8UJAL@gJENPEK~sL1u&!v z!96#F6n3GM0bb|$x=;k?AsD(3yY7CSEg+QL)(%5gdRXBO97I$80fEN$_Ax+{6l7W! zlJ`z<^Hl2QSyl*t?uv5p7Jh>qKiFUDc_N}Jp>JA3xH9T z8A!O1Tv+-SeHID27!#5iV8TVyD~FaLGarKk0wc!KidY=4G7a7GunXOGAR$LI}nMy5~`8j0sZN zQg-L60lT+wI(AmzBlc!Z>9$7}C12rV4$>5yUssVcMc}%%SjbuW4WFconh=1iy<$MA+YE9z5Mpa6#s9LDtIu(6ul> zgm1#`LCnn_F}cGqdMf995^W@y)~q4Vs1}ZFMN%{69Mdxyxh+OB+MGH-I<-PEF=IWrxAdZFj083&1WFHmZ)T=u z3{?mx-ZdI6?RU^&P6%Q@13FA0E$1s&G0kDk+p1a<_%LB>}WG5S+x`Cv^ zbANeefTQZ*V|tEWp2%B(zeU7Fg2o&}<6R=aTm7z3Og0~BJ>S8)3Lp_(?%A@T?GACK zPTK-ciQQuPw+}qBH7nSI5`^kQq${n;MWE5)$N_gr<@WWcdGA%Z565JnYfKBQQd=G4 z^v`tOUFCfiN-@Zc=}Vpg3&vf!Aa(`t9O?5jS5CZjwxD=II;R9X)roxn&drfMsn*c- z*-GP|gDK;`u7FE%pjR=_=Rj8w)5#7jH&9(An&Mj0)VF9aS^U zN5i9L&7=||q!Ra;03rGGm)Eq78Zlz?Olm*9$CUraM+8$6U2NR%mm=kM1vz|13=(CH z?y!ECq`Qt_i>GuKWYdmDm~R<^ECIGrMmrfG7zZHcEfnS)9>k2KMdc0@sMo()!Fcq` zsD;X3jZx;*3GF$U*;%N%gXjvqNN<0u;3ti#N>+|v6syiwAB^iY$*ooVVPGtxKGn{& zjgci5RT+(lJZi9<7{7)U#JSIlWiD2^LRv#&!8XA*Ac<~&k={yd{6TcbxMCp_VCS`$ zr!>m4p*dnLD$@50Lq?FBP$g`)7{uaw;gKG+JZGKW*w&X_{$N+PNK-FBFNRhrub2Hj z$Ku{0vJ=i8C}cGRH&+t1$s-CmKhY#sDdo!>5K;OD&=lI@xG# zNs)h(8V)k-M>ywhm7A6#>)I>z%^{iXN74UYX$lm{^)(;?K{)?_{QK7bzHITgNFTgs z>q?9L=GW?hvv=RF{{4TFiE06a>xv2_;}4!}x;nPZFDFrvN9VS`Cq1$t4wpV&gaX4< z_K`2&e*V1zk`8tfrC~OgZ2_X{Z%se|Y7J2LKHu8@cLhArwsPGaE{=d5Z@qYPtpf(L z13gAEaQC3yW)(V(9I4db2|ge%+eY~B&-ndo>{B!x2Nv&Cd3J<|lS6S5dw~!e2?56| zX6soKy3)9vhX+70`n`8sS6~OZS!JF?0LVN-1sKYae=1>fCuEja$O%2;Jf0X< zoRM+{p;)l;Bc6X~uCq+)(&dGLul!zP1O&QvY@Nuasqg$sN;;8qt?9*zumF@BJ;E04 zPrm0nJ04aJff8fnZxe`$L-7?M{@7pqbjLJIS9Q&hokWemw^S@gofo(p!e3>Bt*GA+ z)r~RzHUf<*GC-u?^z6egZ*5QPSEEQ@zO9bCb+3}XDI^8xJo?mn!_h;|$5YmD?UMsEc&DQ@aG4xoX>_+I+W2n;__@0+<^J-73My&DV&`HR{gecU zXkQZZ#?ld5m2iM{=@S&-Mo0_p0a2gg@C+Qgb5H1eVQqW;SYW~)8XztB%-$38R)rUq z9$$GNmsK_9(KVls=W=z0h-->{>yUE|-&3C5a1VS%1m(S8+J{B}G!*QV;Of?QlcCS* z`GqJv;Dr-p^B`+wdQ{nRsMdkLgpy&-=ofK4H#D5lxOUX!YBf(biNn!i3(o1;Yd*R3 zz!CNP5wJG;D-=)l@r5R8_A#oAH2hv(#PhM!GdlGXCL%DBw3!H@?dtetEx;rXTmH45 zbJ>8VO@$p*t(@eG3np}hs#n)|cdN66hN>zawg0$uCk!W2`M$C8Z|aduMQs1Tn!?vh ziL@9zv%=j_b^v6q&c@)W_EIx8jgt~7P#}gF-@Ib{-}UO3+dGUZ$6u*%w&QMrL%M+F z)X?oC+eUnw#xI|_Te=3a8GF)uiqDXSXD!6~fEX2_H=t9@yFI6>E>%>9{sb$_PFjp# zsyI1F8Gatx_}*3-FcJ}nF52378)BPS6RyvroRLjcofj`rs1JR|E8|Y+W6s~$@H_L3 zeZb`^fcQH7Uq!gP>DH{uXm`ZvUVA5T^G~Im*N;t?T+1uI_I_TjJ{|UewdYh&*Hz*- zK7*;4Ej+o&UK{-#VBJ%X@Gx&BC*Z!|rULvx1dti|#AuTD{lrztII*Y= zC>SFKXBSC`ioG!zw*Md>@b&I>qTpB7$S(++ipDL>)L}+1+Sd0pf$lpeoE^zdsS{1v zIX@i{ou7RGFQLS}XI!&n?lj&%2xx>XwQ)=zlhwu7dN%3624b>fZv}}& zz?6G8t%uhs7Na?5_D*)ky_>T-gJgU(gq<5b8iCYb?Ys*ba6Tg)nfu@*T`}pyCkSo} z_Mu?8iQWzra4m&$G)@YNuDgpBdjJ3kA*tX zyCR%Zr`xKM-}@eq`)#PEJD1)5^%!Y$T_L$MJR|WIlp7%d!aoJ!r&E@jbqlIokk@hyVE_GumXmcAa zDIoWg8RqfDgRKp-_zsGBAsc-?IA>CB_fApKv;b5y=b@;l4@As~b;CAhu!;!pa;z#K z)dbrf)E7AM&fjUT06Xql5EsJw^(6kZFLRWN>v8p0q9|^wf;BNQ-bR8JVWG=?&r>09 zD1VC{^Ue3SCeJ8IugGuauOv-)p@B{*sBO)6yZI_}7sj%D^7Zpxelvp9P6+{^1_u;IHXuPz@xLT)q`sKAMm6{pUKl~S- zfYfA)dF?Ypo7USkQWB31g(R+-TvbXTdvWdV7W)v|KNbr3f%lYnt2%OkDp zP~&{@Uu$Z+$KfZidFuG&7r6tQ(w>O_?D0z}Q1A}br_wU@Sdqe`f-loFbi1ymjTR1X z=8$`>`l~_1(MsomBuGZeLkpXRrW}~|lKXxMA}7P3+%Q9wWw7i4P&%GHpY2H#nzs~7 zd2rwCQ)RYWO`|wgFiBeWvmE<}LN(`tsG@!DXBlT_>lmQL8MD*0mUl#F{7UFg+l242 zhc;Gfo{BDsw6S*8s{_EA=pADx(N+zLO8>=j-1b}6&YuUetbH#34digc?>Da0IRepL z11>+8>kuPV~-5OWz*qK>Wiev~ZvL}Ntcu-l4P{rbX zVC{b28{{I#K~qRou0{9^Sv}v$dPskzrV+9oow=e2mm+MenO}7|`MCU;CHuMEnZV=( z0%+RboIvoKP?(#6Dw_%fTvs5?C?s~uCyvZF=v#K8&Ug4In?Tc**Ena?WTuuY|cgP?C|+mXSo6 zMC(3yETL7m6#QWaNa>*r#5`t0(}jJ>3_*wLu*)MQ&UWJ=4cqR`N{WGaa-hU>egJ(a zijwr{abM#pP%5NKUfoSZ%W~Q}D1G|T(7@mIZtxX41sD0hm>0;NoX9P5gplTP-N^PC1-SLy|2#Ef4?XX{vCNi z5f*N*WJ_EM-)!T}TYi?d6q%(=u7J`|;vOhhS0}YjW8Em;dC4(oaj0_Sc(b&|)hL3h zEW>WeJ!!+UFI8U+YqA)nlgN-xEXGqWAgE!7{kr9Pxw_S31e&`5U=8UTt4X$hjQmZA z?9{!Q3vnwtoNEZEbl{;S1h%4l?MWH>tbLXAnRR%_sDxtx(om#RBZXF0KTR4;h$b%{ z4g0Ck`vz}006n;tP)kuws>%^CRP^_SxId^nJ*HQ=z6!$x~p#`!;1?tL>nF|bRtlq}c0cs5#zX{m3@+8rmwya)R8(cFz&%Epw6f>mDP+)|xtj3@jfc-Uw$xR{tx-kX z1*-7MX#EuEk@dwBPkQRdPGSu8sKO-~S3han%~#n+`V$pv4A1#}rB$x%T}w)WcIyICMrWT4W4X}s?PMW2g3tD*WIk8?M0L zf3_HsuYAdWFbxHapgcU^#|$Mu=}ZnZjrs&h93PnD$X4Eg-YO9wy2I}RvXzZ;bRz-9 z61=kf*}CxHQ8VHlaQ|-8+)S9nX6mtkmq)duPS`q{_P5NcP)Uj%RkbguqSU>XPw)$q zkik883!cJvuFlGD^&0;hS!ze}xMk3k*ABXGmqOGiy>j{ZeNiR)N=Xf_dlr*g?%uHU zC36gOumqNFWaCfsm6w!gmoQ~D5rA||aj`k{oW&q#AEMms!0nR@w^UBg7WAEgWKr?_ zaegKK&HBK>8ZQVe{z~uCHMW?A^|n1t?(~o?L79!G=>`iF235XEwH>yt1|lOEENyn? zAoQ};c<@j}?0+R^8#E8rPV4&X$0d6b)Fl3hPN?0Aig!{tR28#teQlpj18!dT+RE6$ z#;}k>&n#fs9vDIGq)swX_!yC_k+_NXn!O$#2+@Y_c3jIFZU`X9?bC=L+AY0P!M)&T z+z)T4SzZE$QcMFFv~QnE{*!9)|M~7D`~#{5IPiXSj<+#^ zOyCzS7Eiovu18B>OtFq8(+nn|=aXFV8P;VB1G_CY4oqnq?BN3ZNVn^8UzMbA0YgHy zj?t-z#FMcMSg`8)kP({weDUYIkm*APYh`N`gXP(PzB|AABd^s(B)A0rW)c){5G}>2 zHDsww;$E_qB@oCymsBpFI4*yOTh`aXg<*M0*1)p%Ck=YhP|L(}jfW$AL%=l|JEzLZ zCs`9~x-$8z4V}ur2Pn7J?WPn1zLH?>y90gn0t^yP`hz?S%rN~n!j2#rA`wG z6FID+)IH!aPy8g?ko?`D^_jZz(&j>{?ICNTi{QG>af0<3JZ%2WqTyU#2k9hyFRRcZ z?F~tDrme7#WEG!dKl6*e14;3UfxO3ixIlVWhUecRIVltqqzm&WjB5y8@>Qt3=fm~k zuQ6dnb!hK|g2kjfX;MM>5uqx%W+C{wD?(ttlTc8IZ&1+QJfAoy4^-_9$b6|EsbB(% zoL6hrvEl-U#-Y{Y`y4v^=3Wv$nk|J&TMC(Ke|W;=;k3jAu0)S!b=|1y*K~|JZ0A*S zqrWd)0ORG2o0POBku`P)bsbBq(WrgWTKgn`iI4g;Ui}KR=pR2Ey&bA#f3v7c5td2u z;GC-}vG$s@CdUL;cc>4zT7=85IJ$&V=(trUCg{axBDPPFW`!XBIC97Y;+n%VXjc7vi=G$ zT#)7qnl1HMNWZr&E|X*rX*Pw7B) zR3M;bor6B7$cF3QP8nY6oK>F4d1Rzj`OVASVRY41Es&D*K_1^E?a?^)z{=OpdhA&4 zSMog-%K1r1oujc*;Tc<&1`YNk^@83o`watIKXzGTXz6%rcyEKGpyX;#d!gK)0AFndMrPF8Rnn&OCRH?mT#CHtP2qF?yX9g|&JCA;m zv~2~<*tpjXx(R8=j|EZ4LT|kbGIx`Gf9}5ZF0|A9=;Fb`Qq{nh^$Xvu&qp82C~7kB z)XL*hY;JM~luvUd)6yn_uZFAquzaD2dZF}%1MTqSPg&VI48MlY2%%T0^0oc4&_LuM zsJ6S;NF0Jsq(SU?a_ug&I}KI$Z{(jIMe0_r5R)(lkF76!UM6a+9{#eanD%$F>K?Kv zPQUb;S#@-5;7YaAf99%s?p zIjtZEC=j*KjtTM~Q~ciKItpLZ25pO?b5P_Rg+5>_j#{3zyzpn|*X67I5Tgi-!tt>C z$FnT3DW)QVNqy}T($eT(31(ECSDP3?_!WQ(0sx$EpENshmMMQ74J!oRx4zmTA_cFQ z&$%`j{G|%;w^Mb7*Vl@GSku`jCk<}QZpI8-(zssA^WU!^ta>+fAxkJYlq$-DZPP7k z&EIc_$^H2gn~=z*UE2}<`{S}%5I|E=__h1;gGO9w^e@~Wcw*v_|Gs?q^q&Bv7r+?G z{Dc4}R`$jxZ=lo?%xa^q?Vx`Dyn5_J;RI619aj68K#bVqgoMW3pMA}BMX!8gg+hSK zn@9*c<=t5;5YmW9z^Zw*^iSyy`Yy|Ed1Q0258v+RV-_~k+WFe&j=wdGSAm(`qAl67C8?f_K5rDW( z;NT6T`r@(`VE|ST!i|n7BdpTUP$%b05p{&+#FytO`aC=me=_HtiA#O%ZpsaNy}!_V zA|UX!mWD+q+yvy}-vK9$pPZ{yYl6q(?buG@DbyG|f?#*EGahiT^yPmtN2h!vt)5oW z08Jm4Jp6RVmJNnhe!pg-R^o-cWX&|&<8?Udn| zUse8X<5+4M9pFVJG1&2r?rmzx@EVrR{xzaQUc6VKbl5#?sPCoG=c2DK5fTH(o zEJyW%@zsM3QHQmM2lC|?N75!Kf87-agc6DBa4=icd*QV(*yjoilMY8#^Mv*G``;tEZRMnD*5eEW8y!}FRGw~sDaj!4zf=2U0s9)f z+!TV8gZ958XZFsfVvRd26j#-O`59lF5e^EvUb=t8=?{oWvPmHhUbA(oe3ks2aKJPx zPs#L{s6(rfE)Occ6mRxaZb&(*C%$lUCGpVPCc}`|?@E*6PK^clS}5^H9s}w6qsa&z zabpAAQqnJH?`&_+=B>PIBP~e#KPUAR&NmK!g#eBa?F^ODtmoM=d1RCaSK_w8E{M3J zAHfbO#?3MqvX|N#z>nGsJad~lOgBJPHE8zzuEn?Ig z^JDu8mA9k|WKbX7LK<}r@-XollehNE&C8~K8`+Q`zxg#h_R#(mmzQ->Hg-7wxlzD7 z6H%-S+Cmx!1uSDC*f4IWROo{<;5tqw#e z{g-Z#GQ`6mx${%589r{1;28*3Z?Soy+TpPBZGz}?cZjg}ZO^Cg3_)>0GsbVSv9LNz z;rY4CC9c2sgGxx6+!<55L=Q8fSkbY!n_-W;%1zI)J9A49@25|$2l3RLMcw0iMzt`8 z!8}snE+{q3(CqoIfG3$I7)We~gA~S;GN6V^r3f=edXU-;a zpxg3&m-){JL|5f2(l!siy*~#*y6tI`nzC3OIJFm$%v6BT?YeU;m>F*QqGrwMPN;BYR8X`}WXQ7ILP}&#n*<6XCIbZw&tyCs*ekd) zcZ6n`miSTyMljSZN&O%w8XPS=y~Q-KGlVNgeR84d{kVDjCw)R})0K)`Q?Tj`6?VH- zoy$NA@}_oWR=(Vq3QowfYb29sMuObey@WwE{bAhZe#8SG0O7B!1B;06(hT$L3Qx8U z>I<)N=mRY(lw;zFoTaoc%A(*e;a*%#FXTqiCHf?;g6YnDzLVwEbA2K{mw}KOCEqdm zm08u9zl8ve#%s|`)=mLaHwUqqjmlML$+buse`PwTix^F#HKnkOYejwA>A0XA8QF5~ zw=6HHd}9$#8de<}MMb?}INapWhSaz-Lf%gdrOQ*ZLsNTC(78AWMNE7wsKRX%Z;hn4 z>jCI3Afz8q2kGpK`{xIN$c0_@C5W!kYmR%2kQf2KM|AJEIKj;SKK<%2k6byWf? zrdWjClR2j$KmVl6=aa}bG+jDgf)Q8lMr7!1VCReTh!ENAOM)RGf|WA#;<&qhK|KyicGWfAzetqx88rdin9l>m5TGYYUOK0k_WprUr!@1M z1}R-=QV!G|Ldhes({QH#-aTxtUYCZ}7+4KXrG-qRiSGgHvuIfok)$DJQKui0FYD-} zgB8S&ZfWZAy8DVy=UURCiXy#=sI6n5{XC*sDGwN|iEhZ#jNOGykVM*KJcUeYOyxOCq^ClidpS0d6^e_?5H8Y?J7sE|HRw$j)=OZr8(skAWW zno&~@(owu6PcCD;sByz%mp7Tdx`t>IQw5O3$mwG5TeZCYE{)o>(I@N>B;6a;>DRJb z#^RcTrR{UGw90y+&Z*+gUO5d|x-l7r!({UWfKDOcUjIJbOMKiGoHM3}gbI#?GeS_K zX^|OF@f^=gb(Fg}$!FkgZbh2yJ>E0N*P9}9AB3u=ROgG-8}EpPb?As^7yBC#+;$Z| zIwR(%csB}t_jOF>&0+dXeHHJuJQH#QIm!a^bJZ$yjlUJQD~U8%*A&apvp)lITcQW9 z)2E+^O*}hTOk@QdQZlN?3I&@b+k7V~qUuOhHnKI(t8F4aM~#Y@#y+JYpVLB9r%yB662P#{?5)Q-ie|;Tp@m=g zQ?FSCxDm$B2uOTRudKj(yP^Wj)4NXCOrse5Yjw&%aI>kD3k7dZ(e3#d@%Pg8f;{qG zwn>3-{4Bt}jA%|OmT0Z;D(?N!DX#a3$=Gm`?nN0?kQ>=qZ67%+S46!Jr6ox@VV`4C z&>67?p!DPPhVunQTb(rE7IQnB+2ZU9;gf}QFp5q*w_jJZB%+r}+$tHzXGG=a5kGc# zkW7;86n^*;Iu~6^?=TE%SV93EtFof#b1 zXnHb9y107Ms~45zz(mfAPnXCYVH%Oa3dK=#nLK!-LsxSMl{9{ z{2%kc37``NvQaM?pA}8qSfN3CiT$QA&mM(c%970z+j2k@Ut>&vOCJzdbgXAy`cQ)N z!?253GHalkng3-Q4olsm;`JC%!kdP= zb@UUxj31FVdRr{kJ@WHa6g!Xfg}F7{k}QfdVWs79#O-IYP_d{rXtmD}W=^4{cMY{q zqd)XS0~TTERi@=SSCft6^VW#hClJ)8I$ZGE(Rz;Y=7uR837@$Ki7_T1s%d=}U9z@?ibM!u0e-N10=Zl5Qpe8a+)enaJd5;XmD|QOcWFH&u@CgN zam|U85$EH$LS^%qT7Zh6Z^k2%)9IsZN%$|O;W#E3bzpF=cO*w6`!m)cI2$<%YTTrf z&RVw#A~_d_B1zY?%k~AhadI6xI?vPX&zB0k7vGG#9`!kk2DyrLNy*9daX^-9c%(mC zD%_&?`blL9DT~pz8YoqWRX;2(Ha!OZsvM5O1r^JY4*t1`*m8OOLr#^DH0P0WNJ8qKV@QQ0r*zF}&Nhb}LUTSOA(f<>^C1a!OUHW-2}z@qB;VhD z|G^&Hwd?v^@AvEVd^SZxX~Hdso7q+e(!arT(>61_@g?gwkM|rarFGl+%#}5oqM*>! ziSy6+MWBwJAj1b5haihXGbS!W6XKwj3SstkF6B;koG6MPODRTJ=%j+r0rZ@ ztBS_Ntja=HGqwnj+%wBO&M2!7z+bjzU2WqCLBQo_e|@tRcoM-u|27P(SGMF+u2H2tQaxj;gN^*iF+6qZGZpA#TI9o2(^r+SWiY@gBWT8vn_Nd*M+G95|H?b=6m$ zlWz}te8lUiLi?cZZ@Jp&dU5G?VIC4PPEak`{DcVZmPl(R-Dd_}Vy1>G%MYLaWH#IqK}VhS;=Jo#2b#q5 z1v^lCML_=|r!#80brniqyuTmwPv~r}NKaDfX}^MRdDZEhKusC(9t8!w z;J8vRLv9zNzD*zgh-zc@v`wJcV%Vj+U7K-j!vzY80d{Sd(zA5|;R#fx`dH6Bd@?ZQ zS)2aNyL@vDHQK_=d8{6(I9z6GfH&#ik^ujk6cN(+Q0!+>Ff_j#&pKG7MxD zsCA#hddm;F>Cj8%iYrR5`01CZWcPpC=P-2^^RgNyp2b71SX6(dG=W(`ww}fSXU9cfx?U$vQpkZjIcwNTR9k#Y+DCz{$-? zN8BpG=;nQqqZ0J(EW<4iVdY#3tiIf`I?JLm>00`VNuQtYq@{^?k7XV1hF>ro@^&rj z?$4qn#|vQbYnMapE-40}L!p^V6S?(v5pgL}j;Gn8M}-B3%3Tu~%rcN=jOfW^V^$@@ z&{3#xt%#t$aoQ!2DmZb6GM6Hn{XJDCTd=3A-zNM4fhe z>*bIDjDH1u6@@toC|VSgH4VUi>$LdhX%+(q4xkpuq^+#-=+=e`i6=`9hB#gi8T$TT zrtoZ-qNT$9uoV1?ap^S>18frLw-RDc)GP_DCMIY$K!-R~y0a<(f=_N-DEjkzM??rl z)Ek;X1292To`W_g~YiYXz2AOxiu!!Ai6tp0gk|8y?S9T1H2N*8u-Zr4CJF4QlnN@Fq) zRXjh@ibV_M0`+u-ZpP2;(0gxtaMAj@c#+3#RQ+87?UNu$Z*t(k`k!kcNM*hH{OH|A zq-l8zN`d97CXrzS(-@H1W6J=!+%pd+SJ3Y)0jJeF4|w0M?YEwzZbq9EW6UZbM;0Cf zk2n9vZRqFz8)KP={(E%4T5#q=CS8cZFBqc;aj*7J&p%Uo^ED>en+F-oa>12nkoeuTYkm#%yuJZT04Riq0cKhh$&#O0b+7oV>K;Ym- zC7@VU*koxF3$NzMeUrP-79rP}LWt9_rXc}H;KrC=1?)!syKJn<&46us@Y29aMXk37CCq!2BSDcwt`u*6r)t{vk*ssv;#kB zXigz2DfJt9->N=o4qsFY+;}YFSpR?@H*VLI2h)IH?-1p7F4L09)IV;L3ZLZ0d%;4A zV$poy@VTwO>u(;Ssj)Pz2>&? z+a2h@v#OyN)ed{8RuxGMC|WVD0+qfHQxTPzGjeA)SJ1y^hyxKCkK+PaVR3Q=$*spvQ)}gCbCG5``;0(8iAmILn zPTJ}>{-w+}%2lRI#vIoOEsTof4yTDBAf5^T>3~4Qya_z7+oMopf{7eF0AR+ioI-zo z?%7xWdoGqxJiD{itkd>GlqfKPE)sckOuRbjb@Z#%slp442=e)`kCsU{7A@|1plOsIOd$zfphN zT(A*fd$>uhws$RkQgqB%R25#7Pta~CecMe@tiZp!$SlS+HcTW?st*R4mIr?w8kHHb z;=rZj`$F>akCT}T+AQT!Bb{7j#m6S+fM;<&XNivgQaENCV=-D?6;JP5G@kVb5}N7z zF1{g`TCKnuIPfU|pbPt?1Ob4d(V;R686Yz&M)KI+|JXg(3_psdvzbd3tSxg7|4Y~c zpUn@zVK>4+^A!bsF~42W2vDu{iX?gBAKX*Y1;6+HdlRR-3Gq|zOl$brHIee0%ozG(xj(~^G!bjtIJEm5=_f^g?@YI$8(T{g!|Dsvc$md)` z+9?(7yo6KFig}7EtaFm7q2pA8S&+k#hFL6hx=pM?9JvILL_s)J+8^j!x-9P6oC76= zg52FZ68WPkLrVy#`mwx3v%n-SEM$PQXh$n5bzGxSF0e0LSU?FW#e0>AXk$4rCx-N2UFyb_(qX(4qN9N8h znF5*rP`J3K%0H5A)7prJ@QLXHIucH`C^@6`fSjABxG+;Xq5E-H8f(rG=6&5|{TUt!`QxPN!2FWMM;-{}uODndk6-c~Mmx^%sN|kG4P)VH`Jf4tv~` zTPzKulG1V+tLA5U!ZhioCk)64$t>n8Eo{Se47M&lZ(Q|O;if_LhKH~&?wPh7i9oH7 z7wV4X1?Gsf7|T(Zfmeb48@mh83ww1tvJ_EAZiu{3br&YV^VY7p2={ zxRzdwNT5Wit3S&4eR)0EB6M9%JLS@I_GKO5Xc&q#|5rtPdiy0cObm8DE#~=gg89=g z?q*C{d<_rB0x&s5p*N*B2DhiO+THwEcQYga+1SqpraGDi#NMD&1(|bH;<>qV6L-8l z1%==TcaD%DKXn=ea|QGfLMJ|s`f;?e$JKPQ>Km^C*ax?K0kV>^>$v%`xx;qCtErGi zYJg)FPDjht0SH8Y7;`fffO7scqN0kPgcN4HIqvFWey(` z2YGvup(Yr=oJpcYs!8m*DC@Ws=0X3+j6>oRqG4wvQG&;>ku9Hhd;a4Zkt_KnIK6~C z0Bz{Z#a|rd{W`=^&4uiY52Di62&71H7*1D+%lgU{?vJT?$OxlJEbnW*d)4e#@oAT? zn?cvit`FwzH6LFcAyGB=aU^A0j=m;1pJOI!Fjg-)r2p{6XXRX1A)QKlW2&)nkYz$v z2uz!V1-i5{#HZRU+-+9_ZC*F9pLI>0ocU=;6?KLBy39sF5>(vGR;oHA{PZr&-T&RY z18F37WTjk}(DMIm_mqK^6Qcbo?c#R|I7^s)Mt7{eAMVnrImJd!o7V1KnG1BgF-;yg zJ`j|^pfUd$dbz5a#rv|WT?S2^QB+9E3I~m0xkLJ22wDX~HU6Pos;a7;Ea4`j+zBm(d-SlRMZll3cPRsS#n$dsoBk5)})WrS0Ci;7lhak7UxU4viR z%&s)61Qt>;_I}MCnfl4qTfxna8n+WF7TvP4QZI02eg{%$@LU|Ia{b8kw}VDtr{}|YAAyn%mW!Cy7xb^m zWhz$cDj89f&t4inJ2xwP1$I%4kATDAfq)1wfaIE3r8^%=NG8}UxA=?{$5p-DAS+I) zsat(SWcyY5&Clpr>UdUi6=sK(C{-;aGnjp^x6h(FRoc~Wr|^Q714+@X&i_D&qGxSg ztZ(sUjm{XFgH=HEM(Xxw)??s|F=4h{!68-2Vn>C3J2W?jJ~)7cBC}dzarBhAhG= z`GlHY?kk7f6t3V z(a#@(q;G+1N-1wXRXxF`)a*$b2mH%`*%k%mt}ToE5+wXSt|^?Zf0wSSlvbt048uNVb3ov+$%bY5(~)3iU*qfR}ssD|3px-zM9`u@1(+uCcU zpW}5IE3-7d%3)u?mJdwGT%6_KY#1ccr9qD3?oW~@)Y1rsK_`^|iqP>&Ju?L57Byt- zJIMGDM{JuCq|*Q0E_K`UwmZ2hl~~1bNQ^bCD$P_0J3FsV2pi960k@5d3RIN)K z%>#YSGv~w-EjNafsxE?CHgr`dEZ!Q`r5WI6+ImfgijF7C|G&{yK(eF~5wmNzd4_OE zTQS&6r8e14*xlW~_mtVD%O$J ziM2#Vt$%2T$*cNK8UK%U>q#nXpvYFqqS)$w@o;fiX(LQiX_1LI?RlNGb z%(J>FWz!|VuGpy=7)Pz;G%+UNCuMu(27Q5Kj`!ky@^QjjXYl%>4WJTp#E+^streQs- zMr}L9Os4MHeBC0<8SaLYBGk2R4vAu5QG0A)W~=Sb;SF9ev4;a4N0pbQX1ft-4Y}63 zLv`nsZni2a_bRrH+DW!v?%Ncix+4blMD3SNF(JU`#Qo=W7k6JU^A}U<8CO!CM$oO{ zeM_K*KquY#Xm*XpwS;qxTt)=H`-guyd&IdUZ=V&6RME^#>?0t`11T!vb81R2>*qN+Nw! zyNVSX+L2OK{4}7WsW18&IqH$m2H0>EZk{6B4Skhepox*XzIprHR=3;kA?MZuB~6_3X4+ z%zGjm2#pP}df5Nl(qYknZSo`ErANLWz;KFUzK$bT7ZmCu3@sS;;dLx_2#!+j>e4!2 z5?p<^>@%->+467q%qakhQo@z7=)?qR%q*)tQ zc#fk&mayju&Tb2{mVb1GT(A(qCS;q?)2j$_wdcjE9rkH9PLKmVC7Ygj)_JRBFUrq( zBs+8-FxrN31c==IdOY&1#lKFHTS^W5lTQOOr-kn9-6Ysi<$DU4`4xR_T-0?xZ(M)sn5v$nU z-%Sh(^b|7>Sl$bOA3~BgD^%277E2-$9oC*}>1B7(64lpQ-)Y-*K4?SfEMz?svz!~4 zAXL|sk)%y5mV(z6P3j`3hUzgX<$7x9zF}8jQQ~Z0L(@mMqWr)|8U=Fzf)MzV#1T(T zdz^jmXs+=olK1Pziuh$AES6!Zq-o5)FIS@UyG^YE4 z3;Hd60|b_%MFji9#mcYn$`v?d2p8I`G_>$^zZ!L}$*R#XcwXL1I)oSyz5jw$%%B!5 z;E@_fksTNYEUZ{4FA>D5w5Zsjl!Cl{(`#`xCnZN7zqBVOK+(>Aw$0^!mq{n zuYa!P=#EE*LAMhs`Q2veuPxQ(4?&bc!_&a?ImKkdnsk?-CG!qSwSCf&azq%90)Ky2l4fi;oq7*k*k*aKMnO9EG)aFy zfE8p7^^>?NErEtrJA}EzS7kBe!pJ*Q-|Rf9lm=H|KmRiPLWp3+wHk~PDFMZc7NWZe zfrE-*zw$`DUDW~m=cB~RujP{8Qimt%tMboVovN>CRD*_{5$%c}DBaYliV$0u0*w8`1*j zgLFe4nfdBlY!++4h{{y89g9WMx>Eob@BX z{dnR%?Plk1aKnVH|LiRmi(yaf-$s${zq1={{+L2PKBXzv>Yq)Hr97QlhHD`5T_}m~ z=q_YUwWB~vKcVuO_~ALl&nF0i(#0Z28FkZcUMol=K_fbukev*p!nEtxnl`N43dAj& z%v>g>Hw!%_(lix)n+|QP9Jj8~gzr&y*a3?Fg@Ntzm96`!zDVHoArc`zF-R$;^xWIA z0pI4i;R`px+bQxc1jaiUqy?i!AR&5$&)mhXBqF#5RJ|7;Q8xV$38&{sY@<(Ig+UXw9zBFq-+C3eaj%um>p60f)F?3#w5H8^O|H1ESQz*z2W zs(N8V56*Y>cF(el#jDfx1o_Gig}N0b-VulXQJ99Ns#T+Eu9QEs%bqI}yUHIHYaFt) zt?VrZVZLBu-Q~(xE?x@+z{bg!)$~dYvs?20CRZQq3WS=vuwo2zG2cQ1IgqeA-^eNdsvmvY!w#=@^p!ni;7%X)i>C; zbK((5r6&vsf-BEho)68T1jaLebap@cJreXlMr%>j}Sy{6%uZ ztU=XonH06P0+!Bi{rV8g&nf8JJ!>|rW7U1#4jH#15USI*zAFWofc@hdnQM}m)9)P2$Zbd&}kmzV>3_Rfp@l~^Uja|F~Il4FfLwESg6;60k96gU;UZ*N`3h5v+5^;Q0E{S}OJl}VhV zJ7DO&lNZnM${baS!HVa04u|mChIF(1=(yw#_PM_XoNy1=54S95_xvNL6z!}gZ zXUWw6!5NHQJng$5RF<+`q!2DaRmM*q5@)0^8d7aUf;e>C)IXd~)Mi2p?!`QgrUBZ)I!`)}WT8g&5CgFjs1D*1T@pXDZkA)$A5@o`JzUbn6WR zV*ts3Vx}*X17jLs+CKU;ae?we;n0n+-A1=6&SWVZ85sM6m>#rSZa#aRK5U4oU^cE@ z?jQ~83#xPIgGZn}fXo$*rSVB;GUBwQ&lGtSK}&p*w8pVz!EvFx_>3Ls()ii2-pAZ%81ll!%BLIr#pwhuF-5i zo^|33L=}e*b}Y=WNrJ8Uzc;JRinXWy1G zSlb`D-G}G5Hr3ZJeTV5py?w?%J_OZ&HLTJR>H21>&$rkv*jqGS(W?>RC@!h; z^b2yD*hs=ZzA;p}5DQSL>Nq%5xfE6QH`1~~amapLXe#{ku0x-nKKLK8f|KvxeWSH< zvG<{~>F;2D=3EMzcJ$8i@Cv*1g})3bpPg#6ujW#RZtOnu1SXfaltpw{*3XV<0c5I* zxyl8U^k(4R;%NtFpRazp+`}r@8s>krzfrmcRkC?YpyM$5_`vFP?!Tp9CKwAxYG#lH zHL8b(nhe2|i9zvi$>u)treNLPoDzT9eN^7{gcRJkxLa>Dn=C>|UqVVvo7y?>(0;Ys zy*2@PPaNB>5SM=JXZijSeP;bnX3FeiLi5_=fah z`j$7&GlVkla8~5lWj!IN@~&hId~8z4uD(Z{o4Ea+MFUlbXWC??Xy#ehEB4(Ci^Hk@ z(hv;J6#KCLSe`kGIxKiI969gkvxq2ju_7jycNES2-Bs+MyD#AHPH+25z|MI^sXdIJ zH~HZJll4qq#W~6;EJPG6HW1>qMhT=aSC9Eh(#GZ@psC0M%&aKw{vRsM-zG8ty}O_E zxl*R?S5#?$UoG>iiEPQ_(mkrhNgKZjff(V%eo?J?N`vBDuD-yCHaVPW#a4UF{wYLd zNq{^@^uF1t@7M|S3HVF`6h?93f|rQ~t!1(&yn*Mj7J6K~5Kt8jUTeEWJl|gp#Y!KT z*zK-i$6b~`He{7yj35jENpkKvb`9ZI7?S&#M*3Hw${J&(%QjzIft&x_!Nk<@+}=`fh#V9-mL+omX^ReLu9_miN~9sP#CFAOk2 zEBSe!73CTWpss6=pZUkCu@prZboHbDiAo1ew-2Fx{h-F}N|*i*A!9b7Hvat2HCFBR z3!W)XtHAe%MZYkpZL)#t#?$ip7yDg=yN+gtNXiyGBoA$@?mPM=oDjKfE{q|X6aNNeeJ~sLaXaD9B7v`Uv5@uqD{|JuF{LQ~>RQjBT zw6RI<*=@<99ieP>RJU+*v%VNXVbVs(Y4Mi6j?!lqzl!bg6}PLR&Hb_7DlHFQX&20Z zP~ug;)b=Nm@NFmH=y}33f5dd3R5Ei@v@9v@f@rH20&td5UJZ@oT>2h>YWP72h`xP? z%|C>BdqF4cU3Z@RcQypmqa302Ri%(wsEPj+Rm#5CVQk-byzvO9TB9%myhLsyoOu01 zIDVId4{FWl{3qMm5)S@Y*{c%& z{_%+po(0o%4@#>!WFGz%Ow5kb`il5aCGzHa@E5fN{**;$`hQ6Y@Uip8%3tXIJW(Gm zKB|oBh5_+1Fz$({`ZEc|FGhXb>cir$dq0Xens?O(p>w6)((RC){)$q_jBpc9mgLZ| zL8wnOBEz$f@cdaOq5L75de{gYlN3L6${;Vlec$EukHKZW@Tyyn z5~m_q=!I5Rtq7%6I;ehM9+!px)=}*#ii@r%jfy=e%G?}BwV{=zBG~P^BwF{45?XU- zmH4_Wd*vQ;L?7~%-i417^wtXHrkFfIhDkynC%|Z3MB@CBL9(ES^#AK|Tc=TTaZI1f z*V}Bf8}FtIzmnZJArOlLv}Mxl6?s4WEmuOepOKC6EiQbp89&Z!OUbYNnw6Gd@~ump zhDgJsl#64tsc|*@bI6(VnqF-X4-2&o070R*>~ zFHk-tO^+*$#Uh~dE^tp=xx*YYeLp8=`_?j^IrkH4m}ZV(P?h$OM^D*smujrEyq|~$ zNaM6tqGp}}uGXAV-R#X)RNp7jAb{AD)+Q&Oob5g`g5vJ;k>;vp!ul_XE4nJmH4;lNu^!X%-5jI#sq$^w8gY9W9_LqF5wi z36t#%Iq%9|meg?mNx66gsvNjE$-}>vG-2nY8&BuccCuRY>(N)!g-dkV`_pG0;I>B} zyv~#z2@y9Hxtnh-4S|5i4B!j^Jha)yACz%A8jmdYOlFM`_EzFE)|0YBdLJ})74cJ; z!*>B?Fx#!&z~ft?!dvK5m)GayYT@i>DBk|ka{9AR$gY74q zEOC5=$>!7$1zBlz-@@krzQ?3U{ydOA!fb7AccG<|*0IL%)i=i;_U=2Hn02&CH?xs; ztt0snMOa&2TZuN3(mQ2evci-pqsQ_)peZGD|BtrRHW)(AZ(5qe#>b2910!Aq=XCn z*HzsyK(7cByLaTkyj&|%S?MAwoe5Bc8)vFbj%B{^dAY}@g}Ky4&NdZmle$%#TG`rK z_VtlDgqw&=cCFb7jpK{6-TzrIf$Qx6UL2Qgsxyb>!Sdq~P zdx@r#lyFG}-2Yf_q$<(H$Hy+q;Jul%Lf3x&{?rU`R#C6%-rI|~kcW9s#P$K}VqQWj2_^HX|_iz}JBwCf)!pHKn zDQU}hOTPz+bQia_arfgIk+qQm0+ED>`R!;?p!Ezg?JN*H0DS|M>?0lHZb;1_OT$8u z!{-ZHFK4yeqzU3AG-(E2B=7YJ)VZ-T5A*|v6GZ5;_;T0Cm17TM4`q9{NRV~$BY5VE zZhN!iX-f%`17Fyh&0U2RS&gqHEWTzpT?9;T-dMVl#VZ1+f66EFm6R3m7vszL|2qCl z&H`E`&~RDmdI2qNuXDIZXQbI?v{kVL124WyGtX4)%=CCdnt%3Hak_}jKRW|c!}#4O86{656KvWFD*1hebD ztniHZ+mx=hIT|iTz?`n8!z?8DB2v{ODQIQ6^QfL`0rpE3(Vd-4$14|21zHqsI5NR0#pSUL=TeG>yDhdsf2<>cI&@X8ZQccMiV^K4z_W zyvQ{&Gv{1M;%Rc`>v4O8U~dkYb}?Hon^A*KtOG|pMkRJf>a2s>cu5|Pvl2=uxc3O%?hL`7%Ra8xiQk%#R%JVv+saj zlgHz%6;+%ja~s93uZ~oEC3q11fa(=KGB}y-myq z>VaLWsG0~UOmN4JN4d&ER+1&`OkMwS2&#fEC8H*P1L!!Znw3uP0dm@)Q+4&V;?YVI zsTyNGJL^0l=-XpSJ#yEMOsxn`YfV|$TYhrZSdm|xd%V}LqnEVTNn^dyBV!t3>?Ws$;Tp#u>-F=k(HjyeFtA%>@D`%z28$-(w@}|mT4GV zAUCWtS(lj}U&%*~u|1|lC;FN{7f~9Mi~ZD|Sr=hKP7^y}{~C8>amS`XBhkGAP*wWT zn8qS%|5S>!o2k-nSBu9PUJ9NNn+G&{6;&mFFu|G>X%{hdC0k6XIWyAm+ncpZjtTNyGB*Rc#ydh6l;(!SEE=JMDP*%xI zQ)(zI?Bg)5!erpJs)U5d6N-|NN$YzNk^NA*R5>M%Iq}`TkZ?cuV8))CN&-gWP8JLQ zc^axHu{Pae z`gYOtACWxMROldM-(@EGItm}jJbEvE&rQ#^NTt~G`7tf|Ui4MXo4G3|-z<$w_$f8F zE(-b#09QhSf2oub26;MAg5}54+e^~X_CPEfUCh4fBht)@(682hd9?egY_{?<$k*iY z+hx@9EQ&M5Qhtk#|9r%d-9xxrlCU59;Ezlt;!7GDDy?CoOYX3uQN@B&*+r&)gfKBW zz@Ix*jNUbBei%EtD0Q8k#n07DF7Ei>9n7$!2e(^JMcHI8$Mfs=*FWwa zi~#{rAeO;|E}@KoXY;mQD>Q+M>mR<5)Mk8u#BFI^cu%ZL3n})XO#!c|CD0(`V8ghA z=aK5or@rr1L@I9s`TH}J{a969a(Neof9GIW-ya;imkae5geRwWs1)@ss-U?id-kJs zI7hf~$lpCJt)h)3&IPq1%!a9g^YM=QYb^QZ5=D98J!!E^Q~24!U>io3Y3r`nI=gW7 zQnUwIjn>SWTHtU>Ra?%dky?Z01`_{z_HVRYU|_aqGTvrHc(4AgxU8J<+o+4%g0yZ9^C*uoeOM9a0ZoCw9SESmoOmC<+ulP^ATN&<3%3U z1W|=-Asz`Y^nL5fuqMs{5dOR8isgSS?v)Y#?<-~>a-E&^6{XP00aIp52o$J3(MO-9dtDCkhZOi0K7@{AMyBP zOX62}4xlV7DVfj+kT40YOQyXw94aV?5o&S8p4MV#5Q#OyXG`HAm4=Noa_q;!bVk@a z2>?1H5KxzhIIv4oRARHXS!{AM2g>z%ce#8ud_@cn4a>ZzW;bAqbl6^-2@u6pwUpS5 z0}>vQk_v@vcH?2MYt~;HU`LiisE>Q>@feQE=kM<6q!5R^s|FdK8=uvVNc_A)1U#gL zI_i6>g5^K=Jq9{1lpzEIQ4c|vKDcCOsv@)3Jwt_RKXXax4D1668r#>8!&~Td z!Gv+IGajjXu0b;4PzE50V1$}%JRuJIImA5SVI%=Hsv4A{cVwz!a!iMNU`6Dk9PW&BR0ok-0Er)XRTAdbRH?R|}IkJS=;V zC~0#BU8MJuMQ@l}y(A}2?+njWEa?cBlxh-OEQtX17o@M;q51sDVuX7D0~ODd zO51J(ZCQW3@d@Ncz)7u?sftg+qZb(vO;ic2}rsR)wcr|u_q^~Ff@W7uap#Ew6?2{uKLiCB} zNS&=puFDTk(k-00mED;qK`|AV8u0MOJEh)hH(%*sKOS(l{I;vx&hmFOxxAA94&)sp zA1hR|CPe{XZaT!iF)U^D)tAZJ=H0kR6ZK-8D_Q(H#*Xb-s1;5E(mh!LnKC02dqu5o zOkMF$(9t!BV%zC3Ai3&Oy87$`liLncRUiE!AU>BVV_jx?Mkg81fgtSZB4~qnWV;*! zml3G;&pPK#3KZO4z^{exwqe;%;PMhnX?tn{($K}F8W{&sqkhCsit+8_JWw!B040

AV-f6}1r3ycSP`;?78eoY&dG0)uU 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�?5Y_?elyuYockmep26Hm96HvZ_6oWd1%>+ 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Ì^h#qH_A%|xB}p8) zQ|T~x+x$mW;}zIG8Vt%cfyy&32272OurZ8bUWtr#CRg(T-m7~R@}Xfb2ZEk6erB~) z%uI9@NY_Am3fQIOk2MBN+CR}F>7zUlqHCfrYrt`Wara9VF)`gd)#=WYf&0CCInR4- z_r3h5Qf#jcB~4v4O}|$bAi%g>q_6ttLqFv911hAUkgM-9TGP6?&kCQf!PT-|vh@=_ z(dBhB$h$P=E;lADHNL2%{5#UUyzujnIcupsL#d*!B2w4HXvMLe5JBwU)*!O6=lCG6 zG{g)Ut`<<=m8=oJe!p*f)b-KNe_bd4jdiDFMAUYtHNMTo`}n86Ig@1_B~kL^_E!VL zVWU^>>rKNW)&F$%D*>at2bC-TUuNM57Y#I;0SlbOz3*w#q7YWkG*=n`eq4ME;^$+u2F2B48lqvTX%N8YeHMFARXwJdIQcVpr%~zAziUv3YK{+Vh{^ z|7gh|06I>4Rb(4>$Egb?KmYYuli3)H?8fR#6(s?8aS~ zYbgGE&dR?M$MGXd6z{&i@-`v{ApwWl(OXTMKN-b6`osr>W_+j!6KEYG7$$GWKRQ-| z(~sK}OM-&*&mS7tkVM-Gx|sZ+1o7>YPaCx}KQDOS>A`wOnO7l2`@0soG&Ld`0kdw( zH`s)j{RZego`zfV#Pa_hRvC<@H@!pn_|ZosfU7pF~Rnv_!U11r?{SF)wTV zI|gLm6F)2~!q_|gOI<51ef=V)*y>dsj3tL>Ok_MpC`o$=3L@Zy7!OoNo zxU5Yi;X3f5EyfAM?<@EeVh4SoWIo|~ZOP{M3NlGv^oH=jeG$Zg^UxNY?m;DNJx!cI z4|}nGr&&zy*n{T1{vq|C$?JPL73}5CPxn|`);Trbrt)y~?DwvsLZ{<_ShdeISP?y4 z=H^M&Y@D|Otl@g;;1jag+QsrEcM;HO2cDfvXr@b+(6jO}7b`MkeJ0<1j_) zW<$qG?;mjWtnvXwnr!T`rK465;N9NAB;2@M(FG%^%1z|Mp9k2Nu<((&r22t`?Nh2w zd@G4PuNdr*QsB4~8m?Za0%xA2%U;yI=~Wb}#`1lmBoaWmw>B(pJ$a`;v(&oMW#=Q* z?1S^OF?lt63FHh$Bo}h2{EOjQeZ`9;pG%|RVX!t=_`K5+=;BzkeK)yy4a)6 zK{{#>>R(>Vg^2=OPxYw7^>!<9YINo81Sn^fTtr`Y(}Ywg`5!BH(oW~c{lk70FC6h4 z33!tD>r3m0+?gW3y$lzC&<@4gZT(fwv^Jhuy^w3X4k1f#g1w#);5>DIy4@FSqyL@O zs}sR4-VpWlvRc(-fB%=g8UYQzu1F0SK}IM3)9ra3Q(YaE>k$RF{&H^k&Y9#$FNReR zDo>9r>cnF`wKf1y7p3f$YtzNljs}lG+ZEo#j28M>K-UwBoL7O~g{v|*NXz6a)^-^s zJM`;Tr)2Ner0y;8KJ*3?lV%r+@FWVT~l&A#b^XY^MKcPerZ_rQ<)vNccChqSH7 z9G=$TkaI`}?vbEhnfazIJs#6*iLVu6a)X!8>0V^UasUJUDeV|zV0ZyvvCL?`>nv~RY8@!2IQb#EV*$+V=S>Fn>!~BcXDpzlFB2Ue;0$!M|a5FJiq*=VUIIT=Xh@WIn*0A%nk8H3%KKX zX59C)8-Oa+803`>bbIPTUl`Eep0{zUC+ThPkp{q{FHXq0A^P zjou##?giG4Z}8Icjey@qNV{N~98M}crY}dAq~o4vC7aN{2Pj;H;H=@oOg93K`>dux zK9PNB9J=EgOCuef@?cBQbBOvklr_2&+ZgFGzBYcewep`~=WoZIuOB?fB}#yqb*)sx z14ly~Vy;FHdzx@j!*OBjC6E!2>pL18)Ot>mCUx~L^_zSA&z;9Cyr+D84XE~fmQ3ZJ z6Pk=rC+O^(QTw<{#kW5Lq8!mHTuG4!`-M_Vc9f(D6Y?G6qDxat$vrpVH>Q5eazu<^FmS8g;k4I?CaXO)D|vT-r|Moe@&6l`%=L|6uQ2M?D)(UmLg{ zUG`8f_NDGltywlW220*AaTzl2z&S6Ecx(d*?NkcTor<50hxQk;TnB2nosvhfLvJ=RHs(!=7=u{Y6TdhkkDfDIE1|wixUU>0afs8#JIc4@ltzmR7=W%UxbzP@C z(xo5%vLIXO4hwV!=x|{>8oqEbpN^vQCI25q?73EI2Zyg-l9^ON+nLkJJx1Yb8Kv)K zu1#gQT3B=9S+TM30E>pS8xj+x>C-0-U;NocdRr8iCo6rkWA%w40!}wd)Tdugk28^o zOO~R3wBW;X_{%2r{JT}EHB^YIQiA;2U>W=QwUSJZ`2DKQcx|H=fSQL6CN_^Z=01?w zJw9YoC6Sfxel?wt9knGFK8Z?qP%Sac9>O4fEz;wO`3N`=B~tdSM)OXGbOw_^T@h23 z${JrQ9!ny*8-ZWk4>8~d^#qlw5_PTMA`O2W#SWdc*pEV+#l{sf}yQ9@z?Lk@} zV5QB<%TZX5Rd)BgPEQb@K;}!QO1wiUO^>%6&R2Xf*-lUEA{AWExL!qid&^D|5X)p+ zUCF-qUWQYIBW)?W)ZADdwH92-_7kTY^@@M9RV|*B^ObRxPQV5|%Xhh!#f=o*JfliI z&qz~bkpJ%qx<@;wLzJXXpy-}(fGsKfnna7kQt2V7QK4n4GFbI`dX0g(t5lVEg^Ou& zUH9rxw>rM6>eg;OiHXZ}w{S$SS6=*NIt`{`DcVlV(D804ewPQtifB`(u#1yYRp=bA zMLlXPYYb`=i>SrLv%<~-T=>Pp!_3QYhl62J=B)Jk1J5Hy;(iaA0rK^D~ zLqtcTlvf&EuFT+fq+Ixdz438YSPV-kk=1&h5vItvIA3-KSC`SqsxM)klt_1#*%?5{ z`f|^u7nSZSr8cQw!Go9$Nn)(E^1=qQJGiU}XS$Looi1iDKAisrY>_K>|Mg%h#)**OzsXBkBmITmDTTk^#nzvUbbM=VzO5eLb@fF248Z> zq>BK0HgNWO_rzrm54tBmm!0-bzfMr%?zHpQHANyQ!OvC-Yi?;a%cm7;t_^3udoOKZ zxI2~wuO~Q;{jpEW!|C99!`fK<(MK;%)&cowW1>ESt$0OGh4g?m)&T_mP5pCwSI4=V zI0U__`Ejf$4jFMLSn`nyY)5+Nrh)S}dA{(P;{<&w<{sl_K!2N4vS zJcA@laHm*+HAugy?C$6`=3e#b6x6FAt&V(g;-!Ms_{@&;cSN-5%5Semb~EPxFe0=An8`M_dm$G zi&-zao4_3n(UxqP=)AN`M&5t()x^tQbee_@rs;NN^P^eh_YsO)&4XsjeVd^Oh#!dgv0tfi(0eoOb=eZO+|!235Q z-!e6f{*Y<$_t zHyyhp)ulV@)N#2l)TMfEDo@0FHf^BChQzAR0MPO3utNKT#hsJmY4i+K{BLPXWZP;- zW@&2Lizuxw>UDmRj}Z&r_BxaK>7{zFWHee#DJ-=(;to|=^>7B@U7H^egP_&H8zLUt zJ!wQj;MDW*^l`v19DZDuHJJ~*!=z7ZHTxaS!qw-SystJ_d?0|R3avU^2%_%EvGgUm z6WfY;f7x+VpbArG>Z4P?oj&$VY47pAmut30$lva~(lqqyXrN5=sFYFS{qS&BxFe?y1`Jhpy?&JYN`gh=B8sm` zOPB9Z-{R4K6&)5K(ryF6M-O$x%EU{K^0zE2OPlJ;UvfSJu9WN_D)7n;#Nv42w@&`% zMJcM#Ln@ccx%hu&u(4&Os=@Aw`uxR=K&65s<7aiP(`QI8EpLAqvJ1g`;S~MSq|-9% z+LhCO(DrXl$S{wH`Ce+E_+Bgi9;{y|IrzP-$7>uh*}rsDOeZ}pFqG~x*%dEQ+!dU2 z#ewrH-){FqcOf!S_an2or2R0YJ1Sm&*szOQs_uY#<2k6-*-^h=tn9_GSV!q_aa;Dx zd{yPCqRF~X7pEQ`KaVOHm|iT9&RjR#ybE7Q*G}so8J&CMcJBzpUS`su?6#Wu6)Sg| zC>#+5*S!p{leivmt?6A;dVbnYZ`kC2o}7jMJRb}wOPBSr>ygu0^3*uBcr=MRnO$)I zvrK2v!*Q0dral-cJ0W8HAdVgtt18s#PC!l3#5}qfor`3Ru}1QrX&GHq^f60YJqtHF zn{!+CBz2Ik6btu^o-sGzg+UMuw5{)s+ditze$RlyD-Sngn_zxLofBfd`98*zdFkOV zsfjE$tNK~LxK&ccb=!1R-fp2xvKv7W6j~w@vLS2tscnj_`Iu@-8&~2U`BJ9(L&6yB zR9GziVsdr5$qu(yV);zjm5b~zX62Ar`q@k>qoQ!6a!<^brCEmfQJjM3r8e~x)(g4U zRD{&R6~IM{bazjn>P`~(C7^JlaHPJJ+$c5(^eH8#l?1%~m7>nOu%DJ*By^#+#-XQY z05%*5ke2)Xk~}y~mmA*s@okB8i5Nd&DE?7KU3|rVXR9hzJg0GNI|N+<$?A;lGn!J9 zj<-peXe*U68S5;SwBPSq+XM{xnD^9;OLV3^xZ?Rn(*MMjt*<71HxNdx{eA>tJq6~7X|=XB-{6APV0Z#NoJl+^{kGx zk&;5r#4pzOPplJdtT0I-$w@B_oFgUlM8%nr5uAs0bbI6LF*}5$BK&YGJxdR0oP(!~ zg-oLy*TUg-BDIYBDq^YW9UsK~Li7cd)|Dp)oR~^x``HdOn}%B_q%Utwh$;;K0i>Un z#NJ$8c*~;2s!c#pK06D)9Hz5H8gzOPUn&bY0IM#uGi_YOvL?f=(7=DUOx<e2hO;;@n`~3jXZgAv%z78h)Q@)!wlI~lyT*LVhbq7$rmJSV9zw*v> z?u&B#850xmM%tT)o${*Rzx-B7mrL@+A>Fk1KdV%H>XW`ChP`|h+9AKMhP9X_ZBUty$ z1U^2$`t-j)06?yI{&N`xK!GP8Z#lOr$%@5wedI*p)Q{t%LqV z5CRB6%!lKiqEHYfh?ds%*-Chf^Tw$eiJ>n)uE@RreWT<5lTn;bRx*I7di-VM^X!=1 zjs$1G^y))F)89lt!aY5ryf9AzaC6^F6g^i+6aaJ@`tH(FOlLQ})f0n_O0fBdJVqvJ z$suetJO)m7i2@l6Zj0#5CI0t#h-M(LdYUT57}Pj;=v5k0r1%?P{Ei5>-s&5z;7>g= z6J3k5j#e27-JKgCJW|ovht&r8Q6QO1k0r@3#5!{?(&T0p5#X^3snCbBIB7V9%y;eL z->#kP0$U@9sOjoudzCvt=(~-?CwyJAL>=crF;u5EgCAc$upli8YHy*zirQJvOV~!M zw5lg#(3Z=(tf4<3okLO-WjHTxJiFx;ECD4g`?h4D1C6t4Cq({6jYlBUf~mg z+jp!Io^r{GuqLj2Yy-t~42spE>(+?WxCwq?00VznsKd8eMB9r9PpB@Il|Fk>?=xRZ z3?gL&m&dOASt>j~@Lve$BxKZV{60iSWLA`;DW z_OFT9YtOD%xcynijGTr$dwt-XIDsKa6|oyUbr|RX;xAgoSKnzl zad9^73+|@+j|EWP9%lsHY1*Y$)ATND*x2aiP?wjkEmy<3s|lbfiPkhMZe9YG$IY%8 zx099KZ#g%eD%9{+Eaqv1{?5tA8sUkMF(u1w_zHbYANd?^B_od=jS~HjX+o8aQPVc& zU&PdIBHsga>y0eTZ^?gCHP)F{mod&IE660=g2Gkd(E1f{ThiuQ;rrI%4DQ{5r>nhK zZnbmYLG2zG>m5b;zwbxuEPMwJcr)ngp}?&U zxRmintM~4EH1@^mY8*U~x{EiGMLylM5lYDnd_Y#koZ}|CyUS> zL%@OQgSOBQRt&PdEtf3H?ko3Un?0ir>y!X1W9)($#C`vueT3>&VLl!0EQWU^z}jQk ztMbuQ5Qd-)*b=AxQLws}rBKLb#bfY9_;=+p~)eHNKM zI-Vu;S={TZ@8+!+C)qk-_iW%%-!U4!O?6c;cQQhms_9uqyWM5zhDP7DjKIf{if=JwXwWYP(;USuV^O&$Y=%86Jd=R2>*o zwi@a*#YR2T1MIo+0y8d>o6d8L#9-Pv=b2%!a0U0uu|{CY0v6<7rjIzIdnVciNchrVCPlu1L_! zizJb()+Vm($J5@YK$=x)nMzm{-`FvQrg&Cv`cr{=& zW=i+>j{)aes26b#J^{BfX@pMcHYJKKC^=0ps9Vi#{2|2CVkNA<-}_gKi2?b>H0-F- z?+~rG3J2bW?jtHk=k}OEys4tJq`@8_dg)l|*gI7K0i~~6AnXqG=ySomBAVDfU;e*B z*C>q9Y9@L|Zt#4%1o@`SHnN2~_`n3AjDFisLlXy2^_Rx*- zCmQWrsoL3;n&Aja1=VprDh1~!E!F}&I$P2)kj223>T>(T@?`=WeqKXB9AP2lQkINj64=S@V4ECt3SR#=NP);{q*6bl90-+2=j(x{UQmx_nxem0Pcb z0?gAfryob5{rj(|!7$TOX#OIcsJvPJRwF*~xPuF`WmPgQxHn>05?@EK)+Csyb7hml zXPxGAZ~-gCuO?fRj|L-(x{jiks~Sa<6lbgNxjo$ht(=0?5hLk4lt-NSj-qiK(dYw4gFS5)*^s(b2%i8^?-W8~HH-~IhsWd~9I(i? zU(F~8YXasr&V^e84pX2*UGnXY@R=JB-Y1huVD=9#tD23taU zK4{JKMrZJn4|v+BsPYX)uLfk#LZlMH0;b|xKHi#{jjTrb?=vzAzDGgbgQl)w)%(nP z`|Wrp+d(L;{5SECE`4n!D;XLtVE#g=pX)4|bo|wc;q9H;N@u^L9A>sbt$sbhASq-E z+qCR%v<{GQ5Hbc6z@K8S|p~`zZOm6@>IZHrP6{d-sDI;wZ_;I_6NafYx z+=PtdO63hMFg~i#(4|jB*g}fEC?osk+AD<=z>JSw%esD$%KZFbz$?bgnXSBXnRLWLur1D#B*#Jhb%LWj@h~0eOBn_pRqW z)~|!N4=_of)`ACDLAvtIhui+vnoYUMvmRU|1Qw%7lY(^%x#zBu)>#M*Z~rvWdU*Zo zN}5}8n7$ToNT7?I-*7(JLV-A08Z$ZFUA$Yp=!T64!5K_C8VZ;|YL8Wh&R4j^?3sC? zN6qLr_M|{Dr7Iqq^_2F?6*S`&CJC1uJ_Y0?o;LP?hz;%@fN1gd?dnN&O)b^?%&sM< zSu&k~2H0=W*a*XPgJ5fW?P!<5V0#ry241S%KC$!XMc2PHaS(E@QgR+mCo7@!Wwz0ADl9 zd>k-DyAb7NZ%{+-exnxfQK;EMQ`WJ#7*T$ZKVuLb@XR*64)VjwsDEuHb*-XCmug?; zbv%|p;9*a!@6N6OsHgmvY0fwd=qQKj|Lua>J{3vA1}|GfLM6xFVS_qa@$JSnJ_a(& zI~{B?H83FLRm)%sN?>-yeMlQzJRA1eANE+U`vODQ8lm#b5?u#cnCFw*G%m=J#mmvtBWlz)ksM_^LWo~d1So1IEElWTwHT3M zFn|mVFNI{Kc}L|8UbQ$*hPbXLpIe%^fLsUgC=57=W{m$I?$m{WZ${$b+vYA+gR(^HMH2`6ro9DUp_EAt-Stw!ce($RKQ>Olqp7QW+ z1u^zZ0$MM5gCJp+2bHv%5%U-MC|D~QLavBE6xWujM4Vo#5z_q4v8TIxnaC`)?1&Ps1B7k_{W_ZxdVp)c*9EYG@RbHK zM9mp%nmtShW({p1N}qQsK+}RKC`@-oo?j2fR~>lG!W<#I02+V8C=mcxpJjM?uO!Jq zJ9omzzo^DC|J;5`DX13pcs(1TVYtU>!QdP7 zamF*Xcf(FTCOTP|C1Xr3fbTmUajWW<9RU$SAsGv(gs{0VK}JOC@7+3U9$D@ux>voc z`9RN9eJ_g6zztQVzA zmJ`jM+zvJ+%@KS=^YxKh0U0jlHAphg$0oJ!HWV=?y0v#73DcnLiGQX^lP%?Fsj2#@ zOt-3@Y0uT5qPs`bw9GI#ZxNj9+5UySJj}~Fg*^aZ3g5KX#_kq#Rvptlf=5|BI9K!fc0w;DddZ&HFjmGa|dC zD1AFK&g9=ZXuMN}L2Y{&XbhZ3>`#_ob&yE8a$xmUag5Xr7bY7E=w5md2Dn7of(ux{ z=wQ$MguNBU;F(cgn17R`Zgz|_G0hg7qh!nZ3IZS0Vz5>&*aqgQ3t;hS|C3ccfK#Vl zYke1V>i8_~`hCGjJ)8Tv#zVzQZ{hR+B+XgD=0KH^r^fYYoHF1^ukCC?XH!JDej>+t zDH6e$driIV=f7wf@p>$Adx(I=oI}kgUw2;0$k4OO}U~R6XFSz0}_H1*U3Xg2X zSW*K&VsR8G9T#fsGYMUB{G6lAC{vz(2~B>Y#@Ey4P;vpqL;Kkp_=q7M+s3`=-SnTC zWS_!!8E$wn>DmLB4H7tJk`iPeNJCmx@--x4Oew`aFE+8+BhDcoRlJs)tXZ{l&{`3cD$sQRu70#ZbMAB95Qoq}TtR+-a3LR@Kci|u~hrc>1!2Jz1rU~}53B=_m zMUJaby>Lt^{*duL!v#Jtt>qAvU*|cz{s~?g^v}eqnVm#yE6c|ik2QryK=N`t% ziwkQqG(dbEl!$+ft@Ir9M@zuy>Rcm)*fx0ie-xd0Jk$RJ$3HtiGc&_zu9>;!Y$UlG z$(g<*m2O8OT_Z})&*qrh90@t*K9Z0MmFCEuBuS-mrICdC_LZ*Re*f>U?X$;Yd%vHr z=d+{u%jK3_X>4T2`|}RFUi^Z=;hkQ55(Xw7z0)5O=uYF%BCeDn!p3$P!hjPOUVi;! z3M+>}UOVo;m`5Nu<rvVcINDApD|I&Sb^ zm@!o*HCFvr*n-BNzsU3dS>!GFz5X0}Upbv+N|f~CKB}4qSB|1~z&hSPefj*u*L&$4 zHnh6sK+i_FQ9V{ zL3>XWpMRDB6o2eoxkq=tQ6E*ofc+{|6RvGUYu5z6#=`kcD_6*lKAS@~y(sYXcCE~X zD@9zlDGr;_XoRikYwHM7s+na(mt=S;;9{X+%}7-NO%sQ}wk@@o^v}*m(_P!`6Z9ct zWUn0bkvORlI?u`On?3D!ElxQ?9}7l8b1sUL~$< z?c2P(>qfvV7qE30v(0GSBh9G3kA>e&P@(XZ(2S2k^Wi(TY5ze0OPkik|C}3UMAuLl zGIm?J6&72en@jUiRxkR+0rOPnI=IR+@hNz<|6Jsv$x3~SFYS5hW@I_TZTd>FgW+IE z>0=j%@0C(mz#lb8?HXfwL%T%MOgq z>ueC1+r^OobJvP`a>0?12)OGO7iwP+EjtVQ++L@v@B;&oY(9%2h1ANQ3R6I{%eVlE zsVB}k-HI$~qQATJ7Fsl0KBLh42@Q*9J34-WwtXT9AV_beoHp11=i1AURU!=;6bb8l z;yx!~73m|!wTvapZ;7V`t;YBo-t{JF&c_%1kt&jfj9M-2?S(y++~L)Xt%eCzJ!3-v z`VqibHIY=bZ>l*#(xjOXko-w=$zpEOYY^@={87bDS?W7J7GUXM*fl4A-FeL&_)MVb zcJpg(9EJ|=_mqOoPt@^sJfi`MiC% zw{VEyo?TDc2d5etV#1`tzSG|@YzQ%lG*sH9>v`xe4<%&pA2Y32UJ7nH+27H7sPa1gjUS(X9 zm2+Fnxc`U}^bN_CteI!_(HE74agpp*bF}a8y)^%S9dgP}MtPC`!VK#>HJcVfF!K$} zuW?s-&x7IVW_Z9^qJ77DLcQP+IY>VTMkL5G1?DYo045|oXv88_D0}=uzJg=`r<1Wu zkL=G!!vSLymo8LR-;Rgi8&{ew48n&eVl(S=YOAjkuGV(Fz1sHL-!D8@S@y7( zIOX5mAx0zV9?}udTC4kld#?P``uwE+B>7e-()nwR4>qU|NScq&m==L6@biFLV+h{v zXaEl8sxs$wHtj>RW&RQ#ex5HbItWcj5;v{#Kj!hw5tFL5lpD89rrnZRg07K%?CM@> zEFH7j;eXN3jdg5ybpZ34z{=*lsNQV>+qeQX;^|j?o>sRQc_eraD+JjQV5^phT1UJU zJ|Jv&AQ3jvzotF+-JuL=>iP_VDR(zs&YdPA7QA0v_~>S@>d~0!%=&5g4-UZ#nzmS_ z{aZ18PFxoDCj!EZ$aj0NvKIEhJI{962|U7g1SohNO#Qv{^z@Q+zbWE{lec;NZ$d_$ zLTN?Ye?a5(5M$DFg!lS{4)?7ep>;YhxGEHI^UT=cwx&5N_VWqu@%3DgEAdZIqKdC5 z5+&_y%_y+Y_d*|$)bRM0`p~UzM_9S>{G&R?wosAi00}XO_0LX2H)Ge*RG64u;Phh4 zWMa&&LmuwpNqWBVchQ9TqftqsC-t$}YKM8U)5z75y;-@-yBkeWj2kKqTKk*X+kD=0 zBZTI2YaC?(86m}AGwb~pLpEHt1cAOmFiVxAWLow@t4p;!o}*d4~IW;$aS-)lX^W{`&YZ!h>Xf(FiKk;IF7 z?(?6{lYdZ3jAy_5iGSm<7N_nICwi>iH!$k4(-n;j=?S9u=&4ofr(Zb-ialqqjMTQZ zXI$~)Qcv&o;v1DxO4lTEDPm6oD#EBVQ$%3MwF@*jth&OsP%a|G43I}Ca{kuuFDGgQ z?1|E~o%YyjTl;~CJ*wwk^zzho?(TbM6OTWzv@sjYOJZu<_xp1 z52zU3^gm+Li{lsw{(Dj`xO*Hn|3FY^Y~&VKr)#tW91Mm7Jy~{g>q!kxrqcP8Jz{K! zKZpGKG0U-&;ThI)B_Kg~Id(V_5GcTluOH(kwt+%%APi3TMBkYV$9VF^_?r-Ef_r7L zLq6%6LI@9rB)KI>eXVQKw#ZLDkZWkwvcbQB1#j1(ajj82=6e+*bv+gW7$^Yqow)Ri z+-+WMKQf^J65COl&x`1>?mr>%KY+0LoyiH{Sf zL-k3SG@Bquq}_1@fzkg<>+-u1B3~w6(2_*Bnl(_3bMjA;N0}U|YtMTwe#j}^8@A;Y zRyU!2yDt81(kjhddd{|BC z?dM|JFe~pOaNVx-M}WkkZDLYrlJ`l#6NJL@zN!V^&SEuUgHm*{ zS@gv;f^mczEtAwlP0B2jb6nn5DoHXIULUGVuC?I`Gr;vE5lF|Stb?sGA`PEWWB9h< z76r=rglQIm7pcz>)50K91BbFhSV_KQ!R)`h)$$Z~6|ux>aPAL(4XNB(-N}4$kMKCZ zb74E?ZY?WBiXRShl!3|5==5WNthoe7zl1;(IFP1YgWJi(@FuGa<=@K$L0skxUzCOv zk-ph+*PG_V!!;@o+qIYxOjFF|lU?pu`cc{lIkqEZHooEkj|*-~ku1z1jL6?I(<>;j zWc|)-je~-0F%{|*_pbQoCt{6*UjqeZ&g_?I?F)w5Uy@@VRyfaqVYA}WcU4I-0FSL` z0cPJn#tn)V+1;U`qjy!eT=l#Kcs6t2oURn~Sf%KS0U7D_u2)@jc|c@~{8t`sgUf-E zyrLic)a_(OrY*jgFk8fKER%x1?cmiYs#eojF*&^WDrhdFG3%{Sp17e^&bZHwQ zGXhT~8b~1>sVS0o5GmV**-cW^tL0mg+0_8e14VKnxE*i*LAPjHO;4xLIx73z`e=$LhTa)*Lb5>k>2Ph~gdA43p{KO|_i8lM1BMivAf=$% zo}u@XusSb0y-L;Lbh_!;d)_JNN)VSWspLsu19+p9Z6>R)p&}#ge2Jmj2av2{MMRx) z>n*C3KQ=g>kl4f(Mgn1?x_ElteO-A7h*#S1LiPr03Qn`hMR?jgZ*OqjI4nWXWRh&)f(Qw?FN(ChM}W~ z%Oiw!hhf$AR3%o;2V05NM~6t8kkoGi^jyacDPHPVmbw3`ON*}8lzei2!<&*MQ9;9Q zk|=+?esW&Uu|<`Uch$zDgb@i+fy#Az zxy8YE=WKITqBY7f@9J-yOW0s3Plpe9608+(Co?*>IzCT?VnE7ea1zziDshDM2%xls zqji8nC^s>POA7&JH0Yk<;z12kV)wzkjH{U?VCG*EsepLoXu9AY#0+ijKc65BVmlIH z%DK=X6R_59UoGZ(&Ai-og|z-y;AjbVuQ;>ma~gr4?-h2lHB{>B0hn|)8#9E<6YKxf;B>r$r<$~4FA z@q96M7`!?lK@9ijPlKvmI{BY|w8ny|gzC4HOqn-N+cvdL2wA#1IgsB6smQw!>@xSJ z3-`V~zy!D0E}OFPN@g{kg!}54d}l_5qW0|gOmKzc-HLsI*}gVOW_ExpqUH4=;^A4I zFj~A3b&V4J-hI?7*!IsTG$gp0mYfLH1r=zKfzG0)m}9|g=2o-O<%}1Ji`HJ&^I{@~DlSSSvjFfqW*GT##j1Mu35@xMG>ZyZ$TIsLSNUNn8~YEP#jBW- z-bZMXbvd22QBAy_x<>{~YHQl&iChA%rkqnt|6%opdFfOh21*2Ryl{DqB&dHK<(i=mnl=nvEPgBC9 z47DZkNmdz?OvfjC{XZS()O^yt7&><3D10c>Bf7L0alVr9>`-kY3D$n zb0ME{lZ&3RXU<>b_3)K=$%bOZw5!zx_^gc(A^+mzQjz#InoSqA?%6;pa^52K(Q>Qa zbB~N3=~rd4d95GR0%>`Jv{cv$?B+&V|Cn0;gXSb>-lCrRYuD@7379`JwB-3hGgatH zIN0(E%;)YeW7NF@#DV$LreJO(7HE`^1<-x}o-E6TLwp=04Cg|Zv_U`6uON9833%4z z>8hQ`G_K^sMx7t#HSAN}DBsS66)9hL!U(hSR&z>X?wgye7GHRK3Ug(5`9xXA&SKvDZ>;jG z(gmH!|E`h6-av%=Th=X~jzU1mG@T^-=XVSML398mItSeeNq+qK;oBz17J~e{Kdk(T zek5Qp)p!3w0Z_?5*Cy3TU>f^v`n`*#Ba2vMm*hrD=E!n{)w}6YPjyQ&E*1v8+yGEg z(J)BBAXcu~CIKoJ`ljh}xTwL|OnFhG8$i7j9Ju%R_yi*Q(TR-e?qxB>Xh4NdAX5?2RON48V@0}w_~9Sc69!q5?SYxpE2An*1KspkR9*-KG7`pti#?7?kE z!{cFe+k`=$PXR}V;Yf_W&Dx&0S@u*2uY}dTX^tosKnfr!!K~n-vV&)$DhN5^k$PHV z`?S^d8^w*9^xrI@w)Qm%BNY;wnz3*}JyRSu=sp`w$xyf}if1#ohTq5tT1Uee-rsua z_)@cB#RMJ_giT+0dbUW*Y(frIYU>Cq{v22be+wNwf2E4P)Ec!_;A{|8=&$`ok=)9_ z-#WlmeRfd2Z%|Jr9!4?6an@Q`LK@`!-p(3ue;1*m)u@E#=y+1Xias6^hLbTYbPM|_ z1|C}YQEwU9n641UR{2=EaK%t-2?Mv&qdMMicG!#yw+3ui;3`;*`1WB)dpW%LQ|9l} z?4{b@CFB7LHbaGP{)nJf-R`)eS}(TI`-m7@A?Tpk(xPwkj!blyzW7;prvm)OimIeY zS7eo(ULe7mM89v*rRQdmt&fE7apA>${k?4^dv-rYQxl0rmtgKZcv!JR)>BvS+l|C- zm1=?1#f7xmja%$C#RZ_jbyh`ZZF%lz*7lv}_z`9PU(F*M+h~M|zA`_H9_Bj(0d^K_ z!&@X@eJAg|UKjT|gEa;ESGl`CJonj356II-@*xQkg=p)s3S+qTa~O7Yv0LONU{cFZ zGU5gy=^NHb%T9J0>ZI(fOm9YfeSC2<^1yJW)a43009d6URTX44l3d^9edQlZ4Mdp6 zt|>`!(QhI1L9IB)+j2hBO$5#%^}f8`$FbC%4C(#eK^~l{J8|&-0N{+;9l`^;96}IW z9p0dGL?z3>I`zta?Z*%PJpQHtq|%W2A23nS0uAZ(?30J1W1OUb;KB7=Cadv6GXMp6 zl8x&Lh#u#l;e`}<0dT;oQghd(EQ!JQXiOM;BFMFWNP?qvHd`tl22EiZ>+g$qTuM;wzO>; zwVYvm)40gzf&OW8X8_EBRUSUQwGS6ZSl6-Y8~hpXrRhwmRkF(%aD@pN*qf`;7NFz2 zoBuH4*7Hr9C$-mATp|&ajSjf@9ut0SmsOTK&9(24jH3W^0S_B2unEvb4vmW)cIz>7 z`V|3;z zL_iUTd$D4&?zWosA3J~7PkSl5r*8LNjt4Wz&1XwiSb@?HtlLRjeVIX${mVs^_P5q| z+R{!(aLc0))Z-~O7Y#heb**imtz2wx*69|v5KnxZFWf@aGVoB7aG`(eh1`1&D%JTZ zAneXasvX65jvA|mg~i$X75YkyB8|(($Dym6mJT9MX?bh70#AGgl#x3(}#4_9pcHu2SAsL13?% zh=kl@3b6rQFX6QBAYUzxk|P60o;wcKY{I-u=Nh_~vibvmM{l2;gYMco3}t@gJ~rlQ zWZ%$nt#92~Uw^xbj`5M0xyP&^^kfVuO6J@i)-!p+c*!GnFnNC?)cQBNyX35}(ms)1 zq?<*kL~jvA3!4rQXWx-KHoihkLF5Fb!`A`m@cVL&`Y6w z2-I_Oh~9NPlj4*-Q?1FxHBK7Jog|Ba-oAHa%E~o*h_gGq7P9i zjq-9&CghQTN{kZQ7H68oi|^W$Tq$uHQ_7YKxAZy&V^fn)8&`1e?%Jc~?6JQ|ub72> z(^u9ry=WdjCav)Z%r;b3WQm=c-g?sS+ye6?k87Z$y-S8Tro+G=Yrk^D;Iv=Z(bYW& zW!FLNxQ(myFEn`ZZt<*xYCqcjdJ^(J9wZaj{wY%zO;GN5S??3O=E7GB!DmidjyRuF z2_anOOnZtw<4c;Xw`u1s2FHSJx{QJSZ?**Yxo`*Y-VY6Zc>5o~N&=;#PNxnQf&p#h zrc;;ZJ)eol|$1&*e^?cIub3UaV^AQ)5%VCyJTxPSZV? zW#LE7=~Ps96r>&&Y1e2%X0(g&Y*3-&v<_6Xq2rQ&e}+&5k86e!#(3T<9e0Ps2G2drQlSw?tv{49W91BoI$y8lU#V- z?)x;wB+wjoF0K$D>6flw^dSMZOY53{R9#=2`B2QuTl42@f_GaQUBJJmuU`{V`e#;| zWk?kBtbvKUM{hbcsmIz&j@!z+lQB*#Ruzj4};RFrum93vS zFg{7qyZw&P2*Ec&xJ@E_90BK5@(|U7f$!oNm8qRQeUfBY(QXZIAPZ@naEaRHcI1W% zNbnypfG2e*er57Ek`X-A(WM8I(L+#rf}~g zUw1TswyWhtJ?VTO^S{}KmsIs#+9O}l2b_?FM}|f4*#XNNkWClm;K#7!fJUp-;h!kE zhO#D-^I z5sTJ2%h-8QXoS88)Y*`sLrJ`R0D=_L76i7VN1&lIM}SKI*~y1R)D@MY$d zFXY-}tO#sXb5U?*k^5~Cu?PBK3mtJR@`B*r^LHj?PjS0-oIh&TWr@Z&TMT<%Un$c# z*43q=%{hOveW`53xN~L77td(0x8ds8&QH3QVK<%ko`@geJ%9I;L-s}h3-)|GkcBz#%Yz2D(V+#kccy;!I?+N+tstzoyq7bJ$P$?m#z$jGEQ4@HK0`> zYAVYIoKzedha5$C@9AkT`3F2v(v`I$0>H60{>ugLgk!2S}vTNaKYMEJtTVVjCG z9ZISl_LTh*d`kqMZd-fUduB=T<%DtRYKa#KDau>K?}dS~Odk_quUCr;8a7t0a zym6ub>+>Io=XLB<7tb0(XhoC$BdSxsDHNoaEu!CKW%$yG+JoVllL%`Tws)dzDq7&u?8f!vIoc)!q}volAfa=W_Eq*``CWvy0`0M?bBGEM=G2|Pn|AIQ1v8rIXYhfpTQos7H zc`RAAm48iB-EjUqISn6IO9`?w;C)I~p4e!Peak)d=OO2AXKbL#KA}1QY+d+eYiphq zSL7VKdEiu!{qtPLYz5G{hv==dHLlAEIaH+QIqy>SR(xJJ;a70L<_mu`WoabiLWhC7 z1=exNnHjge(ebyGaXx{RM@zk&GAs&NtEuB(sQxOP2STwTQP-E#aRkGfp}o7K8Rb8d zp1csJyKBWEb$sa>YTH9E;J5>S%r9P22S2*ESS5|psp8H`{>@})50Y;iF^$iHHy7+W z`}Jz;F_WB|WvUhzlRNyvob6{b%fO>yd~@!k3zZz{<7Vo!2S8wtBGgTK)%TCvTb&+L zE^Sw2KaK;;dwM*KD|8$N(rHQ7x&mn>QFETpKnP5ZL+Zymmot-(UMUO9Smm1{lx}w; zclr^X>lC*A+re2lPN_QlsXKyT7t{c6#eG-4+jmhQN6QU?ctvz&s(uZO`3T#f>`fl(o9YjU*G(c zx+MiH4GZM67v19jIcxJkiFanlY(W5EFA^K4&EC7V9n5n(T;ST1fnpz1-K70P-DfLb zAJX5I)$5M_a~QTaj?#^Dv*?x6|o$|K9<3cE^!EU?$SxA_jZ8IzHU8vwQ z1_QD%g7|GVIr60yn&H3Ft_mKEwZc6<4OM^d>guSiI4^HgsIX@mMcIqgujzv=H>%~z zm*y!TvE%$Oka8*^;()Ti8X+*gWTbxt!E_C$05H)Ds_bVzJ53){dYllJ)2wyfyl7g9 z3c*Qip1hk8oMBRZ-;*pl2Ul|kIz<@zu+k+N1E-<;B6qS*V1(*yNQE=}jrqEdiF4`C z`1|Q(_hIDvQPI4oWzo~!RzWm@tE;o_Zm{Hd@`Jt*txq=`km9J$ntWB_sQ7JWAnqjE zzN?h+JUB$5E>k`bSAC=@VyHR{Vqq7=Yv^@g9_aB zuj=((+?j!B_hXrLJK=XNo&VXp>K5u-fuOtcbs_*7ac!1d-;lp}v}X(R;WHw_ zmZH+Iq>O2)yf`>sW~@(9uwj2cH}gf|s-fxCpV!6C>Yh~0%3RTPBUsF%j&aaAnvvcu zgqA}W>2=OaeB|rS1w-Lk%Bs8mY3p4V;SPFRGrEy+^;v<2LRHzfOxRzuOicqv>9~e5 zs!xHr(xusU1CPZjk&>B8U8dX|J=ANh{~xS**MeI0M&VDzqFKpewSFc0kRjUhnq%>f zGqZGv_=d0T-hK9{&Zxz%ZU9Aqk%E-Cx$~YdNIas*aKtr zgKip$#WziKqi(t1H1}_;DEwk+8fW(5=H$N%!u;6v47mI1WRbC6o_DM0Vi3Uzcn~^UOaDf0|5Ru=a00yKrx47{KzEdDQYB?z*9?gcP zuibbu^|fTsR`TV%F(3+(7Ypb#3JHgPRG#ayDuN#d^h-82JxAj$4;UbL+>AvsQM<9+aewhr>vfr`1NntgYM48h=Jvw z5!Nbv22GlU0Uo^{+wCxfAeRwbr&#t{`dTg^E)^*UiIg`f4*#S%bP%= zYze!>xeX~!ikJO}AWy3il52)w-=kC*2+@9BiFW1^`^QI(Pg8 ztmxyF`HO`gUC_}YAL&LGvXf+vGx^xHGT;Ef{=8G_J2L&@Ha4|Jbm*F6L97Qik(o9W z0NY|--6Ra>P*zLSnyQw0b44EHkIFZ)Iia?t(GZ zkZ$z|XYQuSm-6YuW21(`{l+Ps>A`Yo#j8Vh@hu_a-7;njxE!7{ok!?V^p_t+@>74T zKDHYgvxC`dz54YLstFBF?p)a=muYq>*zP)1E#G^w0G-qz#_@sz6cVtiosAG3Ov_~rRX;C4uo+H5kg7@Tiz#t)%%!FfYEI*labswnB4x2nVtSEbWW+Lqa*s>A<&TjfQ;{J<-M01M6Xd z76j^bXk?ktNab5tw>2@OcOR^vkQ7kt>R}1-TbAM$CHIn#Nv8}tym50-{eBJJ-IEV$ zj@eKMGFTsQ8qM|%Zq9uSXm#BMIg~t6->SN4DV*$IyCen^T$#A2bZJo6zcl-&3F78C zaRB5%d=ngEPs!mn+w^1RLf;^c!LyQ@zxPWv&pdw+Rm8PTqg*a28-p<0-G3u9OQ{fZ z_<*^c<4DG{ZyVfKMSEzW$eN4aDke_9Kdc#rgycBZLv`|0gM53L{k15t{o?Om!-rV-Ea;A_oo$u|sQl6+pr0+d zJw9|0Lf{trJz6s|D>5lEgb)=|AV6Oj~Rf*oel#3q&m2JB}$3Uf{XRd|43lbQM*e(yTPRxfru@EcW{t+eds0I>< zlO*$L2f^o6^a|7XjJ5i++<;HY@f+yvT{O|XlpJCqBnIj#+YJEUR1nK&(=ywK(oq;1 zU+NXiLEpvkm$R84vs=#Bb29~bLbEp&xZnF(Bd=!B$#4S(92_ZjD9^ocauQWCUSXS) zUFH1*0yR_@J`3C;(?*Pi@+8~Y!{W7iVo$uysprkO6rqBz=h^4eB)mWIC+q-E{t}~*2(M_j>`VG$FXr|{A#oML31!ZF9gTGR zucr_!eH6~8zooj*hnzF_Zt>FV%{a36Fra^9dsb?ee7TgV#J;!Lr&1e=5N<}vhu(+O zZ*(gRXcrc3NI0pQG%97NWb#tz&p?iNHPMa3T{u0EAcs z^#`9wV>j+NERTZiLVDv^wisa55~Ms?dC~dW*go&2@|+-CyFjyu9kvy9E)nE^qaWCk zqjs?F!6V=~@$xkL*j~OI_Eg|}ut0jJ?cCG}@wFT?khX|SI=KZdaNRnzDhY$kZ8V-0 z8>5S!qJb9T&S~jWnsSPIm_-Zq%nf?4>2Q$RsvM_r4+an_0t;t5Gcxb)aFF__l(SEr z%+o<12?qZ#4&afK~SPeEeayosT;qv_<2#6&yIk{2d+uER%Es+oDjt%$e z^zpL+2bJ}0<@>Nd_Sq75l9Q%@Prrob-Aaz9-A2>SCnCF>*1dG=e0DRyy-nMTgZesm z_@y?u_GT_mF%j$#bO>9P<8-S3nUd?M+h4$6A?ZcS?(L2_!mWxUu3mgtoZ6BHfA&eW zAM207halap-!(6OaGr`r-Dqk`sWanZUv1xx z%+`W?DYH%z^T+uP#$DEWzoSyK;-8ruUExtH{Q3`-WhfdK00*$C)F7AoUcJQUaN+G| zdp`sIO5uHF0c&~rMutq$#ZK%FvDbPdm(?c7Yz^UxfOCxe$>R$C*$co!ikS7L%Ua{P zYPIu#x@s}izi=Z%K|oeCWa3Gr?QyVC(+xHB7+ANy&G`8*jjz&LcSy#|un5w>;a4Yq zD9`*zbb(zQUUFrW(8YXRWu&I|rKFne-;N?qY0!g-QPMoQrR)tEe}je3Mqio1H|mIW zvD3Ykf)T9e9WLh!;FwcLVFNUba>QTdL3yQ7Og)57?GKgq_JzFtxvQ7Cc@L7LFG|%Q zl?se`tQZkOp)c=SBnSstm$`==pn&3Aj+IH%s9J2ADr`*pI$zf_yg{ZQS$j{8=}pq) zLt?&biI{qcS&8WlKcj#vXkK8#vn{|R9uP>gNd)EleOHA%t`L(!z(TD!Et}#({Z2>dZYUGt=8fPpHATGI^|8 z%}Al!DDh2c?x8Nd({DijQlTkYs{f)yPz|>>ODxDro)x~M26t_7dv+j(4_y{BJJ{_s zaZAh=6cS;MgojIno-5BWf}~VN2-op4XfzK*SYv2t87~ar^Yc-h#ON8*ZK`VI7ouI&lZ}L}GwU?=x?J(MFzez3QHl<#oBmaX8(*w_$aK zJY%Tj^kSP(Hta@eR81B_y z-hCysFg!I++W6TkDETPP&iX!ZB#SI#C9dZ%&5NE&IbZy-bE7j6-FoDG;zR!=$Td@#@(8YNfWZ=x zdkf?F5HedLmpyTB0KygclTk_4j`axNDk&Y)Llt?6~ZJPv5)+_k*+X!MV! zpidcbvbfGL@yByJC?{onN%c%gl~dmc@JB0b>S~KAm5+|)7^#rD@f>VHU7pU&mqEOIO>?>xjEZKA^tavwZ?*!eYQ$j>++E%QpE6mn5P{$NFa zdsbei^;{Eod}}4+y6L){I0J>R#gZ2%q+JTY#&Uqr0XY%fU}i<4{Zlz%hZ)%D=0Yj| zNJu50=kZyt517xT zE&Ef2!slk%5C2uNG|zNV+AenEdx7p=$mw6=W=G5EG?ADvwVp@Y3?#Hif@dYT`K=TA zra%s=8G|S0m!z-tIgaJpz%SfAeK50qjyZ2o=$KXd*h_t~UCL>k9{vNPmn}ZF0G?jn zT03#`112Zx{hn* zh&7_L=ALssLybp8)$})9#>-*PK~;T2Ksu6}^Bk1A{xTq=uK#=k52M4vvjHiXd=IxV z1f&H+PJhKPk=!5H|D&#h>#~kWGk&%3P{EL_z#pU}Y zgata!ZDU*N!QA;{-G8lU8Pz`QS3K~#6$&&XQcO`clOh3XGzEhev0Q|p%Ly%3T(3)D zBZWPx0Pw_t3KUd>l=qtB@?%Lhf~hB4Y*rBe%-FSjA?(#e|}Eex6$0Qm)oM4o)Tks$e{MVFGNR)OjNynsSQg7azSnIxq1+_jmXpJ=DRDc! zSN=HwQ?JW=-X;8!Ie6gFsL%s|<0hmRPNj>*5hZi!{{|3m*xFH@Rt8-Zj8n*v2Ji3Y& zqve4jn`Y)Q*~sZyA6x8e7xgAJ+QW<7x&Gn`dt&zGqiY7)&=bh{!lOV~kITlxmDt2X z0={X}|92N&Pjpv-oI2_9fMf-ved1Y33b~1w*l5u}g4|uRr^UG8Hy={_?t1n@Hl??X z@Jd7H@U#KBY*K!I;mNK5xmP8aVB^fNhScd8AZ?OLnzh!L#vO0YCEn+GYHK=Xc>vEgC{4U|g!w`>{3`bNV8`T_BuBI~ zbP3Hom5?Zt=l2MxxBSdL;!)oVt+GaUX@TuI$&W9KkrE!Q!>~u}vgjFY{P1h`BN$rf zm*g`tskfD`2kC{?@NUP7laO8TFLH^|$$UUQOmzCEUl^GDMwJXGT5%g*q;htMUw=(- z;$h1aCe$9EikNbWzMI%_S`U+ubCO5+2b2C|T-!7k@Clt{3fy9T$y~ei*(N=(X>NFf<8ZH&~N&W~*sd!iD*v2DonQY8?(H!L^ zB@EX5wzB_Z0>d9TJ!vQV2#B%dx>gh58Rb&NPa-!58K6E26YO#zy+>MQ=u0Ontuemip~ojE_1{4 zef*RJi*~}4Y|N+P9ZrwdTECE8vYQM(e|V&l1<1g?;`XcmNjVtX%G5G=M{w{5uF8DpD7Dxy_WGY=|{uxZ|%YBO{Qmtsh2jKYjR9oUM(;mPPoxR9EVTcglojC3pb+$Dk z-4l@=OT6bP9899up9xItF3eoyw{=~t-Y!4Fh?xwOR@G6vncyZd>zh3I$Wo@$;=o*) z8EmX`=#+;DdW&YYL_d1g${qdxq$ElI6HhzsIX)7fbmbU2Mr;xx-r6wE&&XMg;PK(^ zz8Scl{PalS2`vXdEK)k##iOoOhfGV?}hFbj*Z3|F%ObQ-ESbcb!AG_i$CYsel zeDNQDHlnRRKoA{={1$1&=QBm{=Vp|(?=&DG>MzDYD*xPD#Y)=3_Lhw2S-DLvhqg|o zUn_s{MG}VW0%l0OoobP6HTuC%-!-IQ%#xS2&;JO1R1K8?`JNPMOk{@&L8n6YuTq1@ z^tIQn27YcZwhhp@S9SVx=qSX$ve#@)I{s0eq43;Eln$cx=w1esCM}NQkpI!*d+114 zbqH_emV39#iT^(vwoC^$A_i14ZU`miz~M(0FaP_yfBjDa6L?W@S2`Fr!Uo2{-yeRz ztNX9aZE*itP$@?AzL=9%Ri+_zaY#VJeJV?DR{(%ycb#ghG!7rem^NGrFV;D|8l~>P zxDj)!c8~<`dOFyUtl}^&FIUceZSv{yxoPq>@{s)NDtabF#jvM&>L8!L?Gm!6+G$j* zubv^DrSdUzA&kt;pa1`E345W?!MG)u3(Gr3X7`>hJ5%KEJ*9wF4St6%aadfPQ}N;{ zpdL=!42Kj!d@88M6)K_F&Tao`lh+PyG?YN%Q}18_rQZ`&zHHzhGXr&WBCQ~*NpuZ^ zM1Zpm)(fIlXoqXKb#8hMKT9$S_;rxsk;d<8*ktL1iNx&LbPa~>!+&0;41E6|MQ0ul z)%wTrb7scO7>u!Io!!0-NfH`k8?q-+sHB{19^kxh_z`DX=Kmi$wUU)y1x*+yiPoY#PM z38KpeJrJ@8;?I>td~bB^@zT)6&VNPcfK)t(RHB=#aqCE-vIKKal6j4a7d{4uEU8L-`v-5PCqPQGLFp;S2vs0iaZEbXx0B$2=e2| zm`}nyUAO@!U@XQD_5OC8dSBu@4~=6A-#=GL3J{N84VJXsjxeIgBT81hqvSJ0u{Rwh z2OXZG7|9$Wa6FFtirk=;A1mfLQxoU#JA@XJsY@e3_uJfvb)@FtBcH2`+r#-e)jLE< z@|$Btje^R?tDDK?TG123&^slSV*FtCIMB2AcQKpP`p_&z-`LFi^9{Nj9np>5t}+R} zKBJZf6zy6=LCwcxg74f@(UA)~$)YtB2~)`9f{zMlJE+b#$p`6ZIOwDG(nE zSMh2((rq~*-7cSd81w#+f!#IJDzvw_(k2kDwwd3FJYFELMuTrQio*49On|SEaKDCh z$Y4M=1h;YgaLXul`5S8S01zxbD}6fKL#ZDFo|38kD_~>q$SO*+yFSmlW7!&2{}4=1 zD!AOzX8E_TWWwwRMAO>JPOp~-0b-04o2Q8o)W;LjM*hA804M1I>C}wbdYLm8Hq~BD z>BHP7l_N;YBFi0kTh|!2z#M5q*FaD=k}Ec3_XIt_Y?t3gr|3%wmb|;SUR8|ZQ;T;KpFAdB#+=lT$rTo(Zv-Y)1XWG&L07)4t=G&__6dm z##7S6+=O(~x^m_R23MSD$%&WoPfO74G4-jM_4o z;5ybtnh4VXcHr4mdJXEG{)VS#Frik&Wh>#`xeCA=14el%eoESqQTK+ zjUip%(E5VvS&+6+2QVAq&Nct)6lNS!3#xl?BjONyul$OP=LYwZ6Ykpe&1*O>dGEu- zCH0^OFLv@}zjF$$VPZ$5Z~~UN4KS?^uZzi-SqeY;l2MQy$Hld}!LX~FC46OM?GL-O z*O-5G?pm`-<=$jO1hPvrmwWSr{HtZ;F1t~dn|Fs4gU(fV2sO|XzRc1)Ztgf)YdLG% zbvcz!>%`r|rl~_-$Rqhfxn3F`FnPo$mlqo6baN+ytB}P^kEC2`jW{pgxPMol^LY>o zmIU{0fwK&r4j@%=VZ+2qFuo0z(9gs{c09q8yid0Zdzh zl}M}4j)QD(~w%)rkO$Qr?j)3=1B###DY&|z{u*B z)w0X=$~koxuJPN>n8pkOwXsR>&Q}eV=0=6(2gjz3e!*?C^oEOWp!9=fK**93mHh%l z&v9Zmz53GVE^+_af!?4G@%i3$md@!HZ`U;rTv?m8biC}LcEuah3(&rE%7OxnN9qQ{ za_5LU7W4L*_Oy15L<#~0M~kCSpj-`o*@_;wLA&I7PSwNz`v>xau8`e&u=?zdweXBq zoYxJ8=T9e-@C@i0Am)U8?b2%!@@bwmy*sI2omfA*J?=qjeIobZ`}EFqSMGFM3n`ik zoLc(1LLRf`K)=AKk&i&a?0O4jOa0PFN{yH0A>G{Tc1jEH0R6PGem^TuDp@Sw4t01( z^KTJzo&rjYS__(`XzqM?Y0LEhUVSfqVaMtG!11vV+JC#d-n2_Yh)<6ERTxiZ9V(8w zQ86hMmL52D@usxi5ewu=VBV~*SKNdQ*?J)} zHtl)CUCy>TpvX?e&w6!Uz z3Fv9+^xBJy`#Kqvej1xew=BY;#m=4VF6sVT`R~Z>f11{bkxM@Ui{@sC4wOf?XZm*t zfOzrdVn(_KQMMa7q?JnDdCP@VqfejqO@}3TSD9-Q(H1tV=>TpI89N~vtZLJ)29E&& z8XVA8p5m+Y3=uRN5sr^&I!PeB4nMOQbuv)z27|Oz(#J@cZMInJv-8&C9k|_gO(TJl z5v5ySPLgtdcf$h|sH1W$!_s;m!z``ly%)r_jVKK00yDab2Z)AjY64%CZL{d>fLUtz z@`M_4EZnfaW*Q0D)fi}BHXcbP(oM{5(_s?J=hNzFsUN^w#hdB1cx>i!s;r6#7oe&j zI%gBI7lhP~*a+E|8>Ql{Nx$H98f>7^o87H8HP&k%rO~mG&Qhdw>r#6>rBcmx z1C@qR!M3@w6WzCca&54IB@7q*({Anfj;%vRZUcMQ=kyid*{*nH#CdQ|$BX?5NnHma zJlI7f8>gsMwGbD)@k5G%C(X8#R+<7M!H_@rj$XCOAu);e(SW&aHpxo0XjoP`Tm)^T zzY)WQs`QMi(wQSd|DML<+cdm1W~{+u-g;?hLME+bYF*=n8>#a9&k*7?QIr1ywwv9c z3bv?_YE|u;#rWQcS_hEPkJn#901S8-x0dVyhWEp&vhgCS%!YrDug~czbE?ul=pw8b zTyh5IVY*dr8f`YHA{e9(Cyl604Xbk75h5?JO}PrG;V02wjP7=1W_>#!Q@~zV3+Ps> z{-h~1ztg3P>R6Ap*S(u>t()cMm#wJ}Q%RfIDyiZ%&;8L&Qv}7hH1@`6oAvWG7KA{L zvy9@13vnhv?{Ps}{BG^>`l8;l*FK4XJe>C%}uVO8fV7Z8vIJUt1lxu*`luZWD#;|GL9pXSNARpDBtOucMN~)d(&;Mu zrpL8v_8WJ7$m6IG3^PxOY5R99{onD)?T3qMd;z3#K(UG=56M3w=KlRa_Gh^}N{fM# zRA;7^{e2~Jp;^ZZ*{R#PEN#T+q@C5@ZMrmPt7;dQPfv;jdx6_k25{uPLzR>|+DzPH zxCto!hb5*2=*VBixKS1xKLr*Zs4>BJ`t0e(^&*STU^>@cxOn8d{3Q3Phhg*)E1IZd z2gq$lFa8o$#CfH~g0}M>L)kk-PNsOFLUGi;_^p5-oOX9168z)Is zU#y9Uqf1I6cPb3Ip5sH^pMNi!m6KC&OVIKpPPLO6ch!TTM1J zqi9*>Cx_3c--P#{$}7@swj;c_Wj$@CUMXB-6z)t@(gfR713F8DmM5v$*l9U&RFN4` z7KEtQWL^9}3p-Pb33;0M)RRZyE@T*0)uv6&V6+!p4<=2E$(T_VX>b+|HUrylTMSF( z$1cfwcZHi*epA6L8laEF*yE~I9RW|bP{DRSO zrXd-@Cy+j@16WXm3rI5X&AkPjV~>ew!W*o%euCZb*#2n~AKl;+VcUv_k3Gjt6WB|H zF>VEm3REtsSANOV#APiQS(_(x!xg_CXmk!t)iSap-P4Y)6yhHUW*{U?1R(J>K_T{| z&9e1@Cr6!ZEyEOde7R7ysJ;JFqz|RFJe8ss@I1d``2S+j{bf+*1jGJ!zUJtGBvgRgE-4?lk#%C+qcI;^WA79ycvW+?UQaL+awUZ`UT{ z^*mtDD-~FJ`#9XW>US<-k;IzaWx9wrnYqu&zZ_uAF*-alwhb7OtAMRqpHc&0k*6y+ zX+j)WecC&)IPKUZQEkmMO@w=XA! zmI0&p(}&d?+)mQ<{}RwviI_ZaPBq|>TB-*qj=an8O`iF*?XwRlpjj1sC?Z5*T|+)t zvU@+>IW;#SD+%}%rJfT9cE#k14A$Hjk;oQ*6HDJLXcHg4eL)i-7d$i^)?zd_M}*YP zueMOh6dguf=D%uH8IP+y79!rncT#8hNaG$wlVF0ER$cU+jRG8z-`>%*H9i#b7?3=f4*Y9=9LDKS!!&K0@3SeKe#ibrk(SKyqpY(Pi@&@1C;F zWfd8^x;hfUe#z9s?j$NA_CB~H>7@}=j&RJ4w`=UUbN=GLF6whFPT)A4E{e4%g40nZ z0fYK|6L`M9Im;BzGL2w=h2>_Nu3p(T`b~B8o;qo?wr>T#XpK01(vQ(R5Ha2S;sYKa z((@j2CEmDBdjOvvsgo`%2UNkfO^8Kca*0~FM9fZ2rwKQX)YKb$`;8}OJFO#aY#0x_ zoPV`QP!y;t)wPjkfgbzymRochtU5O-XFCaHNd%_%(cIS$(o8JuS9J4=j&w>k_ZG$W ze>j@zYdJIhx+%G+i>OCw(-1uY-aEP12aVh^Z&&`eLpnjHdOLV_a{pcsog=ILCBY8n zKnM|(PR*WlKL*}7NhyADw6oVhV}tlh@gp@5{8Jjxuef+z>dqO3xPZxyaK-IyzH>`W zS$Zq@+nTyjGSm^fK9`YHL$esKhTStYl;A9KbrW0Lt8w3`T+5e`oyY)L>pbBs|mzM1L z3L`AneWKmziD@&EFjzYwoh6@Pv!p`>h<*;l@HZN}G0GiPD%}S`C=NwGHZaw1FJy@L zY;$m7CWJB8$#-2kKsz$AXDK+FJ$Ga|hA`D6c03M`b^s?H!Zjvg2$lDLeb`d29qwjc z6^q(}eLd}d#Hu;2=J@l>?o_b$1KzKtFHo=@7MY$3{7A48LUe5vtXQ&jg?r!31_A~= zt@vkE2`8e zLY4pgc=hF{5-gn&;GvCx{mitQH=18XAP`_`Epb=t@1OEn&VREoZT`sr06-Vm_9c`2 z-`Ph5IU&&nFP`%B=$$C4%HCt=t#x_Yw~p|CBs~6Xg432%lt4cE_yTir&H+`y27LOu zJ}X~Kdi-}RAFYH%wClqGY0WJ@=zLWXjY@E7qL?7MfSh*xXAkUYA z(;tX>jgGZrFsb|+NUXy7VgS5~F0so@JM6h;lkJK0=47@YPA!>$>JEPe2~0XuDgg`4 zOaf;@5^i^+$czA=Sl%-${SsO4=?_CZQ!z`_M=hT z4Ayu5?*5Iwzv=SP0!O;luj+skqTQEK*rpPa4aJesuiZM)4fuv3a~L%5_a@d_=scd| zki80Pu8dTY{kMVhvi4Z1RG#h=0u-ewk=FX{XV#rHBT7{jQF$rhJm=0=$wwm>xnk5t z(Oalr>YGS_0X!Mw>YB6I5y=ht=oCOGnyc@KqY^s4UJZ5URX$l>I?4hp=c3sVxOv@2 zV#(n8 z57iZ8)`>h8GWRT#YHbORx* zrlowt+LAJHk-&7);fYopDV;Z24aR25YpcJ?0z0z##xk_)J~ljmHT|A&m~_#@#j(|& zuJipl#bvoQ`kHT?jh<6wZr zaW=={6spyw_PR#`g}qe(9W(&kW5#hUHJ^u7(-QXj4P4pu2S%v9HRzLA#nblgpZYPo zvUlle1U4Kcin?v|UBCicT<%yrbQJy)kA3;ZLeloktp)U7`ewsrW~Yfoy=S79ssoEVRS1{C8RKsXZ)Yq=R4o?Aun+@EL#U*`46;7 zJtcSe>ScF&%C+~QmwA3Z+C3SCx)jso5t%T(Z45tOGTN%3L>b^bzKid~{mQ=;tCyLZ z_$qr9o)h=4D`&ReNw$U|f5+jd?W2VJUYykhWtm#LKdGv6lmjorKd7dqi&{KC2nE_2 z2v$rv&@H)vj<&U%YsaYC7ILzmh2YbwhG8Cb)O^%hXj-#us)x0y1OKBcCHUm~5vH`w zs^y8UPq#136(6J1CqzQbkldHot$=-B1*NR^L6X5HgrU+AOI27FsU?0JyNVR5;z_eQH1|H52{RWtF@S#yK zM$OCg!M2#4>8_4VTqpg~c-`x(vspfYWRRqwl!^JtEe}cm4wnbI4fcV~YZwjJ-)dH{=U9bs z*!E8XF6BybA?{Ei>Brj6#%tYAE8@Oe2@r|-1;4Bnql^$Nf8M7|h5Z~ob&}Re7n0>* zG$(vnU1RwkB$o}71*A#UtFiO2{vXW0erbNP^4&I?+JRNopyR! zA6b{75aFX``(fx}aQGoPd!OyKWmEY93s#tJC5m!{Pt}CHklepnwk)MtJTV*K^zf3K z?QFkjd+j_sfbvYEhU9*GY^5xehe>;g;lI}GaTRW=1|^-Qyqx_92=apyBPH4U6s-yb zFinkxY>UaJ07LQWs!LNT7Wktv`0VX_n&jbmQ-YmSI1L0bqaI5|V>&#vzPwUVYreB- z_3Xfr-S8=lXJFDh#{z5MlSqXaTXU1j7bbu> zIgnnB61g_DPf9F|LEAAH^UtVN8DLye=HFiVwKsQor^-E$m?>##Rw->U3lje!c}zDe zi=qa~-q@9OxA{_@>P@B6zH7>V>(t!_e4pU7IZ!wfic28NV;|@;#Yf6G#c_GY&$2v? zxLgiru@GRE-t{vvCJ+4XhS1=FO#cglAjc&6u zwnvRrw&mKIb!+idp`3}^4+JLMesea^fUfkVW;D^bBjKZ#s2cLtb+n3X*rfs~O^M%0%5Kf)c%r(PPa#|aDlYy8a8_M_fL@k$dO0gK+Fzl;a_i2cxcNZg zergmFeHzQ}P*J0;NMKrZ#&4qDHKF)tI6<+O%$KE@Am^%Xwh#gF&_KjDl9#j9L**PB zRvF`xOoI!+MM2Q`rMTp6Gu!2e6M41cq;krO zqM86o!~dmRabkTuBr14&?ZL99J6SltOHX~1t6KdW(4*GvXebKFRjQQmO9GV6q3YrX zhixquv5!Flo4#d^l# z^;gX6{FNMZ4upPQ;}QSNyi>Nr3teyfS7)@scq*zx17%9$T=mzX7enTgRWqpxkT(e73umxq3@3z%jdPC+F(dGEf|FQdAR8 zOD^4)UwA&WuqYEC``475bkL$?+$B!O_o5Pq{7nGWehzE;hCY^$GC$3+sAzzY?Y`$x zMLRBA=n)E_o@iY0$azlS3n=nj_R=VDmvZakWIbZg!nkZm#3G|19ug{+0wR2% z=ueF;L=E_TjB0JG#g!{FzflW`9Nu|O-PvtjVLAJjRI`>C5wC9&(*TAfplrkh(Do6J z%3vKi;355o+8k~Ib(h1#_E!?W+|jIxYee|%JFOR5h{}P1!;cd4P28>cH4@>kbbxm< z0k3mR-K??%I)ytiYb~Pr5miFpSn$d~J71Esyk66fCgtU~-Q>J7kinFUpzq3>cDL2* zD=WbjQa8~h&v=Q)h!-K=GyB4plFKD&S$ECyBb1B1%A|}DSiO+!i=r8T6P4m5faC^9 z>@uQu-^4Zze#b>1L8N26Km$-CNPy&iX{ikTtJ6tXc`shSdtf>{?WhFsyw2&O)U#?_ zR?77tz5HFq+@wCd-cc8m^n4vph1I(d4k2y6QnLvl+mC0CpR&Xezy;;|IFYI|oPRL1 z&?H6#2tu3US=Ucwj=aS};@SKpRNRH_yBoNx_lp|8v%?iYI|w*FfxWbk_bNraja}cF zs}gq>2Z*3diM-&uI|@(|??bWL{e{KnTDBse?v1{Ki@nf)-hqk9u~8|{Rk*~~!(B~R z%}UV`+^ZF0R7s~LiO7NW`?bbndWFp$%^7!>ZAC#jqN@gmwtbh% z4%~{Qd&zA3b`48U=s9*RcL6kDogvZWKpZyPMjlcU2a3^TrMRL+9Pgdt<>F&)Qs@3cRN19J_0 z0a6T9^)VAVj{KO&DVAd^Ny~2Ex^mGF2#?+#*n{HXR7S5rjtbiw(DL9sS-Ks?>27N$7kKbP9pZgGZI$tt?tXv@RZ9l454HPK*0&-X4&Ss^j zLc5ztWpZWNGUx=SGGUX4)#c|oX50MhflZu=(;jsT66dA`kX<*mdRAGcfaE19aW+8J z{)1c3I%;7`F0P`cy9BG$mg8If8YqUIzs+2T;%K)(x{&Cd-jMx)DNa4oDRPeCIs);K zS~s_N0&rQ;zNQp(Rk!Ke9PX-STh??}^UcF?$kw=?qO#`&CJKl8v-mtQ@dpS_$o`|N zZ`Hmo$?RTY@IGrKoXPGK_fu-K^-Tgr|BAFKl;9*s>C9zwL`~10fz1T-U=7IDP&}K& zfm-F1nq3@3(Ct}ggTJ%wd~+7Fgo(@|uVBu`^ZITDH(7CuwMaeM+p>3;)s#`4yruSjBUR zmJc6YkYb-ezcwEXT*4~I<(sGdbtdh?!fSMNp-kIYcK?r|wI%$W<;*EPiF!{EjRRrh zw3=v1yc)l&lqjq*Y%kz>D)v4rwL3VL6ZhHeol~~DPGzY--V3F8wM#AUeNgdo;ZI4y z%U~rcQ-1Al(fvNuGYIidbAU)L7X~fhK&2QI?$iW5=3TeZeDPf%>CcK1GHWE^#Z>~- zYOdo1TGY2lEmK;Fw*l6<#}!*S@xWzqd&7m1 zo8lmIEr(xd%V`O|D1NGl|Fx%5K|z7UlX2gD{tY6-#WmDQd4sE`j+}KB zEy|qO;+p+3IZ|gJfdo+U`PwQ18)5Ds$t{kF2mJ4&9w^|N&-Fx24EuRXpAOlX)n1B5 zv|9y|zYi8f-Q)&w4nG&`blv@Om$$j!y!a-sbo1?n@l4LYAKMxgaj*_mOIztfb#?pn zDuY7Qm7Wqi9IgfSqL^Rz`t7X0`9x1+&!aL=#nn3W9YrsCET_N(9b@j~A@ER!>Ab(P zwA$u2o`WhpcP-FT^|-!N^gcsO5Vqqv=l7mc=!apAf42FM0pqSrm0r%f*QICrN|ZsH zQR8fz$Nt()sIAz1kqhJ20aFsT+-t6|I~v_d<&JO+Xee>tlrvHBfYS%>iS%k=D~6eF zR9whez^)F}ihi#nCd;4OA)PpU)x3cb)qk1&!boLXJ}HAMb2+R*_mfaUwiJchk$5fs zQ%$8nJ{nc*kzA^ss8Li}S}DNVy$57IK+LGj&C|WQg`;|lGNV%^Bbe3V_{{p{Y~Fd7 z_dw3pBUwmtT*h7Y_c44zu6mdgiS<+}>n*e=0Ywsr?BbxfD7nAPQMU!qm$yJc|7xX5 z$1{5_UR4L&un>-C-%+?9HvpV&eKgKdS&dVQs^gb*9b0UrTtce*CQ&vM-<;6omXuvp zrl16q>g(o@|C;Ch>MGr5#XYu~7bmK3@ymT#NU8D{&-G3SPln{qG)wm8&3es!f zG+e^65S890sC^lnUIFxMH;~k)_+W?qDRZ>3GHSJq^FRzzVL;(I%f87co8wXb5n08O z(oq@t@5HR$f_s#{Ufvk4ds3#_Uju;d_Th#w^0ouT`HG6( z$44DcJ(M8pzlGao);53?>%WaSY}% z1o@n2lNdxYz&1m1twpJ_JrzwOk{R=-E`l8_!R}8RKXag?>jHU}`1xFbEJS^36yuzS z2+cRfG`1vAaJqnH`SJ@z#6Pi|Xfo^no(BPzff81J>$cToepve+e+-;GnSX$#Hk&dRN(BLcX`AY{>Q!xB25w?GWd?AwFG0V@?9W?wOuqS`wxHdh*Zr;?KW+ zoJh5Mu&MX@_M3l4BLLzl(^&8SE-WUn!iJn_7avAE^y$!m!0%ZlnguQAZP?-7awd>2 z?lL4GVqj2MmM{)tNm`BqEV={+`s{_cQ02Hb7mv?3S84_6bZjzVe(KHHYoh3N5}YqI zU9yD0jS5XHSKX#!6yC7~R!hFGgLl%=Xi=Q~&PrlA({Bw^&H4EUPL?8X zlx{gLR+dfBw;1hg$sPS8inBM9Q81-ymAlGw9UY13HfS^PRH(BYbDfA;Nwn;nse_f5 z1X8b6YV8_4qpsyQnPMx536y~g->*I<&wV~~7C!~hv3n2vLG!9}y$o-OYPQ->sS4Y* z#o1*yhmzkz3DjiOvN#oS7*tz+S}lw;C3P#dU84?!{3g#eaM#w5V6=jt9D#FZH3{xj z%#=e!J^q1xJU~OHR(P~avYVJov=nIXv9ZouXFu!dsn-7NEPYc}hgfWbcIu)i&q6J4 z6J!Wi$PbOHpsyw|x*JcP3?a&{316ycz-Rhjlds9tVMznTI7I>SI20jAuuF$Ylcp{E z*Wk1T?ve_%Iff2*CeN(G3t%gUFL{;#k!AVH_ZC8j-ZkR8+u+3lT?F8?8=%yPI=+=+ znfzb)hUVo;1yjqun_2*I|G6$3;o~8>m(-#7{faFt80W#^boUGu{U5RR1713oy>xNu zQAJSz{h!_c@a}GFJ7%-jlc4cW&z^icOJL}ZJB-7RrNjinT$R(wPTh-;gN407wj1bv zgt$C{w2)=oCOAzM@KWdCoa#KXyM`nI0tAr7W8#hW zTUAz_JPfBPMz7aRrCzs{4Mf`qznil|AI`kmx>{K~rL-%p{T@Ul!vz64rroYP2I)8l zfiu@$Y9#lX?Xx{EO;WS~QK_8L!xd-V#(p|FF25O*2!)Fgh~`Kjf^411eWl85j3401 zN_6<@RHgIt$Qq30@%BI3L38`c`^wv=BlH2ShcZ+X{iLi2*{d<;13Ytw5KZ8RoBf(J z&E^kmAXSo-nM&6cAEr+aLeK0ix-JB>rf)$$sz5$dEXMyxUM#z-X`A@eJNkL`@-MgJng~!jhc0$fy zst|hF=Qq_&=k^9{e`VmHpCV0~vr>&)DBb%(B;_=}4;&;029NyVL0%}q!o0eZ{&hyG znfstvEf{_lu7Yrs@KUA_v|Is5o8IM%QNPh0c{@KA@$XRSXTrc%Vv)R#)pON<{Tj-E z*8B>WJf3U=GWmZ1#~#!>j(JjP-=w11NoH5 z^AfVJcDYRcz6}KR$1_^Z;Cm|%dmJx(dnI6f{GhXBa|Z0xPMIku$X5!qT~4e(I)qPV z%`+OblQn{ux&2df_}*KaPp%W9Zaqi@pFMsF8Vh%Gd{@+G+OFP`dj!jC{yyv?tB>DD zvlrM+IN0CAUOB5D_FN{*}u7*7?z^LA=&a{^ms(}p8h>-6{_#)2?=pN)l{ z%y*cPHoj-p2ll|Ug5mk{zK9E!eyWk5%x*&Xr!GIm@M--Cvm)wU(5`@wOPY|gS!)L> z?||^~FVgzpiHs`+Q(?$Bhi`Ickp6#KQEB!HFa-E}xz9JcrI_D8{8 zQ6DE|4QGo1Ll@noa_HB&(B`CrL8ja#yEW@OMb{QQzqnK`rU3e^q)u7i%YAiUO}x%t zq_posodXn2aZ58xJ!KyyMt<(##w^IZeF9t*AU^i;Q%d2cjF7lrc-fGk5V)8ZTS*nR zkQB9(az|qC9eS2&9g4lo@%B+7FbE zrwTb}IROIj4g=v^c-{6CTK0vZoMQ`=uYaG>IR1v4iwJ9VaC3c{6Cs=5WY^=`A6M4# zK5ed}cPasK1{*L|a1JfUva?`RWE@Ty%i9&wtEm6J&@e=2N0!|u z9Ivn#ob*eieM&Vc_tFGq3eRfJp1=4g1OK1W>VNX0>5qDw8}KT-(Nyy!U3X9|LbVca z;97w!`?0wp9sb+siG9|++r8Q()?M=FV4Fu&AX|M-ZtNl zHX`GD<&%i8svxStG!`Ukhp^<;r^eL!S%sX-me0J8R&D`8JY0w%uovP3mJ%@i#-W`$ zq{(!athqqjvQw9E3esSR?qMID3s=grt?OpcK6WfK`YjkU2)`;z@^P-%jd)aO@ zXvih4(OD~;_AcE4AWc5E$9n?UB3-UhRwR_bxS8g zff&C|GvK!GUjgH`j7hVQ7?>bfOz7=Uxnen} z?Nn+(dbU;8I!NvPWoKbURU)VBNzS;CohJO|-W0HKUg`M^gtBqy3g&COvBlvIRLf6uz{;sF9tF>MZQ zc`MvZXWc*b%|UQQjnt_+HKNurUM`e`6HQ?0ax_RnC3%IcvjD^>=nb%q2 z8rmJvMJ#9qq9n6%~JVIU&5@gctBZ4)kbK3)nV2GJ|HIkn0Q3a{(#X49% z!^O|PmbSO7t95Y*L`JtlWQ6tmfN9&=U_YkUp32SI)1d|;qgXI{AvKm@FKY6T*r<_JtC=gZ2M^v#4aEt)`$!c^fUVB@l!vhi8B}((FZ|j01(4 zkf}%Yw7vuTA)ggTskWif0kDej;U)7t-qDk+S(3CqIaKnOtfA}FvMJg_5X5w?M!a2F!h-_Uj`j#4KB->cAx+-E z{uqq53ZHqW3$D-U#A$2#oM!2YgzPUW&H+)KW^|91QtFGc~(0dXV7^>JFqj+ip7!R0COfQdq5 zEJ?QpK-1MaM$|cOc$v!=!m3~p75wtsy;k=6Sk|Fx?fR3zZlQ`^)f%&t_F~ZAD5fL< zX0fMf1Ej1HZ10GB`!v|&2LUnno1-S7+NqS)Bh!Ced%VZ$iqaatTC6`m&Qz9QjNL!Q z*FcVIE)1?4uYgMZ-m%~h;i@3n8OHMd zLOX-7dX?UVb2h6dI$kO^NWwH*;OWyNGe9bBb3<(Z34M8YgmP4`(!EUkp!)vIeZ%fz z46|JFS=xPX>Kx;`u4wC>^86m&sXd-?2u_5V0TSv{(~;~IR`)2OnzhzON}$*opF|6l z4uS&0u@}zj11msPGnjUOGPO#VEqd8ix9`QY?FQeulb8>8*eff)-(#pO)rjF_NN0Sf zhQh*Mm~^yjcU1WXxQwU|jD%?f+dy^*z*3z(u`e?GZ$N&ErPAK9^lpIcK3}9QP@L8} z2)dTxZHSFgp1NJcwwil5s2AHjsxnA^a- zm3c2~&Y0}|V&E?p3+Fc@o5k>24Iar`lXl4&vc)752b|MxMK$%m@T}_e8|lB_wc1Fe z#(*2cj)tCcl{DBt8IcXtKulS!nE3GvL{Xi6(3(xh=2GAhV}~vYWH>OB3r@{OS1#<& zb`j~}K#h~|o*4yjikOzJ#*-y~1_ohBed>mF{ev(arG94Bj_|4t0;!P_<^THM#o3uRx#0 zYHg2>U+z<@r_zuLB&O_Y<5^8H{S&aS4-t1;?0v~!9Mgh=tJ=e>4&7w_%9~#c;W{|% zU?!LdU#Es@4kj^PPg1k9_k0eYta5ou#hf^|WeXd3HXnHHU;$UsMkkbVCjR<`9oz=LZga!%bD@tw1ui96u?0@^6}Sq(fREo^ zy(bAfxsBQi*?!?h46o6GUP^>pP+g1B1+zFO$*(i3?Nf_kluoOGW*BqN;|xNQJ?@AQ z<8%DToY^tT%aW(t-^$Cl;<>u&*a?+@I#s~jk?(NaW53Rfx%SRb!|o#W>qUUj6z)gf z9ud3aq#OCmmJykGlxcDFwwtJd{)XBSqZ8qKLU-S5GPkg3KT2lt?oAqcxs3!n>~nd0 z*7gw$kt2_=wnr-wU0m$?Cp7^TN1M4FHq*=#E&uJ0%|KYCF;=c*mjD5)JF=Lf6o={o zb5P`C7J3caO*Kqy9T3Q7?LU)Z3)p^P8V@NtRGWd!XX<%dxul7^8H4vOOYO<~z*T7{ z>@)|L7>J^h_4jG5X=WaKPhGiuI=9d3psa$*jOKq#ld^%+9d%0jFlON}`o}Gm1by!w z$5QvI9oF7dvP?VCo~0Hrc2Z*!g#34Nsvo!=B)c_s_WU8Xz$_zdgXercvY*R|1lXeI zFuD#4i^b37KF&J$u@nERtI8g3jlXwWjXkJtmE$2leZJ~V+gpUkXs0J*gq^jLxwF=A zrq1*Ara_R=5Wm-S*!-t4rq$oLA%`JEshC$(%4DM zzbZi+U3y3hfK1rZx9I&bm4yq-zFCRgYjx$f%)kiZ}1&FKCKU;vpt~$-Q zE3nNc(_{H{#eK{w!Z~vokp|;afKIVmo;n8&;F$hT@yeR6CRV1XkqGD z=G@t7af%-|d+Yu6qTfS?20^Bpn_XDuWrJfp&7HOGKL?i5h@icTvD3rC`J%MzC12~B zS-DAv_@uJzn~4$Yz;d{H?wW z*5~U#5^aDTIK&WK9I?xPxVAOmzH$<}+h&a^a*?Hs9sS3#dSG=k8R+O3AxdIkNxK9; z4ty&^qeO%!Kknjm6$n2}Xc`!YW&cj;huj5#*sov7K*OmKxj%C#HdrBjr7azagn`lb zlAisi2|ffX+&Rr?xMAxH!o{6`G=5s8q;{}A?EUij1O}0MsIhfj)NX=EbJx1L*!C)v zd9;JZvm-bPKsq4N`eg$n+!Jc_$U|EmJ^h4EClbAN<$-~){D&7_^&}>X5V*}}hLG+) zm`0Y)Z0xnhG-t3PDy<};ydioy;Q^$rC>eGdQ6;%7goIbKHmuO-?dG=)Ak>YQ>f9}#+=pjRw8L|ASeL_n+AadQ>V zR&fuB5R-Tw-w?2Hj!;jL?bnd2L7cA`X!)$x^pEEz%ylvPcksRZoMUr43QGRKYf*#Y zS8wDj$i}~)*KIDY;I^aX(kn44VlFqTeL;;TiIr?H_qxaV_r}*W;cTM6?>W3y&&ql5 ztDFmPov-{m{E+MCX_!ghGZE>pREtef?~9)3=k&wk@m~Tq zlVE`7zsVpFC6Cho`f()*|8p;mS0!X@ZFb&hDM7RO$BO}%K0aFDdHZEU&@Worhw8uAZdpJ<# z_+}Y29kQ@{&{FiO=T-$2E{~)SWUbdX_HB`-{5;HR?p2`4a}P$v&#B+KC(xVdJswf3 zRuRnCbG=pTa&iCZdyRqLQ|>=iydhUJ=AlpzaN3Sro?G%<0-Fphd_QbSdw%DGIK|jR z=@@hs-Q?7E_|LTB%Td-&;~H?5f3ftP&LR~?+95q2928Zg=d2>}K@U>$!4K9ID%*Et zJ+=ojoBv1AxyLj0KYsk2ZS3MU_qlCzZLT4?r@7CiLXzm>mP;2Qm3s%VjbZNBnEObD zRBmbRbE%{oD$S*$BuRaw%lEh6pXZC+L0{o8+Ao_GAA*WLkd<4LAy!0a-IRc@(HRmd2p8E;It-UqI zq+1q00D{|#inm&0`0H?cz&#L=eqIVH^tvE|-Y~va9aCN_)lOHK1=5}7^z24lCrjWy znPH*#y}BbL^V%#m&UY@zOYgqb_!GN8M zHxt|yfg1&QxM`oKg?rNtq{}WjkIXpPTWRQjGw$DMDUN+$X~)qPp$0SDSpl7pf#Xx8>F9#$YZP-`C<^`Da6i4Ed2#r>Fw--kFs zTVm2O`-C>oRv+A&9x#RXdGLORKsxJH>Gv9Eq5`!HI0(X!&c1T@N7W8_Cz$#oCXC3v zT7n0Dwhugp)utW^N$bpGnr`R1mkknvXixT)T(%f-dm^7+0<&iB76cyP$~2xQ}BY}kSH{Fu>L2gWr zx&(M|3LAUyZJN!ZU=L3@cNaszg5<1wgfAC&JLAgC_MbF&EER)Mm3C!MDZ)7sI2gxX zoS+4OPS7^!Pzm4d{*Rnx9UtCGs>U@}_J2sOup)giDOCHU`#P%E7O3;`e|1Z1u&qmUKvqQttkz`9SkiL)~-Npz1}7(Eu6zdGk)lsNJ=) zci1qGG}a+ikb(4GRT`w66=CTKkjp#}q3?ByUP&F`IAvRAoh#I7*INp<`H!Mu3TwWz z?L+P7xcLbu6}7F0(fvKG_Kx_x*Z@i$yXH^jZ^F&1cV6WB&h8Zwj3AYShdTBv=dj5F zWdU<`bdqSB2Kh}{zI?W*;$2IPFTxU~y&zXP_LBDTkL3930EEBz(EPR_@_kjJ(S;*eKf8PM%xH<88xqp5HO96#|N$TKHTJD!0;VM;x5lO1!l-DbbFy z@Y~qH!^iA(P8YdQ{l4PuXg~_t3gI%HcbJEb6t$jaL4GO-znGX+>t$O`Q3$9ub60dn zqWF#4wU)u5+K$r2fZ~>1!@z%LRSYw{quVE?i8Xj~1W6!VAQIeF`oG)cN+E+6nkl zBx2+D=&>%LvC`u5tXY)Ur6og5#4mlKvK@3$t4J*6Y{101B(>PQQ`6hRHiJ`iv4QZG zEQ2_Ww2H9%qSQ04&9#iN)x!qM zSXLCW*-5p#TwQ2)e$H^8CCB*`X>F)vxAf?PIp$aVwe@L_yA82 zXYvixt7qpYPbsAS{JMv^QTF0~kcdI0%k+@oBcU4e(axQ7R4yRdCk$Sn)&q>iJbH^J z*wmPf<9>cZ^-*epPNCrIecF)??n}BZXH3Yq3MMpu_8q)0uMdty$LF{&2gi5a+vn2( zX1TYRC~PdLuyptU+Jgv`e>K6m1%Y1hEkObN^qsm9Ple$6bi1mhpSk+aaxmS<*?j=^ z3E)(dRj!XAy((QO$eM#NtX{~Vh3NLSB=gu!6dL3exjWJ24k;_|+>T)|JBNz+yi)UArS2ki2npq8DEK9qre3Zl zmhF*%iLr%5e{J7ZXt6PbTa^`7bm<{`o^LIzR02XGx-`BLuRa<=DgwNX%G7N)UHGAYlhL%W+%W%4tBMM87wuL)|j zXSX&Ul_xigdzYd$WwmLb_%SQw%wT>#J*yujwufD2_N9vq1N?-jtufTIA;`#I>;zTm zNEywIGM!(`Ir;)jc6Xs>>x0#qy9QSr=urR4hpfn8rO3|w+P9-ym>ldz54*z@_d$4r zBVt~E2jqk71>|P{YD@xTU`UNYL8b|^?nk9|jwl_I&h39DvYG+Jyk#`$v@D22D3m;z z2N+_JKA|_c8@@40NHsbj8t`+E5h`9F;vDv(=$WS%q zk6BG4HzN;ObVl2;E>XR&JctY2y~yFW)1Z8|&@WNI?>j1tv6r-+ZLvw~oR^~e_qY{0 zuASJosG0fu+63!*rgfw2GY2`HRBBK^id|<;*OA&x)}9$r-0BkvB=n1a?EQAns^p*2 z&T$d9fy{4SlI%*?2mw7O)vT3)wx(AasjmuBBv8Ib&}da^Yt!w8A)ELdrJfGi8AQ>u z@~p+NqBAVxu!E)OCLD8QGD6@s?=2@+L^o<}7(lkVB}kIK$yD=tJ9^md5<=FS@@NCu z*bvEucjA#)gXgV~=2dEjHL@f@nD-0{LX^|7^%xOtCQFe8Gj` z1vupl@371lg8PMiO59?NsQ`69oK3R##{FLB%fQQ%M>TE+gmCko=8Yz1CoJNF+L4 zlD6qt*3;=EmX)DU({=`ZaiA<>D+e`ni_1TAA^@5Ql@p6Jg;AfKfoxjP)wdl$TKfu8 zcO`~ubB@rxCh~c`N^%WtWh z3~lFk)E<3}rH-7=Tx)4>C0vY=fSIq_K z#a*;Oq z7;g6pGQ|&yQ;0V@lrp=o?=*InONf`jOLKRl(e;I#V&yD1bfm7qFZ(A6(ix?8d~`Oj z4C^w@cbTq#dTi-I3=i-hl3~cvOHG;B1U`k4>U&GXuVCVZpGc%<-T=&W$6hfsf{MCG z<&%cpM4=gB=MF`3axwAIP4B*JdA>{T(U%#R1;`>B}%roRagxq;b+ zu1zhHn?3yyRLP%tI}ihh0?TK)F~$)I(%u3Xw!q^%MM&l)fP-QRT^flY6UaG9CU%_RCIW0=1v%%^d8gCKLHlnUK*or@i6DR*ctI#6ohb_NL_mGX zWOK_>(q$?oiW)}3s`OJ?>p*BmBp3q#QEb zf|yr~ma0UbySkM95jLH~iJMFPGB;~UZRK|8s~X@~Xql`Yst*kBc~z=yDnIsH9rgvL zJRI^6L&k&)u0-zdlmXa6Q2zI>h$)sqkC;TJ#9``unlwzv~tv88D!Umr7gw#$;(f;Ntt1<2-^uV?Yd%ffs*g9RsmhP z>^S`RIr*p>bn4r@v1J~2F3SMuAp;C_r{%X63=Jkldt=cgm>W^1(AFfvAj{MM12AFGY?w&83gB8g9F3&)F8GETyc`=XM z>40)PwZjy-lS?jJJMAN&K4Q}1hU%L)F?f1~z9cM$!RJ|g5mSyT6Z+qaWs+zNM%hWV z!VIOydeg!!uM+Ao3aoM?-Q6`(-kGMK|Nh3k6+u(E?amE^9BHJKIF`9NhK9D=rn(sI z4I-yk%bQGvqb49!ux9-b^7IJMi33BWlyAtR6>K2igVd=Q>RSzD=OrlRSHbW9eQJ|( zzTuU#`Vk-VZa2dF!RvOR&7@p~Y?rp%Ww{^FN_FqQ9i>lStCH)qcusfPPSJa;p&XM$ z*h#g+{eIFJFPjWV&Iw56hL7#I7OZ}_p5#uwi=#78lFlcK2COS`Z{xNX*l$9z#-#!A zBhayzA}fgylylwh5`P2mG`{;r=40fq!C^oE!eOA?V`x-t_3UwEbyJqI6`#Tg_-HBi zX{f2^0{SR`iILR)K-k9e2QWhJ#|dYhk?oSz59USBos@EFQj;@7FXEZBjmdyl8kt$N zdJQwpG}ETAV*D{Hn@ol*@-((LJMh-MPa1)4@m-NOZxvkBSi~tt&|TUqG16<0+5bvt)yM8)cM)Hqq{EAj z%!yn~rgtD(A5~=tLpc%-R3#xMe zQ`Z;q^5Z+`#oPnH{MdT&ktF(_pXlY(<}M5*Q>d$#iz3!!CLkM_Lk!aYR9jLV;5j|G zi1P2<6+FRb&AEWnW8l*Luj3L=#^e}zRhhN(vI7$3Y(Vz?MoyPbf$3DWrS*KV58-rg4&A_MYCCR-b-8Rs2pV-&@$k%gE+TGs zeC7`wIJS}FsdGOzuVCu;f+<*AmK#cXxc0qlxR}42fDLU6P-~RRNb$w9d$pLw!cO-Y zuOsDW{t2y~&eN~9XqHe;d_a#G&W}kpk&jbfl_~@Qda6$D>s$MjfCBf|{sC*;i|fuFCgI;m+gftS5j~7xLGUSIJNZKbAz_keP1MsZ}^#5~E!Yj;vr>qR0=iFTJ0NI?OPw#h}_Qm}}@LaC>OBUt4wLXKR?q4Eo$AbVi zllf|2@`vlK!#e(8po+Rqbwkz4}K8o}vcG z4!+++!eOcx<_^zDp#{iQhhBZ(641^9$bS0TzyAC#gwB!CF(|Ac-0l<$9mD~ZU}lPs z8{+phh@%k5)au^;ovrwN^$?{K1%}>#c#CN1Ejab3Wd@jO{Qh+PCu|gA>8oY^Pl{h2 zeTjSa^FUtFeh!frW1jbuFO=H(G=oL^f@e;3AP-l+Isi`_1idG-4|jGvd1r3IN3Q9% zg|vC!Aj3rAw<+Z8kNG3+YU4hfOXNcgMYQ1TiQBT5WEwpa9?ZANz70RBknpLVJ$^E= ziffDCzSwVG&}gMOpp^Lz?aEmuK~YZ;d?@I|IqhxFdm76jlW%6YtJ`r zWG5pxeWj;ZHhRpvj7_a1g44Dz0$NSje!-penHp?!9`FYDu;e!L-DqFr8G7hM;AZp3 zXKFydvqUSZnqw(nf7Ef<>o$~WW7uYLE@k;<)vmTxFFinhQpzdcUfV|zv zhZHD%r1KQg`}5BX+#%Zujj(&1E!(Q-ZO`9AWIis{B;?me0ULlQ3Il~}I*KYso7TZ# z-a$X+M2qtOM4?9lHGe%QI;I6xnS#ebIGMLk7o^6%iB@V1q}D>B?+qL~R^)5qq8YZ> zn_qNah?ApVY$L`g=T0*30gYkPQI%Cb``|Y<<4Te3l&6172e`NIyQ&Lc6utd<_XCtl zy|KtjL|D#64yaN45@bN)=_0Qtc3Q<#8lM=D+0*R{To?NI9hal_p3P3-0 zNf+4_g|3rhjs52=9GUzu!gWmShlbU42t%hv&q=8ytjUfkslAsrfZRmyBQxIOYyFLG zTmKZK^E41FTE4P6`7S4Ae?jWnmF_7;kRKM>qeWb$^-)=JHKp1pClN_xYbYA^)gN$0 zf!6B)K-uOyz6F5OUhn8mI^G#kM{M(~MdTKInajO^*z}|~U?zFFVJ%BJ^3y&V7a+4p zPaxwIf5xh=a^R-Iz)GkkCyvS=>F>uCn^U1eo9bju;r3l+d53r z>||0E zp5c_NZzDD}X8Gd}#dBF`Z-aNSZq$5`OY$wk$Qn#Ok1vyaFG0LGBY<6v@zHi-9@40! z@7Y7PA$w!-ORL>pLu!;$XAQ~D>4VDSCohb97=q_sI1zi)g&*xbZq3pc5CwVQ@Px$ND{*v!~B<*DA-A1*&HT zAl0#z=W|Qsy6pt zNqq^_6?bFyctHEctb?+(h;OBT$zK?=$pd8niWf{7!CyrxfIL?r&ET1oyl;2$4N$Hu z0%3L7OhtWZv-b6$CFd?ZfG-a z2db{T_2Q(jTvyeh)IV__q70wbD8z??3q?vJ#kdPO#nzWhMpHjx9LW1XY(6Le?lVOydL7MvE|C&pBS0<@PmZ~lY2hnmUzsRvz-*Sd zGtFqBjQ#KuXuY0Xy-+PVo}1>yemf8$x?eZWsAY2K_WWF-WOjc8;JFdkc{!ux1pN&$ zaQ5D0uBPtZ(gkb z>?eR1NiHwpA@fS0zjzK=D47Sd8olK_-0WJ{ipco#PB=*2q@Y&3-Q=VJ1p&FmfcZQ@ ztI^hP!K&MW#jm$x7OTAt?oU1*eQv9@dKNOm+56=Mn)^B_)aP*{#>Ga?%xlS=%gmr8 z+IYIcMV)SHH@Era{l_^j`%T|?aEcL5c;`$~jV2I{4G8ngj9=cGLW*ly zV9nll-an9>Ekzj)(t@!kXul6=Ra3oVFxZR`Y?Nx934-&B zzZ*7-6brk~%*Cl~hR+Q03~hu)7A9(+ZTDH~-M^R+-l#<%?RE_gSA#(WmBq76Z$ipT z(B@vD4av;aLwkTzY%|hQ{WEko%fz|!dQB1+Y1A1!pq6Usy{xa^IQjJBnRw^kJG%g{ zU4Ubq10{t-$iVBVv`38r?#PZCsYxVQ%Av)3!177B+6X9OcnD!iW?_x{KUrJ<1la}Z z0)BnL+vWv zmMlBQ*TJmKqH0roQG} zsJ0nmz4h9oqfO}6fSS4XIQOgy>N3Vwen2qxYxJoDIF(%;K?g_f2DB3nFx34-cEP1Z z{IIUUkCj;RAWu!@<71_zbWN7LR%8L5Z?okC4gq=Hpb>ljpZ`xftSPIp4Lzw*+0SL4 z%hr3L5%gpTmsN*Y3bmxFa19TTJ`z<%CEZ|w#`w)(ML&r>t!st`TyOn*L23?(btApn zk4e_smk~oCAQON}()JTJ1{9T&#}(n2YWf#rRkaL(nub=CC#<&(E~9N@3P2J`0X5na zpknR0VN%A8LGzW7l<)QWs++C@;d+1#L|_>v_s==IQV6$cWb5@d{h7AVgBSQ!F*|cY z^`di~j*3T}X7a|v4a7--e*|zDY-rYTKBpa!;^D3p9CTF*jyH?_MZ^yp#ev} zjnsm#UL@F5C}Y_8ltz3*$Nx^_?x%(lh*IFA3ag<|EMquXSG}%X zH|3y8+I5@IKQ5o8Ru?JiDMrJt3~jrNAopW7IniovF9A2eiic&9Q7|Ib+{nlw&2%mJ zhkbyX^#IXiVLp(L9fcIj(_nW)uaQ`yXIGA(Rihs)p29VdPbUAv56_I*2%mB!*}#~= zXCzwjTZ^9OcTL_rd(BMwuTrQ?26O95y{%iC+WSFF_=L=WVW2mzGkQ`K{dVwKm_$R zd4&yJ&_WBskAeV90~(_1o13q2J5)u34O={Q9I*K0K1J&herpD{d6JNcP}gjsjC$eg zey*K;t8L?VB|{Z^Ry5njL1kBK+b(Z@FBS~>8SMW@GlM(BLBMRL%KbO-0B%5669Xp^ z))3`^8+*Ns8H{mPp46R4u8loUUCrElQP?Kcm1+QUy14=j9Uxs4GZ<@WZ1lRqb*2q& zXsrq>!!K)#>zUNw`p9gqtDaQ!e=I+iEa4~f|E}r)JecNu=&_A?3O_9!AcVX;grqo- zaTNL=k6oImGeDur(HND(0{o9N9WZp5#KXp~)lifLx%-j#uGMXJ*C(GfP*EG0Nun?w z!4QVKC=CoX&pMl|ko%#v1?`%D%u`7FKV;|`cV{hK3ayVGcGN^P4@3u=^V_M%-$JM6}a;g9;T9X(nL%9+Gd6bsrP7K58GKg z;3l)q?lAq|PuCQdYSG}P2vKu})Rv*5{D){a`S-|6lS6B2kJHHlSe3v}ageOxp*ON% zu+*nkCDk)Kl8UO2i|j++$rCZ4%Z?(X0YmwfqRetpNQ$$2xgcl(D8E3Rei z)f2sDn`eUKCLi!ogOhq~T>@M_Y+u{aZ()A__$N5@u42mciMubWtaz$}&D%esLLS zPMEG84ZRagU0n8#^IQqnBx)3qCt2E>`37Uh4O1Xnp@{!Z16KzMEaO_#{b!Vtd3?mR zlG-A?E;$y)JM>vtcd=R^-4Cq)kTF=PEdUpD8u2`4s8;*kce=e9(@8#;n|X0T+xNI? z&||l6-XCEFeSy&~-fwgVjN{3*h8L%n19^_yk zunux$lq7=2_ufehyaadivN?9`vdfI_qd6E1PhyEEO-QKogbc}Quu;?L=0yI%j|2fQjDy?m;U{)nwD>Y4Zxk#DZMQ%n((ko$j;vrls%2^P9xl(XfHdX zP3@b8`15t=&nvdx5j`oe(xCd9iwNCo?%CIn0II1`4n`0ZLi6Ck8P@^JfOl{Vcnhwg z_CBd*{9H(#6yZjJV$(tJr4;M~?P^F6kq1)>s;lTPe6+h9WHDg-=Gsk5#zf-Xe+)D#@!U?Ru_A(wyl zjz60g)f|G{U2 z8zug^V$*RZNc#Ti%J22d&la^A0hZr~%un3@7bd8$Qt!Oi^^L0D3l}XbdPHG`P+G(K9L9m`4G_CC3X53WP;T@K=$*m ztzU^LpdV){)K~xxyo;3m{_EerY>N}wjT5sU044-@9(}zoFOWC{NWFUVNgfI8KXqZ7 zivZxw`|)2JJLTmO092XNq>mC7y!s&cE03ZhE8aLx{_hwU-29aQCbL>S$A12de{t%i zxsDD}zQX1Pz__@1C@yaRI!x4;LhK}1RY$UjLK29i1A$R7ZfZDmhJQe=pJDo<=8_;qE-UrvN6C@WA+79J%ujU(vo z!iGUG%e8=rt4h19XJYY4n!a!f%a)l&SWEshbVt}#B~#Pc+^|ELJKpe2Idm~Pk#KMt zH~Jt{b^2=0N3LM28r|s+EE%%Bl>`~$hy|5v{X2rt$Im~cbey`izK~eTJ8O;?YG_k{ zpAP4$E{P=AYq4Ge6oKcq5%HCu1Go6pr_|}SU4Uc}!X<3r+DvumTu}|=5|a{MF@w|?H8aaE%=@?WXzYO_ib z1u|?cu=o!Co7$Ige(G(LmWs5k+E$PBSwOm1Tdv{Lv8`F4Eo}xMICi8D-9UM6W>t+W z^hVCILajvM2bymvwPC{MuT<_bn7UNi*tI4Wz~ax@m1Q1;!|xp&4$+>#=&s6jO~HfS z)p}L9(piV6P@N!U3aGqJBuZa=OZ~2#0?;d3TY#qi?YU?27IhU>tM32#8atm^9$)3^ zj(pQtiPA&VQ7mt}K;Hvo0Q2zv?M|?0b@MloWg)X#HTLVvp1qShhK~rkJ!LPNpG-$h zG*F*2JCZq}xLCYn8Bd@uMDv}bGcQIsp?5ZRr{h5;PabI=@|qSy2=ka1@IK(XQDeqa z5KO7hSeOS1jjjC3Z}vqwlrBpskZ2S#je!%Uhvq-rK!qqpy?X;yhnSox zKrQ6jmMMfd;Wg%I6%>@-nBQk5A0=!s5}F`(7y;)%Shq)RiJB=ban9wQ_@xINu}%rt z==L||!9SxwegasN^4mQ0&2^Q{TSxMiwS6_RzH2=T!$<*QFrwM2Wqr2gBbz8=(wh{( zqvaZEcE;<&kv-OzjEY^(j9HS*e4Qi?9++UGz(eeWU0y{$od>r~Sc(}#jxuMd%%Aw- z1L3vBTKj-0)m)76|JM}T_6*Md%3cIbbv zH}A{UY+9`@oq~lgBzrm4{x$2XS3H>>^F;oJDH7)9hL+*{z^gvU&56or(2}%`p;k;V zDPERS-)@|9I93GtukCZpD^^}TzUIgsx=_D*=&XCIK>KqCaIF1aUGNZ0_DcK9%tsOi zq5T(&_DJljw)??$NT9R#hQATPWP*IJo(3kA``WAz^zcKEw5=KXnA=$+wy$Vmgqt9qmT@BB?1_KUY~ZcaEUo?6y;%la{OkYf7JqQLI&{%f13o$@bQ zO(Z%22stsX``+VqK`#j`l(ECiTaBd+T*}4~yBs?y1J%|TF@te4s;MqNBVU4Y-|Rz{ z#hsDuBbG)DxnnF)As;k|`{4(DC-3??8ibvF$mfB1ro7)H6C_aXTl77XjrRQ+Bq&zB ze2kL3KzJJK3mrDzoDCJO{C@IXN5>Xe!4!|}Yez1v=sh*xlYk)A zh;`ch5D_Jalvec5rPUC&q}Y zQ+u&cVgbgeuR~~?n%fuBR|${Ij~~nZlAAegKG+aFRJbC#3Ispbq3pA~X{f=F5mqi} za~rt(%&I};ModO=-)&`2rG}PjmR`L}h<#6R=(1~j!P3@Zj-L*K%yN=xiZOSo=uzPHx>yV?!&^<>(kQ4I$l)6{n_dmRc~U^TDa-Ydb3WdZP*uS(3DQ4tqn~}O8Z=IAC$YGV5W}&u+dLT?sRZUD^*ps z{N;+&cNaUkmun&wPyP7 zy)H%Pb!qAMLC^zadjfQr(Lj!8?9tG-pwI`M^5Wk|q zqtSTT>P|{Mook|@kMob6LCs{*j(sp>rWQFNMQx%WWyic+UzzQB$ezr5}nNQ{nmo1dC zHUTOx04k^(QApCoo(PnckEE<$TS0e@NY|_pbEb`+kkNKCx8yzG_W;>hUTNB@+V5N# znsf)tm!`tYEy-{UwusH?r>)3m;LzHZVx(qEGkWd6T7z5-MF1+>I@{wy&mh zIO`ZxnRh(ubB&&Njc^29jq>5XoDo1-w?O@nSnVq>Gtb2#ZpL|K<&QK~-=y)7wUHPI zTVG=5g_&yLw0$mHZFckq$K}H+-PdwveNE&H@4q<#>8Dc1w2|y}$cHF7CI?}p92qeX zYPHyJN}k(L43xIn?33jI5A+iW{JW+>)p+h%nUdZNcA6TgHE%W**>y%uYbe7hT{m~w z6}Oea`cI)$siysPhGt&@`x^E4Dkb8hMCjuJX9C^)4Rp?qR(gTDeJl;~RAdS=Os|lL zi%3?oh5LId=c=_nNNq&|lqQ<@ulw?oIe9aZ-;7mi+H$q;;JA#cgeT51G=fJTw-Lnb~j62*Zd@CG5ro7ld zU(2-G{8)W<)c=IS^o9fYjg~=F>k_0=rXO(^AHmGpl z*j93r_xd%V#&@AzK6P^8EU9<&=W~S@3H#)b|KGI3C@b4oVa~vf>8`AdbhqB}@*E^jPZhI*jb?dh4_bv(P3cHhz z*bL#WJq&0Y^2uPME_a`!4*TQe15Qv|Wcdr+=bkm<+{-t$@L8_Mt4ix>%1OpiHIw=P z5ITxxf>ef)6b}Qnid>I~Lngcti(KSbTk`D_K*m`r)Q@cPonCpx(ALoNFl1XWo-ic! zveG46g0v|UiWPeiA`u;YTHhfjuO41^N^LQw!mgl{Fy zh@GSURz=bhkTvge6SW8tHJUMq5|8Npa;|7}n~hWI82h)x?4|bcTOD4V-<}xkP{d9o=+RVd_5Q#}((stLje)&O{(3iXk_#l3HVGjeEvyBcS*O z8550ky8_~{(3&K0%!O%LkHG-j` zf=y$9w|p`Uw?FPx)&sx^l(YV|*6(!733w;DJXFTLjcgJGEVV0qy~~9X%DA5<+>ggt_LZXBcT*-Pi*ob*+VZYLhx;yG)eR)P0eW>kSmdJ!exI_&i0Z^Agosq+znb9aWlZMpU2(;w(IJ z$F7J`CPd~=Ne@ATD=ql}yLE!B9@YcMvnd0p&s1hBswHslS4R#4;oXH-dCeHm(zo0Oypb)Xp;X_W zncr(GU-ur|eo4Z`U`;W)C)Foo-j;Yiloj%ZnkMn;1CQP9f z$5SXl>-E4|&83Jm0R}dAs$w4X`hOGW3`N02>AuqXrvCSue)gf|FPqkvRzIrxC5Tc4 zvf}7(ph?ka?OUBFv{4J%d(?qO>uF|X3EFWv0KL@mNnQ4Cn<$Y<`K*ajdY?0fQ`AR# zE)^5I=pEaTAOP((KElbS~7uAU7 zeagr(nyje}#C$UAcu60c>dli|MjfuA?i=)CW8QoCFnm^Xh6jM$u+i5lsG?6}{qHwolW3+l>?mLtuKA@BsGj@|MIZa>SKqJPH8s18 zoVE$9nG>1cq!Bw>g4YYnd$Ln@9{<}zOH1Sf-_8xmLp)KS6Rmk{P2_l0hr3-3syGjaVUs=S}Vs5 z_*=bS-4&O)t9eA$ZYY{J-@Km6_d~Z^Q=FhQt4{tu-Tq8&f{g^8RtE1e+%0>Wjw6-T zY(i9e^^6lhZ^+GF~@&<#7%H2YR3Om zC>?oQq3@lB!J1|Q27%O5J#1>By5^RUb6in>?rLX(pDJ)b#+Ih-hh0-WWRm${<4+PyorA@R`~iShKnGU!XPZUh7~xRk z#QI5i#>00K`VsnaR!N5lw?`jWz`#D(dx#l$tmV}O6W{JK0aM}e-qMLK|nckQSrLjWr~+{I5Bv^L6P|2Cxom{;2S`7dU;vyLvHIZxBwlO zB7F8JNT@{SE;oX#_-Oviv=IsI$WJQp@{wQM#475Fx74-suC%Kp&BOX(^65|S60a>_ z&84m-E6O9Z{j_c+wzE)Dh~(YMTQ}~V7n&;uB8YG~JV&Y zp~_f$M4WThXYl*rC)H@N2}LbQ+Opf0lZToo&~k*m;>GD=$IrRM`$j- zr+NC`q`IpqT&Axjl_(5@Si&%1T6}7zN{B7B0Zq_9y}!xQ=eJ}@$5z(ogkEnws}xfG z7@&!4`v>Z|)P}heLVg6ppu;uV5moni2>6Xh5u)$$yB4>oZz0=oP-}FEi?DC}6fpJX zaP<#Qh#mQl4q|tXUmflA-+rdP5`%Wp7VY-l(I=lTDF%*Wk$OO5OHc-3HA2Y4GduB9 zEPhu3>gxP$^X8z!oB7C`qS3ei;y`4UOH3uN>uy3V>4_i5R8E z(-hEzd{{5(`p4u?O~6+<{-x|aPW7Sy)T1}%B^yue|=#7OS`6$u_xvRHRLRUiu$o@jE$YoH0cVYC7=z&{$)xPxClj+j zJM7PzLW3MKikbUq!I3WRujU@Baq;mZ+>&*;y=J0L+xC%y)=iK@!R(D1w*YKX_Hy)u z`jXe3y_kaf%e}7~>dy?0zTO=YCUrH>DB*z13S0{U;0>>W+Bx(u`u3WU%HQYjBfo{I zu*G2@Rvw;9pU~n&3xn=kiSDt~gH9bR2>f(}6RVK%MclTkRnWrm8v0QBo4b{==75B@ zTBtxPm~+SG5FoAqhT~#yc`nCL5=?+L0~0+J{1Fk ze*IDoyRg+V5AKk(Y!r0cL)*OlEiCHUzot&FkCUER1=}@w7|-NYS2WScS&ymR@bK4% zOn>b^VA)qW-RjeT5jP4V))DQ84v4d{bsy@Bhwh~SW#0dtXDCP8wR^*nty_3qTnivs z(el>+4k1%r%qZ}akMA+d|D)(k{F(m$0RH)Gv&}Gbq+xcs&lYm0xsN17siZkVk|@cQ zJ{y_)CMj%gLXt|l<~}Q=zLIa>xg|-GB;UTj{r-VH9((Nl_a7gXT6xU?!Uj!^RvQ&dS87$+VQ5@i2%Q+SF!|HAM&>x2*pG? z7A-p{+JE0Skg>OnBPNB85%@VHE?|}X_k%{t2%#`|Ue2mucWo*U_Ych+oihDvLI%e3 z@M0QHR`c94ln)LZsZZRR`&_p#FNiP%?J5G_TkUh{J9Eq{soU+P+P2Gv*Efz$Buvh4 zuHD+bTR~S8ke{4V^=pf{4CW*5s$x?*+9^PVd6{UQP%FD_u|*ewE?Fe2(z!Gyg+y?8)+#Oj^L$U2FEP+jSsQze3X zx!_-~l{ZcFmTsjNm3C!mwC580bTuLNd!?DT&lT*Az=BmX!u6dO6W z>!3!@Ba>5S3*~1c!u8hlk~EptHuAWK#BT3?g^ z^7f6WnrZUb?O=I0O=kFJv>*QMy;04;rO#P!Ct!mgq=<3GS=xh7Z;6q&F9bMTJc7?1 z7XLV|pD=fWJl5t2ksMsVe$064;V>YML+UHew*dF}`?Kn9D3Q^XS&>14cmZnl->uQC zo3O}D3d_EBtJ_q}`c*Z?CUq|FNyT^ZM{-`{k(KSc@E85}`=#jX4oHWHF`piz)2RsH zg7yn!DL82Vqjr8oNJnCa`)T z3R~hlUh`$Pp^Kyf(rKhCAkrZ$^A-KVc^z+C`@;-ruc`?}zXf%5NSU&rmD%Y*ZTW|) z@$xSHEq6y#$gRyWJ9YY@yajK`qCYdU5(c@nT5owJs6AsRS6l%65|a&B4Z*WG?W$xI zmNfBm)CXr1qQ%D|cm=%E+qg4v#hO}SyAa1*deE@|*6Cla;<&Jb&&)KDtlohs%U}H_ zhnyx&%M;z;_I6|p(KrA9S=5B*Zw6vH1daev!fEoMyjM;Je8xS;Ir;;6$J(nzBk@J zGouE&jFYJTt1FM-FJ*M$)=qF-j_=sf9;^VZh=&IN@K?mSx%w~8nQ+U}a!)YKMcbBP z8bEx)0Q6HuD8BY;8nnqAzPaZ5sk37O2$&RLO-yoef+W4{gZ0lpb)BVY3b`onq1sh+ zU!b-bx(G_!5yd0nAJ3;DL7Nnak+-N|@HhspW z!8ck-GT+@UKqD+zU&X~UtuSN;K~?M@Mpb&-`?|AM4y(!SUl0~oY$rOu%hXJKgY(@# zBSReE4B3nw%f(-In4%qm`K%05)mkH~$}6kR@9o4y_^beYGF-iOpT)!l)ok7QC{6C> zS>_t4FZ2d1(V%Hv;OpJ+^%R68ANohtvt&}g_7fAAn&6w~0+vn&3|~zMsJu%JJnJuz z-D|Ipd6d`wn(ZpPI?9@Pww84aR6*07`X z1b5*uBz}lN4JOOL0UcQVD-HE#Q$KN%ZE=0)md;tMhMzeAE9A})hA@40j;i`vE&6_z zB-F~VVpFJf>XSw-T~J-O6F^8rrN13T`Oo?ok?Fw7!#7;cRa8hUNOjTlLMLgWsH)PO}-SI;hL>)dPMCRjx7M9hFty zZqug2z*bO0fa%E$5hDUlhD26T=h5JR*6+{V7ZfW)15GHix;izYet0(RP;Rtp`4ig|M!V9sLwP5V2N4+ zg-J|>+A04n@}e%yCjXs=C}-A0Dd@RxHD1%Y&2K59Y+<|^7JSmrKVK;v8mkO@(n1_*@hW1%oqp-ixEOMK%~rM7&5@03>ab}u^%!s-uYeR@i3euQfvs5eU z^I6b%HCQZyBls7GF$iJYWg(^dQ9m=?xes20_6H$sm^X(yW$a;A2W5ZRt^TRxgq7MEm2=^WTPik1^K_j1%6lXgb6;gn_j9+l@}S*e z&p&-+aVVfX7+Ce)fpJ2LjKSxaK)ahcJ@6AN+FYV=W~q|BaG zYl)BDHg0R>qR^5vkcbB%EqBU{KCCf4^Jv<^xVVLzdOp8hVQAedQImRNWe$mcKi*B_ zm5HI`#V!-`JDg*I!NxBQ^e&lLg)qr)@GCafU2cwZEZmfBq`uFFX+WoTVpP?m8~#_Q z=WEl=vvnIgHA1wPfZYP^^tKfsQ%_lGp6(1L?>YzVRRDhlMH0L%+f4m7;#ifGLHj^R zP5q9OC3EbowD*OC<@m17BF9}fgd#8amCp=1TMd5PlchrG38sK+-*lWzKb_lE`2ile zi@22gDLIXJMMpb9t%-%PO6UZ>ZxHEZr!3ERcgwef07IMpe5+SpRY&ZC@~#+5omn*_ z4NRR;&CxfsGSc{Hq0hhCbo3Nz`taPJ%;82yTcQH%a0Wz-Skd$9DKJ3dHS~231jl)m zTf0%qiTCkj%Ow>qk6_om!#m*sci2;*kvhH8XfW0AWu-v#MQXCgi8ao>Io=s$(5Fex z1%Dkd=|%NlPmbC%Dy)uPKx~54pl^PTNs8^!?11=j zL0G^M#@B@_Hq)5z_HhX6djYpjWC``@$vrYKHKTnzLh5q9J$FLEXI!Uv&cG*I&^q_e zTy5orAQ>l~X8H^Zzt*p_21!;ITpU|<@4&_u=CMn5j*|GRzTVar z$=?zSWo7Pwtc=%|$AHbu6Wp@B%` ztFc3`kL_>e_liDLJ)iU%y)PZnuWs+GX8hC{EW@4gNATU!hT;R!h-pQ#){4&z|_`~-Z!Z$$yT+wzA7QgKLSLVW@WOQnmz0VBa zc&1M~;gmw3F0tXcM@#2({FuYdwZ@qQhhXd(cyov6ur9trxZ?T6`qxNmd)(Z+ztSRy z-eFg|F9t7Wn@+D#;2OZJ7pUUtt-*6oSO&BgSk^`?2iD?S%+SL?lj=kg2MJo4kQ)nC zXEho>NP2OAC-%EH2P`HC@3woj#_7c> z9yPS4x}f4+h=cXLc44XKeQRwvz;~ngkMH}$sbc01W5kh1slU+XEdSa$Es*<4p+e{{ zvKDBu;k)zKWz`kk>me>l^!V2m2dr*Z#=X*mHNwQYl{@&xK?FE9R7HtwvS%cwWxuN* z=G@C*9jk|XIM{H?L@#U`w7xi+uwO^zXLG$6(a$#}xxHN*y8yn_RWg7x4B&81)sOUa z2u5*ez7P;uJy4rmK0^Z(WXc;foL9Zv3u}a^Z0;YTyEA1u`@YJ-dv<2~P|1aMNf|}@ zl-Yx2vxe8c1e4wwfSsQ;w&XJMUc4$7Wu$%lULTNOd8@3r)aHxKQ_Caldkd>{7&Q>k zW+2FP*#x3xpp0$N%)`G}xOYKKt=CB%t}92+*BWY0o(0OL9;PUD^#ENLM;6`@f`i^)*%LG@3JL4b`I$D1L?M70@t?mpb?0M zcWofkg)S!kSI8{8QS719X9;+pb{{;SH25d}K*dAT{AEi4%-VGMQQF&u-*M)!5e`ih zff9l%jGiz@-k>%f&|%;hW)z95pO+>e?_pt&W)=`$bFQREJr?jE3o{=VzMJ*&666#l z3WGNusN?LGDtI}5xr0gFi;ve4z7|5ts@MC8`|}v8i4RGdLkodS@4LsI8-7q4KkTJo z@Hx6u7@@~I(jo!pg~j=_M%UZjVui9lrVIFk^@{xHRLm!O#_e=d2jW4YkDuOXN z_K29b4SIvQFP7fIRZ7`8%i)ARdwo$Dy^V$`2|PX(SyGd;c!g*fbW|#l!BIlD<6=je zsH*)K@O1y^Mm$MfZY~~B2X{WuhN6Ea+)tlcXt*a*-U?_ydP%wJdqNEApVdx=W!_N^ zcXlE6jjoi`tBp%uEpu?#1S~l&YOOHU$5Y{;$M?579%s8dryr+%C$^6yzbQM};m~;w zL)DB|t76v03)y$^OggLT?i4=@F1s>TG!C&Jug5Dt(8HyuEzbUZ07&(cY&<u2iX~*~9j8&$bEL>~ z*>Ra$Cma3Sl$jp$cKVPorZ2tA{cdEpy8JHb?K`PGih5=A!w>T`_ffOs9~aQz;>0ga zx-h1?{=I92MdR_y*qjM?vL}vm_{VD5fHhX6S-(SwUyn3D9=ioB4WP5;R^a5Q zA7)lNJ+#?g^AV2FnFUUhQuvB3nuoSh{JTheBEmN_I9|Ongd?6X#&)lZcIEA5-f1n) zha6a%J=((3H&%|72K~9hAyi~-9fhGEAIieGm&k&D7RtKBvNhWN%D?2sC8ePi7oNr| z)1)tXKEMU$IVMjZc^q^krSYO`z-=KYTUspu1V(A+GslD02Ew`{C zM_EONFmUaO>#E=DaK$M5vs_5u#KocezWgi{mL>7ggf6H=L1x0tV*x|M_g113`Th7L z1$m$BUxKa9jZ!I~YQT6HkY)sDgtr;kj{IFo&zE4~JTVrEFr(R>pTzIR?kClLrnL}$ zLjD-IUH=cFOT%kmY~fULS3030{o*T*o~r%MS2g#2I|3ra#;zj}OqhtyvUCD?7G(|< z^Hsa>$pBp-RPEXhrpyvp0Jw+Tzbm*UXZeT&Wx=dRX~7;&I7>H@ESqnQ5-(_5ooM$o zt<#U&hx|%*%s;=cd#Nv1FTHW1A8FQTP$lWR3JOZQOV~RVvejV8N*sO(^BeQPqJg_oR zoal~Yx!9kBj;8fm)kalyhQKiPf9ezFuH=!4`5FCakYR>uWHI9o`VpJN_(NHGe_&8( zDRJqP;?fSr3y6kdm-ClW%N4u|ws{Zq(>LjRp{zDvh1vb%E5k4I;<=5as7S6#h%R_2cU!Wu@#~ zf|I#+9rfe97^C#l+^ko?C~+WSv;AQ3nm9G}LwDqP5<#oN(XYcf-#GP}s*5T|2?%NmV2kA&8dQZk!*~Tk!EK znH?j8V`Ei@%I{EFjnC?#C^0}a`7(C&uRJr8SataJr-m~=^5<`MKhl!!(Vwt7??9yk za>G$CrYB)8XabxQ^sMuYmZ2Rms{rRjvN&$&{N`;q*krQ8Fi5qnsvAwaf|^6P=u@3^x}n>U>^ak$iXASrgm@tf1(xRCID0 z8ZNI^AzdrnI`Ddz=jQVh>M3}Tn;b`ee24ayb)`jPozQK+cPb&}t)xYtlnG&}4v zD*FoiQn6UQc9t+l)YUkxzl1%Vd7E*8jSEMSFS1=Q7M>CyS{(iUiMFnSZq!10w3Z%o z;i=iD(RbhTB%*{gpuV(U+Sstiw-UmwsQ$i0kC$?t{TERHsM z^jHfQ_8)h-G9x-9x9$mgt5Qb)dYZfj<^x+QFQLv6b-O6;I@%eLyp(n)AvyUPDlW2h z3DdxNj;g(aQiGwEqAPR%?c#8CS^lE*@gmTZ2%fR|tda6QPVff%{I;obtNboT zzu|I0W&Kp@z!SkQ@;K$+J(jGpwa>|VD&#N_2v2(8Df|$+B2^TfE?aSzTxDcpN4DHo zAZwUuX)gRm^~P3DMb5rD`o^BRL-(Qu{?~gq(IDmIuZofB^k^SSP@UA+-0h*Q`|YSg z+H_jS19U3>QOl#6kvg2^p0vqCX^Dk9?WwiJ_mH11vmse#@-9f=IJ~LTWb`!uY(3gf z8h0X?@C%!2)L1vM+3*RS$4xZJX=n;xcmnjv4GHg_sh3}ZQ91Pheu&FUkt{-{#W93O z8z4(fSr18$|M84e^(PRJQWV?5Nbk7y81?vo2nCfjaZ#8CW0EC7{2&TiygS~-?HVPd zTtVHMM#=f2$}v5)$W~8*1Q?lewoOX;%njC(RaZ((ei$- z_G9k;QbN^Pzu{V=N17blTIAclW-0y+cr9a=Qc=zRNsO~lGX^S>25Goj4b%4M4Q}>b zVt?k1Eg)Nzm7UZ7+QG3%V_jTQYPdN^bS+2;AHau2`YL-p8XD6-yM}KuyTs@pw9^~IDNV}lZ=Cww%GS;az|>@FU`N& z-u37)274qoAJ|BnSx*@^aW22?d0QjZOiJB;>$ZgPP(^?(^k3EnZrJ6o;-JlJ=-YwY zObo3v<^3c4%VYo_ge(dv<3}`R@4n-p3U#s4!YTk}tnA6|y)pEDdY4%A%Tg_r$l!TM z(2s1fFTf9FLOocuviw}Dj3S}r2{5@f);ReA=7db{y>zaolyDoEar=B$Y=GxhbVW>F z#}YD~R-m}C&o29wetmv%qI8<*fUY$Tib_X8skdlXHNx#>b{!B;eJ@xK6ke<;bL3Wg zy>wfK{E4ew4&u8%i=>#1m9nHV*RrbLXW#pj|02Cv%q0Kr#9hIo0}HlgZRez0u`+%Q zmw5J-jPzsb_9}MY=`!sC`o*AWCc7>Q6{Ce(iW(5b-2#p1=l;V52?Lk*XXp4e1Z6=X z1$gVc`by2+Yw_KaL+qX?R8ZvUa_!`vFhVC7ahDFe;Y0#WA&B&G1AOT&7`lcBd*B z;f*%>gWu;*Jo}*8=o8|Q4}c1vQB^4kjoJ6gJFmPt#4aAyt=YR(AMPnoav09$9puG7 zll*OX?+Pl1?ew0OaZo|=*>!RhU)}maS}b`8cyjwzdU^9TAWQ@V;D8H?ogIOkEiG7= z$}k#w;&a{Tb4{inFJmwrb?bOe-hQ`;_d2!Bw_MsX?bm8AYREtMfeLGBjmFKe~u-ZraP=xZ!dIVwFpY5iDI0OQ0PP75(&TAZhDzc2N8P2UXU#0(i!wT9qa6 z6?6RwQ+fXZ_EBOxYC3zLLd|Hv9{u8|>Wk^;_<;u~T6ogZL|x0SbQeU&QUY+Kk9}O5 z&?}v~_u1Z=fA8)^)HhvB4O+Z4dNO+if%}$^51*0tyvZ)5pki)m7-1$I9G4k!0vwiY z`UvWD(f1TmS`))}b|(FLjmo(;M!|^4g~-z9#G}c1{H}K?e%V}8D9xeJCEo6L@M!Vb zdTw81^MXFu#f>V-`_$;{P%gJ>eo~3?q!#f|?Q4^9mB$C)I$3kVP-5;`@}6H7x*8WU zoTRgSf(wL0nr^nRN5X^o630ejqa!(pN#n@9%Y~A7HjP5*a#Bmq1|8EMH6 zd3Be(?#qah3uXfKvAct!U#Dp`<{e}wUu3IY%6|5@h~D4kbjdo)HyoP__~ys?yOas_ z`w5J1sF!;o&xf)$-*&0R%tw>iJ$meaXMvIL02a$W>zzM((CbL3aLBeiV`-lEO1=4O zQBZtN6cWoc65j4)o2&ru!$oa+ayu4tAFjUVhCDxE`l%L$#ltLJuI$$~6j_^*%I+gd zUc^7f7(T0fHG5r2_&7%LIpi`ggE13nZspSBh0AYd1^uO7Qm}hH1U2lAVqSzAtt|Nw zNlO>lvQO9fqP{edOt%dHc8)!S<}_z;$CP((y~!{wD(;8h8tJ{n=}ixNY#;xjFZ&yb zlRfI%P`7J$?)2*v7eV*jA>)u}=;p9Vb9^s!39#425l;Go=-xhwz zAfqsAO~|g(_LgkZWv+8_%5b_L^{LhP!OS-=x(O;iPsp2}!qzSqr2$X`tYkU*c3~N2 zk%3&hfFe)qf+Uy#_U!#`3jeAMB^IS)|YJAKW^ZnPPm3{ox=xc0Sp`F3Y7! zlWDHO969nyQ)Dd=nS2gKzl=J;?Koa9_$Lg#SAS}}gibl4H;SrF4t?Q*?EHN$zd4D> z$qWaQfT(rU$RMhc_({E?`f)zJt%5NkL_8abs@pk|y-@7*x=6~|7qo4;_Y%UNOZu=Z z-Y?4xlYUbB{n35LG+ejfWr-1j0sma6nZQa5^dhJE0Du#c0=nqpKZm|;{&)2N$ZtOQ z%5Zml&*`si6Bsf)#r&VFzTZFofGj4D6S#%(laKE$zb9OT4S^?H1m&P1B<>gRq9Uhe z_Q!7oyoc_-^kEwhhjsmPFANRt`~j`GEwzaXzYLkYk6(|~VuZ2R06Lk`9JC(>3@Tpu zxrG-+g8)y*P9(S!cKM07*t_rPR2*tQ@%5GaZ&z@GLY*BnXS9qc5}=Iz9G{Z#0nGo| zQ#>E(x0`p0PNqp+?_Y>8{@aI8q>sml1~Q8chdzB5g4tXydLk;2@x?v+=dfMHxFGvv z3GL~7vm}aW>S6-W0e1b5*f*_{47!rIUpx=W%U0a<8Vb~ZqS`JECi!F^MKO8Dx8ur& zf=x2&nt~7=8nyM6Hv!@0%2rbSB@FD5NQ)=42DRPWuHqa7#1i|8aBxtI23#&-2g&jG z^$o1WmhwFb$ZFNkBM8-u@J%rmR76BF7bV6oSD`w+>$K9rt#9R!@M^*kJtPJWK@>rK zsDIG0otxdRFZ7(uA*0H~q9>wCweQaf0pFkK#&iLuBcHkgXCjtK?0zZBnwnp8(L})1 zYR?OG$5&m3fTTB2Z`bt<*Wh5{a=U)P#NeY3uCmVlx*lidH3=EJGleEZP zh=u^I#H%D;HXiO2INBa|yC!_{3c?34!LXp*m_{8z%qN3%q*=PXOMFbiu#9XOieNIl z++#IVXOA}KlY0S2mYP<1_V_2F{sD)+sf#1;&E>*jd1)NTZff2_er zBAJY%t`^I+G4A&p!YO}>G(SIl*X(%ecko;A$eocGW6k{ri!|cR|ALsVJ+w|JS@QJw z;~}i3Vaww7F3ejyK5(7Rzle= z$FxjHE08_%gZTgBgfnuEs5egME4gAdT?lsmdz#mUg6~;9&E|ben8>-&>MYl#B;tD` z<+?W@R94C<;7k!i+ZB~9jKT4kYuQ22y3UVwyK-_NQ zJ{IS6Wdyv0t}7twu3LzcYc!8NKhPKTjp#QKl_lhE?m=}0A!`iiKWTz;S#V7fMB)lE zPmAEUHLSa@K}Sx22k#vLt#Ju^W^hw^ZD_jMT&&EIemYwa{;?W~%5o5V?%oO;j_eb0 zc!$uTZZ8t#B+O)p9x9*MQtIJFn_C6}c{AQ;>XOqlnIon^npIuxxZPf}(o-92YcYoJE%-y6Y1onq=a^JT9}`1FVJZasuC?2#2L$xu{8 zW&}blrHs1+0#=z?XY%39W)n0zoM3GI?DYO-31K#4nUK&OiOqSQr*uiM5Z%R?JlZL| z!viyhOs@2UDzbgfg>ynSZrak`POo?yp*EE7EmthpP7l~?sTzNTB%T_fBqoSGWJwmC z9#?#mL7h+CBN65Dy>ERA-P}VZ+D`)< z4Jmoom1%xG2MlCHGhL`KFi0J7hj9%%I%Z6#i-O+-hgmrz=hJS=wTM@in{FqU5hpc? z!O`oJSU-H;Z*xwO!7vWwm_ch&}E2jsa_=&NgD-*>IXjKXu%X0tI92gM?3JH(ZP)iNF+`Qeo zv+q4x7^l}7Ll(7B0Mv|yadAKw{OulvNmhL7LyVu&({0x=FF?j8lH@nVEb?8kK28P{ ztyVrj`2~qk0znIdRy&8WGLQ0jg#Gf!Ns-T~mr2hL_pS6{XeCU&p)sJn*J*l(!o&ls zKMb}Kls^D1k~~;6&jL+KNsp^qc=*EZTa%ea2-C64>Fr3yBVhG_>}SdD%157eYddQf8Ir}Oe|Oh$OK;bCA0!7Gv=%s0QIt1Wvg8UQdJIg1yk0hRTh8FPh!erVuozzrkS+(aG6H9VF0rJY zV0i8{~)uDgd|eesE=hpo%@Zhn}3^*}Ip0|W@5 zLktn@CHM>_S*`#aLI`E^GRjlE(}cv) zLu$2y+*ZQjr&QnWAHFOdOLV)R%(aZEgL67|sF6LD2GI;jt)=HANCyU~DV*UG%WiIO_%ieY?K zefR*CNPP#hPbAG(6E%PUSdpr=j9N;y@i(*lz9hgV%pfJ~r=!V9RITkdq<%U=#S&{> zFQKOhn@O-Nl7jgHqNjA-T)*N>Rh(gp<|>N3{VA)&l~-XH9Rs2MDP2oq+9WvBtZYeC z>SIGunEPLUO!K^Z{a(sfU0CQ zvrkiry_3ZLFrr;Utlw&k?{YAAElVllEi75ZZksCPv8(??LX$~%y1*Q)tEKEuqzs=y zV^y;B_pE7Ip@1hyn0|LKc=r`axs#X(OKI9v@l}dpAwuCx8j4PF=^->^sy2IAD~O{o z&3C37zyXaCp3Ib@E(zv8qig2MDt-ogz7sg+L&p~bYN6e83eywEDm=9l+JI$_Ha4I@ z=_}!L1dX|+z*91kR4J#!KKN`#k9v{lYT)dg^PI*jcj8IdYipk|qGqw{p+q9}oCF7( z$s-$G#8Nq!SfnUek*Kyn?8IV@ip72NRdTd`4$SD1u==Kuh*OZ+%xH04`J~g{pb)FM zOXc1Q8--`tp|`?|UG@z+hssvf zW|31Q{aKl1_Up-sC0%WPYF?N?!EY;*tbpvbZ0;S3wIt|<)R*meyPnb_tJt?22w95^|jZB0(Rgl z0`rB00C!W2CU7*K(%pr~PH%fTc9i8a=R*`-cJ?7?>vxa-v*32r+Md#FP*oA4obW2~ zOw;}^oyTVNi9={Y;722XilCdr@7QM6jj1HLB`2<1CFX*a?!*?@8LB$WItr{n0~Y+$ zJ)3DWt&gT(d7fEv!2XHhTjDu+;Bf^&2m0$dNWv~?6acjk*!K0A_+@sF0P$~pL4tuLmg zSieb!T&PfD(*4Wm=lKhTX4wtWFOjNWwiB8BBLE)8F(-F?JV2RI7mW&ob&`BmYLkWR ze5G?#X3l29o{1RJ$^(wR>5X88mVGAv#ga?m{&CX1A!R9jq|^Sa8Y6(!ePt$hwyPg- zwB>00rI`57=|#NCj0q{Bg@njFEv#a^XY06CYx1RjRo#zZw*l!~bX>&*%rVU1x|gB! zI)&xo;4^nE+ZRmJ@CwEoYw%|h1pJ8iOghU<`DklJZgJ;|5ks;Qz<_)srSF$g3bkVs zW;7nmStjJGb#H;%N$SJvX6eVx5>Ei-rwlSq;e2%y1o@y#6M&hfC%B#MJU^t*LkOSkq*L>Y*)7s}X)fhL^8r*(b^UJQLW`NHHdc$b8_R2wQWS z>o}aO48L&07pE;W;J&1zymZ;Hb7_BHa|in@X7;u=w{2leRf4aZ4pR@a!VrA=6{Kxb zd78KjllpIB3(f?W_z4;XypY*up|qD4^^l&{vdU6^;>8sgj+C*CgfN3>!d>lT!1kx8 z@77RKlkEOByvwmu3E*f$hn3{_(B%r({%_Ld(61i?=BY0t6q6EtBd)4=s`~m0CiczF zG;60wsng|D22GqPOD>IC6=z-U%{d<&8aXkyY|^ntxen;eh?HX#cUzUK3mGXsz*-jT z1kI@3o4M`td1U`Aa_a^)(bCg-zHAqBIi=#`5vAt|LiY`4427fC?Ptp$G2c_C-=DUz zA5fZCVd*PS#*QU;r*gCqWXnZAr@tElODmtc9G)pXF6s*5oIFFcDkDgKR6;0B9}?UG zTf%!ID}8k+Y7(~{tO6}{Ua~$G4{97?x6B0BR7#FpCwNx(mixQ3&788T&X^0;%!;JmbD}!Q%!?Z+zn&x|O%~n3gQ%!fa6Fr# zLG+^?YkuHpQ(EIFdA6%4@%k&Hd4fX9a+FZ~35VmUu-nHizTL6bnQb!BvGhC(Q&FV+ zBrs@7kX*U*pf069?s}5aQh;WjYHp$O1D9aa#Zh6KF{)+Jb;`1*c1>!xN6LdgKPnKV ziJqpphOPqMlRI~It<`D9-$kg`gn>T9q3p`vb*?-G!Rl_)ox zd(e(X%XP$gpZ9 z?F8n#Ql2i1LxwZ7O=kf;<#(hciN4{Op8-dzeKm=e1Txt z&o48{Ik!AhJtGtU=?a*n|BW(1+Z%jtGP-Q0XU!T9z>%v`hp8%7*X;#<>!7Oog;+@5XQiCP+|KAdK4tP!lCRsF|2DN=pkPU%wHaa*@I2=UKX zZ&C{Dh6>IPek&zmB8|DBACFZoJUv|zc5jE3;9q_S@zH{egkh>X=+a=v7IAtKpsXvb zy}gKfP3GX#GXWBgPwH5Og&4>B(Xa9zgon{7vbJdcS(&Eu;1>9Xk91x;ylT z)j5eO0Q7BgtRa8{<<)%3*i3IHn(>}aNKXhZr>-ddrcIEMdk32pxF6%0YteD$FX*BL zi~d_Z?#n1v%FE7ThIp;A*0t4xW?w3GI)PtT4*0_AIT`|kD1Of47{j-K-`8F+fozZG z&9Io~#J>Qv5*A(eg0~s?qj7s181NyxNarGcUhV84H~UR5e}@4a4(HUNt*xu(00W03 zW6*Ik-d_V-jX(a^fU@G=jzS`~ZZnqzVm-A`yX2in*v(Y`e*KA>6^F+Why1{<+a%!&a^|HF$ zfSV9b68Vj!Iwf-ro{B4ON@3Bj-ClGUJ6F8091@?{ zL8gns`1jUtfdCzQtt>53={;$2U@3-#YnDMWzdW&hUNP8i3jlQ{W3V#kmMO5r&S&z% zZB;c}2{=EDfV85Uo`@~(ecXyQ;P7=t%I)rF_HcEq{O?$)t2c+-3c0x>bDit9aI-A^ zNILi=Lb4Pn8w*3v0(aHFivheMCE-@p>5tJ0ee0C~&(3G2hQwD>LNPfI_L@MZD{_<` zGJzJ5K4Gm58u6St|VjC5g!tnlJ5Re!MazSXx3LCq(h6 z8GC>qReDf(vY5nFa}r=x3|S%4YuU|(2A+{59H`+g$EeVSdSU8)Ge*~Hi(sZHO=5YW z*>5+#fZ!f>o%7+`^)Td361%D}ri^1RC!7#Cx^NjJgG=!Hee>CEq}C9jq~-eJs-r+A zLXW$|G02R5++4umTMnJUC(b>uAZLWwtrv(0idbQtv`chHS+R+qpixY$wLQ$F-b-cZU!MV%q z|I(v|_)&_q<94?m_Hng5Vdd*fUTSgcdIi3-tDl~yMMGZSrBNmj9Uc1<&=OM_Esili zj{LRsNMJn3J)uuZ+N#4<%lX~tAOuxH|A>#3I-s{;D(TKb#r}vRE^c(h|3Z#BDS+$DV9n~3~SHKptrCaujWRJ2AB!0kJL8cDFmP*v-)u!G@7x*R$p(^a5x z?5Z^9yB?~ofNk|P|JV~+l$Q&Wv^$g=PC+_dt?RD!8Dc7gsT7M!SuAG&IfVusuS?1d zCp3Lsnq=j4UaT|Z0DAe6wz7Sju?rc-b97O#>W;2ee&sc(c+t~()cQ%sw!=vZFT;A? zxq;nl=YCL%0^j1j05JT~aX+Pyoi`3=Fm^bH-%9l(Fq=!>rtD~MIIwsAF^p;^PTTfK z`X(u_jNTfoL+jVh7iX0RxH{kDUDVWC-_6q%f{INEK}8{bEutXPh=KsU5kIzexYAb20b|-7oO0%1*^zWmxxM8-j-A&)SVk zXQrsDn&84}WC|GW{iE%!iAC8G<658Pv=$s^dv%~rQP{w=3xF-eNJWHZ@HC@N^%gW1 zm|SG$F9AfWaRC$2ZLFaGhs5_1VbTpyz#D19Z`=C%N3g!>A%dw_ay*v#$|M)~iQwep zo+OF}^N!f;Z>&r*YbFAslQP8qg+8@T{sDH_Dp6T_yd-zw0AS<1uj{QP-bJ);Fb3vz zewRExXPq$_?s1TB6kX~Y1uNy_T4tL|0Omq0HM*GGGY&7-g%)`N+O?)RN}dcLWTKTw z6~ptd)<2wmn{)nRwazv1PQ-EOI8)nW7p_QO^xh!rwrO}ByF|s+mF_5+V{Oj?MhI|5 z?t)Hu^qQPs1;UZG8UPr}OSn)?*^Od`{j$j8#xqgxTz;4U09@Mcg0+tDyc$}&OJQW! zuD+_8v)$kJJnb0qJXnj|>$j=-qQKh{{Z040wd@cnp0~R* z;@?FeCR3&r0Blig)2xg`{k>jF+UBZBkjyE%1CREZ63`I75wUAfUyCP-d+E6Yuv6X< z6`Lb>Gh~9#t5+EE&;$4Ml^B5aF=F#tpE7>OVSM(W?e~>$(hEs&`LU5m?(=a_uTNCi-Mr8#V0C+AUm}iC2 zpIo#uHFn*3+P2SVTKzwo`}5%2r;S>Ebapxm#CE=5#>oaEK~B_1(BXi*;_%XekPqgU zV;as~i)uCpit_gHOJb!7=WWMmeE?#Fks;Wc4mj?c1q*$qTg%wa$1|H)ABNK05#RR8P*bQ)qfP z!*}S1gS7t>tz2IRf5Au=K$3$40s`EJY};Bpeu+1E>Lg}VZ^tI^%H_sc1wI`{bU6sq!H3F{#zvK{S1*YwH7LGL6uah$b8$TGG?(8C%HH6tW9 z6_tyUUJxgy9+#=$f6+|(tFX#~;~;gaz}oYHR$|BeP5G+dk|Qel$Cos6N`n_ToA zj>wIEp5b=|YLtNL7O9g{+DZ|u9)IhhS~(6{%ISqPb)8VFbc0Y-hS?~jeCTYiXms9F zQmbm}(;hy~u%&4q)gUppAMV${+H$V+?^2@OH0tcnuqE%AG*ySeH<#Zo3HHomH{Gb=bqDLT?^caK)6ipJ%lS*4A8ul|X z%n~wq2wu32O}}kgc)c+!HGS(D8$40p{82#;hf!{oy7<2sD?0{RrsR)e2O*)8AdEzJ zlBKH=tX?NF*2T9BF9QTI+_)&ta$W*`j!u%Hqc<{x<3s|(Or7+q#+jW1eE=?LJ30x= z0jwqhrL-|9;dxZOylsj}H3gl@8540TOR9a^I?iM< ztX@REFO<%yk;u8*6?+OGRBZ3IyV)xhc1@-AOYrm6eo#M=m8uplUTAPm6zdj1i4V2RtOJr zLb|ly#2t2N`@PaGS(xu0o9@(w>p7MV(d8!i80x%o82{ez8ztIjtu=VYq;0caC_pR2 z#9R<8i4zv-mmB-8c2#6G#y9Ki!iCBRutUFUl>75j=++I?KRY0^I$l21s54Y$6$pAKJqm3`;t3t=q2p+(jEAIO}3~{I*R(_^1L2Rd0zA zv0{v3pLW__sj@I-PUq#k!sQ?G3J=fJQ$hY}*|6S2kzqKzV$|ZUa`o7)tP`?bmsfSrp1Aj6sOh_L8SN z;XQ+M2|NHpiFr|Oj_LV}3Aj+oyxX4OtM3}`N4Lh8YKxb0 zTcx+*a3BsVaJ~oye=~xb7+k(r(}pzJsjdiv`V|g^MHeQrXycfhX5lDm#I|Lou9E~H zY=vO=QClsx@DPRJ7j>q^@0grR>lu?v@{yW$V{qdy8={CtcQZFpIlug!=P^Z1b6bR< z!hYSfVmWcc){22h9gMInLeG+(hTW=8;!d&0b9vJv&!UDi!od6MRr)eYM6V@r!5phu z4Ao-C7`i0ugMmb0);X`##nZ_0gMjne8Yvf@Y{SkYd7;SR4k)-UCs+nrd<^_Yo#5AJQy)qmq4#awA~7D{ z()e6oTSCo}gr}k&Y|M$*c0k9Bo-352{b=||&&}ExoiJqP+69K&ImUt1>o$+kF70aT zTDjqGwYJq~oYTI~tyDHTf(gGR(Qvtx6mMp()zwH>UW>06o>%xCzuQU1ZU`kQh?7*v z)R9^7>^eQAa1alU$lGXbS*+*!uFK&UFlut>*_Wsm>XnG`D^ne}$VkWsMQ~1MQLo}g zy>Bz80dWq4jYU_S0yvS4pgZ97khNarMnA5yKMoaki&GxkCAZ=vY`cDHSO0kJ)h?r{ z(D1U1&;ypW{`Q4c(o0Qzp7%ISm#PX?=57u(AochArJo#PM@i>0&R&$BzkB92g z2&cSn3a(;baMEHPU@Zxhsf}FOQkjl#cW2uRyb{pN*tctNQ8Jqmdnru;I%;#O`-C~b z7l-QJ7{ZiL>J;Ge!P|-#WnNsMPK`RA>(o}-f(c8g_3AAidbh_{nJJWl*6;_LB`u~7 zr1j{XLR8;k)j3l;Z@Mr$(Pcps4n*J#O4R7+uhK)y0CD8Yje$s?5EIe+$4mCx(ej)w`A|Vm zL9>sXFT>8<(0a-)_dF`Y7kI)tjE{usH+8ZHVEMBnaynzzXHY=(XR|*^ZDv=^%m&ii z?x5PgDT$hz%H{^>X0}yy|5eL-9e?lj))sb=D308{INRCyMp|1(LQr%V zoqYHS`m9%fPvwa_!#`v>ZTYx|!nQYuhu(8mQrO&oS~yg-)X(d(ThMzQS&H1|3|>?? zO(E>N$FaNEZ-(OBIa$`roY_HCn_Kd@VPF7@4^JkG;o<28G_yA`p2mVL7obJxZLavI)j zeyYZ-J+!gDHHaDdYv7Q9Dd(?JrrET3aBOP%*1Fac(A*JO0I7`rEaB7IF!zw#B&G@E znS{(e)#5xDdar>?{&CVJ(`%&I*jL6+p;uadmAw!`GRa67`#N!TE13u|cO|E2b0!xvHa~{bn zQ2RV=pa1Tgb3?4vtKqW5H1>bY;`ToU5#jO^n)3CT5<(PqQT*br7RCXct=1+gd}JEw z9Fx5<(fNbDwXzvjCat|Bi?1czUu`4s@FHyzaPEuuYeg?8YNt|$Xh+Nl zQd2)}LGND?_5>OHONS=cEM3XVpJVRR0RAG%`e!7(iyQ1Fjs89uf&?^Pz-KE=m^{T zvLO1qm>ZCjs6p?_TD}e#Q6439OVN-wjAxtW>dX3;R$8neUC&lXum&txV%mk#Dzi4f zYRI!EM_@bB!&fKO-N40!QlTLtON-IJanZ2uB;f|&IP$3ADk^Pt6JkcMxUm~&qBbtla_I{F+ z9K6S~(;}gwd0zGe#JBydE0{M#r>N@RA8V4TQbZ#xw8S zZJWjBs5sh;MJRvr^N@ZP8Q&n81ay8(aH*L`d})~VNTv_eN8O0$4%YRwG;)qv|5W4U zW(Mhyn!YAbr4PXdA+C=qs?70LR($DA_cgJ|13bh7mCWxa!FtErn+MNq?_kpP;xHqn z#AhoK;S;fkldkuKS{eXRqK0vt>c@$;Fkm>wX#Z_A7eIsj$c}jXcf_WSr{#jf78oWt+7L^?MX=9zQFpIe*$#Gujc~xOVuFCoP9a?3u`_VPL&8jPC1v zLZB)t24_*cRrr_Z80~6#Z|UG=t?7p=s)qP+z}!2aM;I?tzQA!yTv6YxPtG3xE-^?y z1&Cy_Z8ob*eRao)Tqg-oBvxWDzpD4@n*fQkI|t3as8n`FWercka+Mm0v^{%_*vfRT zrj|q3@{=LcUiVRR%#JF()_WADJ)xx?+`agtrl;{AZo(-9BI{(YHhgz=!@@KmgssgC z#PC^A>FJ-74`0mzoK)dlpR#Pfh)+Zp^#a zt;}*Ymjw2$EXb%=+``wscm0^MBHd_$q7!6AHs94wldyBoeBWEzm(=I1DE3P#2~?*C zqqCN&zG-G)w7MrK9qhtpjf-WasHn==rfrPe4d3}}93d()#RB-BfMIYvK)JEw@Ujxc zZYH+DJAVfqAi=pMvWf2B#g8w|Z(kx+5e(7ZZUG~d6g0z#B3VE3Yf(Sho~2}LU@vJd z0{yxoA-;(ikfEqLouyg134*;Tii2$R_p7L`x$);4~*>R7zo|jFRP1v=9UE zHDl$Q{(1qvA%J17Y?*wbtpfltUootvAe2F7=(p@qZ zMXszmhwXi23323MT&Fo;-ommETGB}3Nr7Br+Ni%o#vRiGR>?PfpK6~jY*;Ly2bH4f z;FC)T>Pro~L0EdsFP0r2K_`i>0@<5Y;jQO*>MNgUPH1{ksn7NB@otso@z*; zsW$!c3hNI!uGTj8pRINCC+)*V({EoF=57Jlr&xx=`8B`^gf+{8?zU$?E&FGpj}o}~ zz@X$LaP*}l>hU)#p>`v1DB{BCE`41o z0I)6@xEF5CgZ)ywUKC$1t$ac~W*znDtYO$}D@_M+a1X`Yx*nP+9bQMA+n968G>W_) zK6H8CtQgo!yI8S^WT(rB?a;u%tgLE^rXWenJ#q;|*;nrGPOa|x?lmni>e%iGTS19V z<+W_mSl>OEb|^c$^*}=04a&*(>f2ZL*p7Gi%}KSeyt4+m7}&Sv5!IgFi0oYrr@Y*U`A!kTB z&5<;uSb1>y1K$k;%9Mu+H3GLpVm(GjM?k;~>FzI?yjH)<{aYVZCZN;KDe#{)32xwG z&I{bcl5_ra!x-njn$CCm1G?GADafpbJ`M)qKko!&hV#v^XeAieb?JWrc1IbNC9Ygc zRYdzmm;P5StF5<+w@T)GEjn%}6nUQT$v|lEkDCm+ueYWVN6?jUQsoM&wm#}OBgCqU zYmc&Z|Fn(K^f!)czD3&OV#yYQx?SKYzoGKFh23*$0;fgyX#n_tF4w&idtpAtFrm&J z5y+Eo{1yAWW_s(0d5g9C{ytV z1cko4p6dEJY8yCDM0`ESC7d`je(MWcFrBLEPf;Z=?n!D)xN&k%QeX#f!1PqYwmqff zL@Q1fC?Zk&_hA#KJC0pzT}smELpFoJI?N>g2R9V5c)%99`9kzVhoJ#!Er zUru$9+zQl|JWUuTkxVBS?Kf>=(TE{i%EP19{j|N^I;!+3Rg~u~O(%dUil2Ln)ns)f zB_1Q;w^kqoQ_Wj%5@6s{6_}GqD39QagwcrVZn=XY$EZ`e`mhn*fMdozTe0A;3*ek` z*DoW8!0B(J2Dk1FAb39RLv3)0l7Vp`W?085HV6w z7{^36A>hfYqf;Wl$U>5nm7{TlHW&LDhDe=H2zSBzCC%#y32`;9|GH)@r;4clwkcEW zV5uR!lhoT0iG4i_0w?Zj(2!+HFiobKyW4_O-Dq&#)uv(W*Ho^q=JK)W2Fg4&A2OX9z+u)j+mS0wY4v{&FX4^jTlt!rx6d?T^<*lrRokUSMU6Iz^d z-!z~uqI=|o-&He2b%AD@|EFquEzKMBg%;TCmGwZR_k;^RSqH9#IatyYhx zC;~UAXM1OjDeumnHZ+Fh^v)7>;WDO4C>ebhj!4_xHKtrXs3Ji_0!PK{s=)C3sy_Hi zo|D&fn?+TvOz$z^Nhwg33~N<)&>B$<$(TXCyVE_R$~Dk@mJG9bu+!gcdm#TY7m+gg zRVBEDO@0Rx8dfGVGp^$@`&~jM%xuM5L9}a^FW2Vl`RylOKq{zV$KgYFFJE|A70A?aCdHmJ+>Lr6=C(2@ zcnmop0MqCye>1AVQ9xDOc0fdVG;?peKGm9Ts|sBIyHzgKrH>&eghia3|Dt|IttG*y zLNB&z#VY&6{_SChY92rtc?D-40ds7|1n&U1NIjT!`?Coiz1jh+yE@sO#)% zR?$p65KQT9-kGALL}@l5A@yd~Wv8()9Mw~(NBy{WoAWX9>5g-=_M9G1vY1bWC`$wm z8j}~T{2M5?B_O;ZFib|gNAkdc-odIWK<$^QHV<&{Q|0RXg|-^%x-fUU1{?79_95=- z&vpZvpS7r}er+y2*qu3J-+&lqd90Ai|zcXuvqA=G;IL6RZpuKOOA>KkBU0T^d4Y7qu<$Y2F#V?<2^7zSCB$ zs(|vbE!8HPQ5QKC8LLwUvx8nWlikW-cUwRzNI401r&{8kUOul!HJ*8V>x`QVwNYyyggX(WqKZF*58+xXE!1l08 zxgbYKUGuSq3r(L6*5i99Cv0P=Mh5Zlcc3AsJq6}%pW?gks7+%O$k&96U}XA;OBJaq z-@k1UMCg22R^?;B778fTl`DUb7r9)>3%4Ds4E;I_wpCke9)Q%`3?Mm=njPfid2hdx zPkwoNGj$t&1`+4HqO}IOyC&T#4J)%M$8um0B)j!2ot z^!rEcIkvFH)_drwQ{eWnYvU9@%@!`q7{aUiT~tv=4oz`kQU^^<=MZYZjwEM^%8`g3 zLG{c7ap%fF!_^SjyR!qUu2|a6E_+#D3WYIc*XPI-Qi8^lmox4Y0$^NbiEM+T-@RqI*ZIg!mv| zo?`j!4DL}epZ%74Q@pMLW#6ZYldVduG!!XRY$^cM$W^VgINmMyuj}g-nx+akuCj}! z0*FZ4+xBxc-xtIeo~A@~zdBcR>wK}h#qWny5#bsJXC5am0JL~IzP>nHV zcFv^1w}(av03ow`eWuw?yg>6YeOrnuqR-}2G5TEfg{iTB&-D@AZF@~eB9epm&e_N( z4!sBfgp&ge8>(;x~oe_5oC{C1zb|(+j6q zZEdy{Q;n|l8J$i{w)Z<5#K12{P}JWLi&}fsfKy?ESM@r2c0DqD+>mbfyyPR_zT-asZO{F^ zjI19=y7&2Y8dm|^Kc?%#+SI4J{alg*>?~u{i~*;QXEeWB0&rh7WMAL6V$s^fYTVZS z+0l+%^|ks&lXTNP11KQBX&BG?^%^ytzl75%W2SNXNs}j_O8{ zKp5uYWrKSbtt=x~u|5OJeDtl_#uOWYT3xJxKd zcT@JRa*3nD&<5R|LwQv8)O#&hF}3|80}ZZ4p%O_678kasMKnAiiZ=&mHW{_FB{VuN z*X2})ygFJBNaPuafei{XzlgQ-fdEl=fAb|W<`ix24p)06U8N@cU4(LU}RxbgN=vqq;iG7P+4Ng#7>ZGbC-NJOW3TpwJdY`( zIgv1;;{DTU&m}eaEFf%Z;Sya4QP84+GOXt4r&?i*%9GtZ(0#zgkN)Jwh5tFOoL@J(v;P;^K09-J4d5yk)fm+8Io3DQ*T43m(ucfKyG82mnL8jMqRGA9 za~Bm(m)2hC>tL)e$CXKY&&H`Xg?!D>;4WHWwN0+OcItDYwguO__-Q6uYK>?WUHksw z@CB`)We)_ez1s|QYFJs0w@R^b*gXzO4aJo?u3_h`gy7d|6DNFnlGbUJu)e#pCtqwE z_c1WY8Ly8xmRN65a4KMXSoYp7l4v(ghm@P^?KL)9JfBrVR4jZS2`$3N>P`NNzHNNm zI8it4@ZVdyKHz#E*XtkhqU!nHcw(s|mxfKEHZ6>l(FxYrwoj{_@l9Mw2Qgi(p4q1E z8x>es9T%B$w>8XPSc*&f^-lH`2}JM*WKI9>?3-9Hou9p{?{8x5xF#9hD0dP218YAv z@Yvjc=AEIPV$NZ*;DQD>Iy-U0*13Dj`J^|An@MPEJ|q#59QF3fNuJPmO60{fJEp^xQn&i_-73v8cT09jFxX(3ryxG zVtq#}(P6794qbQPxBv{_Wk7ZMd0h6$E*Z!s+=;8IBRBK)*%O7sXN;7;$qH7%!Bb{i zJ|sV*My)w2I-Bgvo~bRfSq+11hKXDa3iN_w&hYvi-7xfN(+QlblegNIT@xF!&DKuD zoLarK`_8iaGjhd!V@029|YX=)i}ZSDSKLP5TH!WxLBUprI9#--ZRR z#krZMX>Co94L4F-Qo6jAZU4AS1Q-11vYCYUVbsbKvs`-x-z#WuV)p{-tWX7culh0V z%|sFn1+0(`GA8w-ANH3?UmLQTZ*VlMoak#?H)Odkr>UKMcsP#_bCW2qC)4)ckqtpV z#?&5i6YEfuUY7UvZG%&ukGJ4jJ-8}Aj$7uKWEMwLu6|Z4JY5yml^wXk0w^!(yEyUL zEl9gM_Ggu(wuoB3DH7@~Ma&M0XUX)MBcTz+hcROGAq%7k>;Nta8?Jab>~;q4B={f% zBOy2SB;MMy1M>?3%3&DUdwcHmYO?A9{x3D4x@gU$k#k}cWQA@UcZ?> zBQ&AVxcz{8|5nd|j(60kTvrV9x3>?qBG2x&sKssKQVg z283Z$L=jBKTOQ4QNqrGPdrYrKy+nOG5u@d@bOQRF05}GJR-vkk%lmG)_2o~3`}(ou zYgfRNO&%u6o++FPpKE*ccN*NP!!(%2qF!s_RC~R8JMfrN$BDg0y`5~pU1;a!B>|gN zKaX7!?rm*|8WHLsuUh}cb`xAc#J`^wZ~KAc{SFbXE?j~h{Lg8 zG^dw$K>h>PD6~*Hr44?4$m&_Od!=X6oD5L>$JoifI3#7+MY-_5?X04neJ&XZz*|{` z{kWyDI)|9lrtZi%I?E6OJcxEW4)yyROYknDsP_>z5e9p>s%{fQi(6 zYr3Q1?l@V>Dne@M1_JUyzNPKx%4WT{8mN=j`6@yCdy07=l^#MiO&z2=Qyuq(@muXAZt zL_k{tm=nPsyrfim_~)}Jvj};2if8Zl*uDD^N3z2(+#^!A`=)7m15MYCPWQ(Ccfro6 zK!N7gcXT+{5O$YE?^F%SIrM&7ap#PysLE>x-0GT#Gk2YV+10sbAIdt2%2Boo%GJ@f zt2B~iZm51Ze8qTGIe2%k#epBsm?}rkh|IH3?l=xs`XOee$Nc&-ZI&-y+sm zs{}6X0rB?D%@B3O)+2Rz^@8S88iOV8ud1hcvfJHsXiDX+i-c#}IuuJpK!Q>&!@fxF zHRyU%bbRt)B%q1_vB+|22K$>i}~epTBqb1Tzx71KK)8MzeI}AlhcvX z6vnZs_3LJS&0tv-bR+-~qd@b1YGPHHaG1f5%afhQvaHhTyf8jZ7#;N0MOXp1`D)`Y zO)#o6tnPnk!y{b4O9p37mT$Y5$_Ytr|BB)f=+Gu;ND2^KX0H|AZd%8nAKr!TFqZV{t!b~gzhRTv5u)jgQNieJ5-;Wvni*?xjK)|z)G5JP z1{$%DPy%3!7Y0P5m{BOh2vsNnP?BPd#{oPvqzHqYT}7Br32yq0SDo5aB$=~rPnaq4 znTBd(6cdy%)ZU!Q>7w!2mL{Jf${|VfL-qV6Gl-r!iN8g=F3TLQi|3k?pJ{j>?=j!6 zspf`un`)+871)SV6RXVxMdIzdG}n^Uigp#X6>hP}g}k0IrXx`imQLs*2eUXxr1tLk z&S;Dj@vb&;kaRQ-nl^kGx6i3*SAGjqI%#`_LMdZZ7O*91I^RRTy06!JE_?P_HY*t0 ze~>Zjfe<=Nn^kAcUZ;&$Kp`oNq00~2ni?U%#0h0GblY^i9zDss%zUi}ye@3W&Zb?> z7}=}{^riVMZwhhP8goUG?o&@HG|Z_Lk9e;oT&S>IcRZ4ZcT3EQq32GZ%Gdb-p`TG{ zUO#ybMG8luBN^0iEv6*hP!?3Q6{W{o;>Wj!I7lzFUlSrX9oZzl-P;krZ@7Et^3hi}fK!os1LMvc$+)W&Ns&v#-5 z3fVbI45ygQd^9v6dK-2}vTP>O*WfJNg;ckI)PzQc=RT-S9;C^- zHld1{i4xmHpKC=xDMr|b)~?1L@xM0PbCvK-ky2^KPlC+NiMc&lHh&FWswHEaCHk*h z1<$7ExQZp=&1P&-Vko$gf!m>}rFkjrOXgoeu7{<`Y z198JZow9XKPz8<&1pnH3>Wo6ej^Y_FX5w#=5Kp6cjn&pJDX4e=wP+e`%IrMP;9X-D zsYxl+RFA`Nnsw~l`swlL8Vi>I(Wd7l@pNO!-t3_RliUb31zl*TgUncZ=r3FWx+UbIULswke028yL{&Z>-a zgnQ+D@y7cUg*oP=jAdhbn)bn`&h56mx|j2wrg3#DjnQv|*;oZUnlyw~JYC7Za1V-y z%<;B{vVLE=kYf=P`h zm1}8h$gDk+sFZkx#b>NHUS)*ULLt(tseF@9Z3Z)Klc6MVRlxCZM+HZ={E1-gR@_{9 zEAO|ZrXgJY@SejTzKHNQ0BBP)G%UW>U2u2&UyIsItIEOu=tZnLRHl1TP1_E)ayL3PZAK zcoFRO0f}?f$e=_aK}*h(!JB(K#Kyj2ia%Ciu*Edyl7XD8N3~rnxfYJx zxRfQ36#;aHNtnLiIFyWzGmrqrBue-aI0AIa4T-x3rKrp<5Dc^4^TP)*!3dP5mpuu}c;~FfUwP~-h3}iSJYhxhijV1djs6#`0vgHvlr$B^ zc1EhES&Og*i+PRh6&fai5CNIRNfXx%@h_=*Fk82TGHH-rfGDYnK_d?fW@jIE`tU+77^u z<^ew|O(1@ZEU_IbLF?{$yC?=lqD}u%_OTxcYsyA~lbC|ABN?VQv#N1~Khk#_f1#TE>yum}LqB6GalcoecN6glr~0wKYe z&7e06#XN^{I>$DYDgoxkIu1No%zQ=7kuNk=XuE~B_#hj$Ts>i}v(0^{+wf|AwHDVs zdE9A_?5CUGC;8M%vdIWs>>%3Q4_7bu!h5!DoI@duFlHZDt!%;Y1ethE7Q5=1V7RDL zig`RXJ$G`~q}FYjF}%tqNwX3y8?sjIW9ictEM5s66tv!isI$t*WZkGN;95+bz3libzq zYh9;v&jOuJX8fSc)~xYnST97u8KXgCTp0cFHN z{h9KL7ryEh1jyWVA_0-J%`y)GTE}+!}TIbEyP1DXyi0lNK0F zO`2>yYF6yx&qYDwIQt?WRemXZYd8;6r6+@BH}tPabxdm_viF9z~Y*LR;42 ze+~X=c~~B?HWT>!c!KqD!g{EoxMbrSVnOtb01tZvp5Sl3`}Pa@(j(wS^cz2mwdW9@ zOU+x3BxIZd_AgYuN;fKgP%YOUgAkYJOw4%@g!s}wPwyYg4r-&3q}r^n`_y}Bb~VNC zrwpw*DU#*Vt>5o!To{YQCqb@B!5=~0+{aQE*HRalXk_V@GfGmP`_jP@}pwYMC zbjhfWhU4CmH~Vi;&|=od`^x zwwNHAFlteVSyg*vw{n#n7*Eh_Bv>12Nyif#yH#I+c-;ngU2xp}->nO|en`;g@CX3p zkUz$i2D(?DhWRi_(#gJ_0AjQ+=_6RiD6)qoiXvGezAN}OuGG2d9}NoKWEDpScIcs0 zYuaa0>$u9LVxUjJjdjd7}`Ttvd{~IgX2*_WI>> zm^vR9c~F3ADY?|Z#*DNWX-6ca8MFGAQ6OY@6jXV-ri=z3U(f`=QwksBR6`nJ?R2T@ zraTc%SR>KIhf-ap^>lvl()QW8<<{1S+J#uvs0!oj70$`2R{&PLE!cd@V&BB( zjksX!xp6|0E~)p`@J0^ous>sMO|=)Qpr5bXu{$o%aOO>Y_6q~JXQB-;W$BPSUU6qv zuqL7}G(;-rwhwA)Kk#Wh;igB&eo1$^?Lsl*w{)#778=~;2Vp3Vvp$~Xh?!h&4Acxjudpq!KMZGxq8N|!g>QA_fg;@pCk zX3{CPn!sU~zBJIo31YOSdkc3&;YT;(vKyCG)f#ykCH z^Kz@fEc1qQK|sGo#C=C#t9DSbRTkH-&Q2;k{amtDN%plkI~O%SHJUmsKS`a1BTE7M z#M2ATr9KE?nVW{JrE>6zEY&00AY_Q-Y?iZjhcM^*#xGckfD-vet!kO!V&%RIUasac z>U)?M%Qhvrc^LoDn{ngUUV|$>2@ld;usu}W2zWZqimJle+p>QK?g-H4x%q#gwKOY+ zI*;n_g&cC^m%g?@-V`7RiU$%2fK)_QC8G6?tqH+Lwtb65(A-J6xnple-7AbzXcvp; zjzt!?N$*ixiN#Kig9KY5tS%oz6{u^S2CTRR9rlv zC$k55jwo{M4KYS_j^Xm(ZlZ|?J(_4AiXcxCFJ7?kQ6NSI~LvK~ecpn4$ zIy3>U9vtWn5odIt1avGg#fh9VOdq6?+PeN`|7#u}+<;v|1y$*sub!Bcc(9iW$Cppp zdaZ8`NU7RTWNfzim=OWqoDtmjeP@n)+pG%tZ6b%ynlotgMhrnpBFPqY)Y+HFJ-3pB zL%Q{?No;X3Ki1G4b;Ggta6`%-<$dd$wmK8UbtAj2cRg2h7#^0O8l51EZ^07f=i0fQfN zw_Xwb(Xt#Kioblt6`^O?xIO-}(b&m%uKs>o08>7<_yZ@PCBDeTZf(WzJA&<0>*OxN zt77S64^J*mE5l=?PGsB=i~6n$>RQ^e7orY$RHBb$4vLi~mF~%NzaNAhj92qlVq&7? zd=cknr1?0pCyn1!?DFfSeF%sHyv^{QJ0hvalzHD(pZ8EOs70UmH<@6*CBB>*2 zY^kY7bHiCxJOqt^f!T2*vS9aj0%Q{ly|p+xN#QVGO`n@`D)*|x`5eXJ3NxhJ8|hV; zt8{pFuoyp?FgOqTn*CImHVgRxzLTJbX$=TH4&{C^22n4Dd^C=>s8CXfsGju?VN52z z{No;_{@wc1v%}DTH{voR96qMHmOdWwM@iaP?>}KxH)u?G^Ww)TR$<9!Q@@4%G6Nyh zc+xtq2jP0uuSkD->ZUYl(@V(Nc~7ri*XE`5p|p;|M~@EuM{2}e$dFsodTw?z`(+VK z^Hf@u;ltf!%bN)=KdY|fQX%Q%$mSLjl4g!v2}!zV#2iT~N!OgAk|as$``hoo{quP| z_Sj>8yg#q^^Ywi8RJ}W*R!&Z9-^(vwNzO}l$hr<|3QjKb4It_SOq;;$bR~Ex{>9;T zlU8%h04(Qcio|dJ;mcjzfG;tW6wEI{W3SyijT;uDq)By-qK5UfamAXbwuFY)M+9OB z;D__va>9jjkXs&6hkZ&Oa_bH>XJAjj@-;*_mk8|h>sEOddzmN#V(17FFb6K;)BWxE z3eM>vI}m`@XE$n9n7)kFf-Ny*h^*E5TZ*h}lma7Txp@2X9g`~hUG=-3Y(c`+BYASC z@-&T}$Q>pv7^EJy_V*<;#BZ-y0T)&o0L)fu zp~)1VTSzbob2{y};yG+II#p(v0+IPkR+HuB0snT{v>QM&6!c;3uT7x;KSKWl)rJ0O z(sVl$3vy@(G74`~W8zOHbWW@IYl0d~&q)Y&@wi=0yA!K0j>0k1>@FoLJgFHipLE!Y zD6CQ|9~^v_p7zL;o1o1vwg8vR)f0l*c891w+pZs0vnw;1*2RBz(~MHQX zS=c50%i)plyJ{OwCIWm5g5QE;-7uImtdi8T%Wn=&q`@^{e*-ar!QmuW@iucyS9F!l27&PbhG}-P*&(Q8_n1x7=*x9IT7rrfH9rhVh&^d|UMS*k7;riVw zpVvnicm&4|URfR%a88*gLIHD(gT@IEb^9j^Ab3z^wrJn22T2pNs$RvabKbT*spj22 z*%Z56mLfQ$sWso!@NJ~iokN~M()#{gw;!rOs*}~9~iVS36Q5AZ`OpFk?di{BSxg!xiZ>2{LS#dE<_&JfgDW)#C*Q{ z+YNK?9b+r)fGN4!!(bdu7#ok*6Gy`B75Ny|CSS8OO{$vpW=PzqtLRDBz1MD&+TUD( z8YP(Dj99;lql*gzF|6rAx@YB?y^Uaae5u@wh?53}mu9J(bdXG5Uy7jz*fso2Q1V#@= z-xXLjl$@w@(@A$yU#n`(%YSm)T=qWqTDpX9vklkt!Vj69g`@L9ni@PWU2-Y)n@MWg zQEJK2q$VKuCF1CyntF;FIb1+pO!+*xbb)dguB59wU8Unz8%T># zPtbd2a$skTL0ap7{0Dl-HZNP8xkjxe-wuXgG$zlgNn>LChLcxx9fvv5nnAjKK32M; z!!|(xcbL%GDZ#p@lB4VSl@EioVMLRdeoddwbydkiRqIjJOaPwSkxeT$dXlj7RN&hn z2FY)F`*H$Ya|Lgck5ASGo-?e}Mn;!N;$r?@L|EB(iuKWx!Iipd>>b$jUfbFh=blt; zn2wpY%^@2L0wm(a9V({!J$Z_%NiS7CXY5LYnL9D4)6E8HnxGx#*i=w@-R$+n`YM<@ zjr12Zc!4o$)HNN{S<&{cs8S+vm90CJZ-rDDZ8b@8{l)V~0sCmy|A+q!T$^A_eK^tR z9c3xnt7tJL<|~=zu(N-Ne0*DqN)A=Rz$u*?mT%y15|}lje!NN(cHBd)I4`*<6P56< zvc??a>e}5@6BurR92LoQ^+Pg9YV91N`l$7|O6MbGKxAEYfNgCb0q0WYhwo3Cyh$!C z${5^X^Jva4jXIs~G5T_c9VWJ6Sc@kQ?9Kn4!aYRRTnr39e*CKx=p;X(Im`9YO*8M2 zTU2w;a2t8x1i)#ugtI$k*SXX9iJ`3qhhPX43%Pf68kKQY{=xBT%8S(__VAX?fSU~~sU=!-p(+t^mewj>(-*m*5Ya1~HAiYV4mH7=db+MjBXG?ScqGgMgk`bJ)G70z4kV!5Hc{ zbuf5Dg2PDhG5PO_;%=s2+m>gaUbz{!D+P)+;E|F|BFQE(Jd^u*6R7>V$_?dZLKW3F z(W?G?;G$IxoxF6mtu#Lo#63^}MMP$svNcbq{jMa_IvFyosMMwI-WZ$u<~}T~0N316 zvrOs{gQ}IZL-K5XPihA)M{|hRCMPFh@e$Y8@gV;Zq|SVs3a_l9z%1_K4wrD3xLlf^ z9(EE@yHa{$OIJ9hV^YgRr*>+t$#41yf2DbsLIn7)I(Mf#_pDsCIlfu5Je+UdDY~nY z@=RYlKHGF@+B1%$Xr46Jv}fI^7H?VU@7L!v$@&0_NXNYXL~@VW#0Tx~``m;kaM2Pl z18_;|H<}ZGNPW9hwEpjIbq}ms;HaLl?!kpT9o^2|Rlj4=3SVL8&z*4B+s4V%LlLIW z;RKXa@9^NP)d;fTHMPKZL>br(b=Ce)9^@A?4nCqSnnI4!8|$&7Hz3NlYNWru6}5X? z=UZmN)O+*4b)2k@%QRcxSE9Hkr~8*k+3SKL^(Lu9#rMF) zzFvQiV8wwYSjZxn3IG)^RjqVIre}2?4whE>8T`=X`VI~m!9KNub-xCJ&Ruvv_D-*< z$v051Yf&ZXwX)VMSuC2}yT2Rey;onCMp|}C8#7N1*#D#B8tSbT*TKN`*K3Z7ZRaqN zziNn~X9C(V9!-~tiuIc|qpls~D!qb#D7hPQNE6BZ^7(l~+mXIuuy$AHB%#{$$R_dw z>cZ$>nvI#`X-bf@Q9|&Jy0EsIdpAA@wnxg{Q#^=YZy|F~(S9EsMNipo?+>|qxSv2O z$E&~MvoRQlsBzW7uO{{oyp zm|ggLYWJ2MH~%)K4x9Kd4f(5=5}1GeIc`QhO+N`msoz2u)daD)E{zH}+^<7=X z#mQ^=1xoH8Ib}2tWY6m}eeINvVXKt-ztTlI+>8a=9H#D}Qn!RCt-7G(^Shr^X-ooG zbSfbIX-R~Rp0h0f*8Ae?m$kExCy4Gi_bL3;DokH7zBW6W)=iO_KmWa2~o3CB4A zhCw7V3|^0k;Ln^LngC^BS%mLACNMePdjEh7djKNBXI9tFTTML|Zt}$-VgH|}zKcQo zoOkE(A}OfnHVIH@GencRjJ)9q8LY!sBN69^L`A59nH3~lbT}D4IkU9NapXz!C>YdK zjQQK_Pck$`v2%|;Cd&e`CR-#Nj_mG_@kJvaJ_m$Mo%aiCmmmMg9mdI>Je0CyiQ)70 z)%r%lW8MbM_~+sxI)%Y2Q@K5#0)Kzx+x7e7e8jmO(9I>r?wuy_@5ADn=|m}5E|b6< zj@=Q7IKBOl&#>u;42)+L%3+ZEL7j+5lxVaUD~C)HL@f!(LI82tQ7#Lq_ zBGeAzL5^TuqNc8Y=fAccJaYKWrvB35*D#2q-V3qDjjm{=r>qb%)YqLq5S_-zk9$bkJ)+(8fqc}EWQ7MiK z8+SUWS@9@>Q`}nI)y)$tZ$%-_O&O1)*iv!j5!sC*&ub2PKYo=dm0Tdv&s`03TbHsR9$04N`(9dc*S9E0#8FoBt`0Ct?5KRdv!p`V|Cw)Iu*O4V~KKz zwYM+&_ETLVn;^BI-yZ3~yK)(Ic@wMGy^N&w5X6U8a_mXf?|&R_E_F*sn*-2+3)(@% z?vAt%priX&JUlB(it&H4Fb(DqUN76d*5_2=r`wp9b$MASt3NbYC*(#>UcvEiS2;+H z%E8p4UdkUg{#C=s14Z;FFuO1hwsT_RSmkcc4KyGOpws1B_n-2QMmb9$9LOcICYK%2l**66elH(2vhOnF4 zW&?qf16rYtRrxDHq3pW{J?vfoT}mr#+u3&j=)dcsn4+wk*P_5s7Xn3%B268+(kq%?9S6kZ z%+w|xYIf7lmv1QKp^t9YbC*h1_^wS&7bL0yGH+aMGU1#U>Brq)tQo-fUFu(d@nk0~ z8I&oN%G#Lwa62Sa`Nn}L(?zTSemYjrfv&tLDRY_y@5g%HlbKSGe6ODnnyfc-sG1%! zdN|#qQ@j@guE7u+?n9O_O!VQ&v=q-d<3lLNmxpliS5 z6;=MbdAk@M%=wOIH-0uH%6Wf!;S3ZiuyRNG_w8QZmEFuNZxX6FjDd-yVK?NaKJIa` zpO(ZC8gPjt*VQ|&)Aoz`zCaxXsvc7H-mgZo>})8$>5vL-n{5|8vgHwrvj z;+pF*ZOJg-eZ`?k(`^6Hj*5qITE+?RE09#Y^KT1{8BS*Fiw##m`~ZIJs~iAfxr1Ti zr|!sMy+{L+JYNUc=L6q2#m1oaYOt09LAJr}YEYXJ^QFkv1?5bu?6~p860U82O z2m%!SRe_pCu{I-9OR1=BQ{{CH+NKG=|h!A|p!5V<643?kI?^7h{aH?LAs&skz7W@soiE zfqew;;|F3}Xi)d`{!$OiO877m7*>pTNo`b9 z#+-e_QxNnOi&KoD++4o8mHeAIkoL1$x{e#+wXA9!F!yKgZS6FrJ(9a>?$i`oF9vH? z40Y7oJ$&&p?5x@hr>*Zkq($lm4$R;2GY1V#wU_&>xs^ zk60;DztXX2oWZkLfyf({FDJHi2uCuT0g2d3;FxOeU395(59=0*>Qr@eex=4c=VIiI zOdj|^CtZ3Cc5Cc2x&_tpM-9`D#7sG70N8Ry+!e~#67S~D=#U$1)|KMZEN4QAAYL25 zfsvcUDCi9K*Ne4f>}K#*$JwI!xf^4w%(+JyZ%Nvdo5bn&E=6**yR3`+XRpW8(Q9L9 z9stnMEa6#J`a{6|{|WR%orz|mYN}e=iGfq9zmJl?z1D$8_w@2>ENg+qw~0ux$Ywwg1=(7LZOC75Iu(F zbdno#uks?A<7tyISt3f%qUomrkr=hI{IVBEoH2awhnYr43Y*e~7ho-+Q!M6bSqege zh7v&otk@z}9+>}jD$WMj}KcBRQ2Va2b zj?gqtSk{`9F-NR=U0w&OM$ZW_%>r$Ha@$zbZI24pa7mYrO3q!0is1_M=ZE*_gXAw( zWP#hu=pO$M%T}nP*XAW;bFnzCTI*3xNiE=wZhJ{%6{lk36tTp_EDDlDdkewr(Jfg} z|0Y~>lsIkeVy5NJEBDK`@wj0Uw&UL~wM1pSwJI40I9~R0At{++9p;9Xn739~;HG@R zO>F>_YH6>J7H1%&4ZBB#T~IDNlpqN?qpW+iG1E@39;HtAS$`bB*_kn&n2XZ zTEl{4X}seZA?KkHaxq)(0R?H!b<(J1Da&qF$UAd)r9y$t2Qm`Sf;g7s1tm2- zj0qVBRIn9Y6RFr}f#TE^K*2tvE&z(WS~K!DNBqs*&aU#`&h>Aepdpx8N(8#|h6yDH z&p<$H(vYy`V)Olsxm#k-8SJ%s^w?`lmr4RjJ;U=(M&qx$&Bdzq%LU#y*|Cip^cy>k zN!0lUaq4Wdzd~=ETjm=lnSn`_?MKk`2rY^NNRt&|DE4)uHS99obaPJeox-m$Q(On` zJ43d(Lk4rFko|}?_oLD2Wnq9D#wb%W{u6fiGm9UgmMV8$DGWOdsw~B2)O~^CHvt(1 z8FPuOl(d`Hp?Tt4uw{|T@rz0xDV%k8?KgKy-4k#sh2(&L&7S8;hH8Sj*E`pDpespr zpJ&^dP3pq8UBf`j972A)1GDtXZX3{>zEn`K{l*oeT3yTSE{PTP234^4f_0HaVC&uW zMY6xIjF?(F>|nl;ssnw6cq`%Z@BLXg1jVyLgjb@3MXU$Oz!Nmk@2(n>AY=E3@BLW3 zzi00jI(8z+otUZ!y)S&IZf?FvEVIji5-w&)VSjf3-q`j%6`JZ#SS5<+dgZ)rtXxiX z4>R`vC1vAASx^shk_7>&9eLQBm=V@+G@5d13>P`(EeR5(fzEJN?bnu&c=-g$yIjL; zXMLJBo)fjkDLyX~E!~*43Eg1LdPz6a{VaaVX3JV8ntqaXV2G9ZEK7G3U=*l&9DYRq zX>0Uq)4eUM*fZ#ZetQ~Fr4M(KGn8AIaN`FJ9qu0_A4Dj}p0=*Lfvy$1(puLP9j6Hv zVJym@XVgOo&7!%FS-3wLPERt|&g!|hLOTO)7hcK$5ii(3`9j{-kTVZ5$>@+X=;Tf) zj17&&>HbqirwS9-LeayT4advkZggjr zyp3DRLAF%9^mQ+*B`^-0YAPbUD-*)vG)66G#();DM1ZeFTdj<_Z zMh{1#aVKRb3)#&;nRi0Q_Fdu^a#)|kfG8oQ%jPW+BbYLhIT`U_3&`Q+mJFPGwyj9h zePQRsX7Skn2+V}+g?LlUy?q-Nidu2L}s)E?n&6BV#w&e-34^ z6M()iBehXiE?$;&y_@r*FAKI8XqJEmJ{m)(jCqNQYPy%iqBULoB;1GOV*g~^i+Vk9 zp#s*`(Qt3THeP0~XUDeDJ7X{)ssyTyV@00Sv($5DX6ihx@~X`#^ez{-mS$5x(~#I5 zA*Xf;rAz!Zi5}ZaaB#(i9q6{&@>=#qro8A6z|y{$mKU1VF(@(2y2}=ckfk2yi5c_G zsYLd5gvda1lCl)|evX6$?3~0zzkcL=!Hk<>NPH5)$0j6N1n4JGWRrAB*LV?V_gHiZ zug-Zo$HMZhcXoxdsU+|7-DRx*{bcdT|9VTLI9z@WF<0NazW=Wf^TbO!Qfz;`CePW5 zm6>8GNJQtIRT!(rx!-`m#~&x;I3C~G_rK>YC}8D&v{aauJIl-eRu``cme^v?uJ|Sy zRn)RJzXgXhlZk(Hcb+p0wzh07nmmE4e})GV(nMbdybm#-0b^A&ePz7gLAXR?lP}r* z0acGwXAHQZI^$u+b_0^#Qkck`U|OSiLJmXaNWtXy60%}ON71#=R;XAkiykk!m5~yH zKKC}|HzyQa>}+KJ&55C;uV!Q3nghbmhJL~W`eNkRjS?NzoVgJxDW}X>xY2EXwPz<3 zXkX!?DGq(i!*C`1x+R+%o{e*~mS0p{nb|kSp&i{wU;j#S?oi4@n&7Uyj#J4R+sJl4 zo5cY4%UV(Po)i-?=r#xB#}?)*E;akxiuNQ?&Ea>FZzVyB#f2YS^GVXxXq;_ahLK^Ga{{|Kxt4;IJZM7Dj!=l$2&1HK>PW_{`)&Dg1@jqwk5!GFiFopL^wu?6o<5a02?!Xb0R^jo>WIC?; zXayy6^LU(O>3NX}_}PcN`gg~(4?bqu#tNKH<|hQyW5Bv7800P&NIGV2C|e{lWz~v9 zQw-ksUNou{Jttjzsbp*9DIPIP=B%K@_>#iC5sr_BWSs@({sg;uk?r(&*7-eP^ih3n zwBePn<3VoLn>AS=r|G$ixt(R>;Tsak7sS{}%e4x6I1h`OK`7(} z;4ac;M_;7cy^zhg*CHwTUfCV|RWQS7ZT^uTWG0zJuk5I`|Gu0n$dVX~m%yYzG8n-8 z>j7r-+k|P>x;^?H5nU{H?~tbQSGKgsMGD2D(#*wS>XLwXeu`?#Sn!I<6lzWl2H=TA zv3{}JoWg*Il!OAMldS)%z9WH#-@5?GmzDd`SBkUvX&FgPP>raw9>HonkK$_H6{a~w zDoLm~qu1l{V|8mz@tX2pfxJ_nc}PEsRLOH!)tw)*c*qheKbMY_#r>3$L+Vc385yR~ z_SLYtCoDxnK)+-16JM%|uQaP|&!|Pn#opV-KcDOUSmW=O6T?64mj${jmQE9Dq@$Nu zUjjJ$zW@1iFK;PFCutcwZ(f<4=&mtH?5k9ld5q<)WxdIHIny++bq+G>P=79W$z{)` zbE}*3B1;AFNgc{y+_`7tf@UvNuXTRGO73>U5Lp|Y+~u?VQQL5PHw?zNuv-lz-)t`o zXtdVW6q~!+J{(^tgIQCQe&hWMh`hmCr{&x?#o+7Ywv~wmz}^ibPA^q&7GA}?h+7vI zjrmd(Z#~66hxRbq950WkFv_zpZJw z9ojsM)3jLsf3oN@PXdEv0qQ&^fB@CwMLGK=K=v2){9|4LePBgGv>+e&?acl0L#D71 z24`#6#PWaVfe;|{d)`Lz<;7A#q0n8*6##d9IHA?x(fGau zu=Q)M4b+$CBrV7nr~Wg9B|YL5{QC2AX+6Q_25lvs^_NQgtfmh7I2u{`{&tivlrP7D#i>pQj~ zhlM}H@7B2$q9lbz@)^QA4u!KT%#XhZkFCkOBwC*oW;5Z$wE}3C0eI7t`tgoQA6{Rp zg-|zu<6Blih+*#bvAp-na%-8E-}sq!qPNmm3M4c_g22wDv-tTCBSvt6rhHbS=(!;nfA_m}{+rKioxuFXeB zHw^6Z2`b@nBpAqRz0X%z*WJxc&Xs>*5V|zMwd*+tLp%&q;7*sFWK^bCrr<6c4>1hp*Ci4k$ z&mrRZD%T7}iDX7B_FCDesCN&NhF{d@T~o{;!wiW&iI^L~*5hZ$M7^r>1oVstiyJ&; zg=hp45T{#+jLj`c46nA>osLyzC{sXAG4a6uIWbK6Q|jMfqZqPD{H@@Lbs(9z@87G+ zgX__g*P`f{C9u6>8vZcjiEgUDo4aV{bEe`$Y&nfCt9PxoukCmlYW`6a8=Q+ofsl<& zLVfR_!{=V{GDJiydfSWls*VT7&Lr)}Fr?v52R34^qFpj~1IINs2Tq#yQ* zA50Q_fp^&i%VWHx?WT!0fTQL+6ueiB;9ro?>>g)qr}CvNi`Vsh?kyDvX;?2)RC&SN zf#ab~nEw0YlI&uncl=yQw`+X<&Qcga7dzyr&^Opx(=`yKzpw7L94`h3Y@x3wP??cZ zU=OUOZ4?X$49^x)h7M!I_YLO36+9MA(l~EapG9s?9`?k7PFnb>kwenpwB4=)g`_s( z`7LW^oyvc{`hHI6U|g4YiXQ$&PGuC8hW1GdqI--qm>{&Ii^Pn&@GGV4@LiQRECG2*coW#fe z+FjiaAiltjaKd@KEpWj1g7k!dp0@Per;1ozVCua?*1Rge$}YXs##T?gLlRck9M=hc z8TQFvCv7^awoM!(P&3>O-0nsJvdi1AT~JjsQBwDUHK=?RwX}s{uc@7L97oJ2RSsJk zOnwPxRhC)8^IZ#W?~C&2lp#B~X}jJ_wvs6R53I8*>8(5*EL{~Jd1FSez<9;hxgk(B zrS^>E9j6=Ivr;aMEE%x33SKFOtx%hgDQD;-r-pxDMO}53mL1<7vIGOVqjlv*E*MQe ziM&>QH$*AW&9y-zl3w{Y`mGViyf;sD+GC@kKAPLk(gXf8^d#?*O<7o34{bT`OR^U% z0LSh~f_jkJmQzi34B9KD%D`YxfGM8jZqzp;bCwrycyw22o(2bT8~8nJc~K4CHAe$4 z`K@sQT*L`O^fWH>9qY+ce~cGw3I}=HKPCYg+PLv>CR8XIwf2 zL9V4%a9)fg%yOj1nYgN4855OnuCTXSas&P%HRgz8RoZ3D(3UCRBc22(2qe<0jfNB(Tel)YB@%49W@d6}Xq%&0*_|4+4S4iV^S0{R|Fo(@ z|JxfD3;2DOvitq~!uDw8NPW;K;df!J!c=kazy)9J;holbceg7VembaaNbBh?RC(mw zm6-QghrX)$&-FU_h*6|OZ9{j<)^7=c>eGj#8V#o}kEsUks$4oDIl;T!$<#qqDITp4 za9YhAlJ}ggmXkj1e9D>XK$`XMuU-%H>~CpI@|t-~Q{H~FpZGJfYSTf$!u+zNGYoIr zcsduh;o|~Uo%TfvHaD9@qM`X;sop3q((&un1m%NHjjuzKZ|)XJ&|%C2HqxEK3(xM6 zytN*2atqDiuYSWq>Y{>VCXE>E!~Zp29HMUWm)h|h_nR#7g){h5m)2c~?{2l@A+EtK z$Qm7ja0N9xoabb7UNs+dpc#;xwYVWoFg5{Zp<|Ow_s20K8Gzph)rskSo!u%)!Qwr~! z+Vq~jJD}TsxO$JNbchQBpbA#59xXe?LG0!!xpuA$id9h>2mL4akl?og=esa!ah7_! zOLsJ&QHu|WckiWvLB%Jvi3D-3N`*irK=B%!J~6XypgA4`(+tcx4xn&&jAAKI={S6H zt9mPy%TQ;lr}Ta%CY07Lp~_bV8kuvz8ildM-4*7(FgRYDMb>}NpXJsv;+|53pD`<(aV7B-=4!O0 z`tnNx-R#t-H4v++B4#U;4^+0}890hI&@r*F6T4}XzXj26F@0*)DGVqH+D)}d)W=vI z42X0giw(U+X=HthOU~t*4TR7c0f?Zttp-VJZ?H-#V1K;80#0##CDcFbYB3fD z+fu<%I$lU%h9QM}6{T!oCrUxTGNp}ymL-S;QiS_Fobq3=tu9<>`el~Plfn1bGz(;`odkh> zCMQO6h)w^p@-tdrj;K$!MW{uWge+D0O{;vKgL_RM;t-1`@vfB_=|;3UEvzS>v*wm} z+QH@;BE*yk^G})^3QoS}$Vf~2H~YkFSGBvAwh=QrUnDie17>jJ5&b|cK}as`wK4q^ zs1ep-)%_G3Ih#+BVItd!mG0EgEhG~yqJift|7b_8aXWQ~Rh!^FFK=S4|5ZO}B=dP- ziZeNl5f^+|{lc`SwLqnFxZdvvb?OlaDVQ-e!${pK*8TtIgT0Dlndb208G2kz5iO+J zw*+wQwqmw2(N=oTJjs*Z#G5vbuZo#MwcToMc>S8I63l_4>-v6kCA*eEj*Ldnm*RZ@ znCyB%TW&wXf$^kj-bTSGI>+Z*nnSv7I=oP%0u|X7Z5g;Y(kOjGkn)u3$1#ei#luC+ zsDkF!ut`AZjs*7Us}Jd;T2+#G%5&_!SeRi;Q%35emg)?B$_fYyR;+i&6Cj1V6O2ha63~rQSlM*Xg$R==H10b|WGq@z*=zNQ2(U zA@>xP$>M3i#>ru_Fzb?UGuP>uO`EI4YS~;!b5(nfoV=Q(A;NERn|($gOoEXTB;sXZ zJWc;VZ=fJfJWvH-JHWJvfv+Lr=NumvT_54fJl>rt9cmj%JZrUJn?7>@ETMnjMZ4%OX3hii-j~*n&w~aIKhbuJqJ8evjTPiB)(s5K5n_;K79! zaGEzfY4ps9n@UL}Gzwq#^1l)5laj3p|JWZUbfoer$rw@bpGIO|48Zrf^O zav=55lFRvnGp;6WnzR@rJ)Q{rpuuf~K%lRx1Drf>pzv%D?Pz$n(@N%Id(D#rR5gW# zy~jZ&{{7%ago9*=u@5`x=Xs9Gt-G?$gf4Td&50o5T-ab=PVr2^)-+wRNJY%& zSd7` zNm|8?RxR~1cu867bUm4f+UaGZHEjY`bLuorT=ds`c``;Jf8^Tq7iU(jL!`p1>@w>f zA4p9A{dGUTn!LX|e08Xh>L`=x4;kf5M*~t$5%!y%lw!0LypHa%s?!Hj*1=??h20pH zyByBJ;j7?BNF#daGO#w}regHLx#DyR$M__VQUfz|q&!P;@20FqZz{Ug#Ago}U7eVt zb-R}NL(O@V9_uxKzpwjF-XrrFT3t82MP4uKaSwn0EC+lU9LLrTQ`_CWD*$yW3#fn> zuG-j8nNrYCO|9=7P|1O3*J6;e6f*e^I?m6J%pj-6aa#)vQa8YYuzhBESEpcpz5I_; zc=hl!=+lq^nL-@Eo}L{r^l!UW6|xKL747PZl!{vbeZ-9yK+m18$r@LJbMM`0{BPUL@MqA*lE{EO{Zi1XT&SqX?=tz1?l5Wrvo%q zUKvt_gk;h?7RL?2bBJf+)gxkKv~R()Rd$SfmMc8=git?IK2y~tSlluKeARNj>;^1M z{mrlr_~GnDOnqgv)A1Tl-C95EWiuwlm?Q4nD4;iIXmHzJJ1CSK-IEWar|K^Jey8G2 znqJ`hcu%?31ZYO13aKX?*eLG&I4_D8BMoCvYOkEW|g6WXCO&y+#j%m>Vp&J3(L~%Gm6t!DOwcCAVp{N z{n+UpbcyWhx*29W0=fYz*g={GsCla~h(MWkt>)kh`(Ujt3S z-3$gzrS*&?=lREF_f071cRI-6G2wqVVCTE)p%AaVt?#1fzA2>0TJ6o^JFbnyU-|kQ zdG-+ix$Ev+8#!iX3r2E6=t|j-ueI*~V!F7RU|D|CeVD1c!2?9WBq^ludtA>#q>!$? z33H_@3|NZX_BSH_AwIWG1o#0cICz3}f6?u4F*N_|s_jb|Gy-;}z4z_MJ>sw=xHThn z4)HbK@(59esH-4x>EMywTPvTg10r$h?!Gw$0T=)FV~mUi^*?g8NJ#ROi7Xxpvy2=z zfPcFma@&&0P{)81PHwWMySUepdMu%)IGhnqhC`6-^cg(b!14l18Z)C z0C|MozJD;i21o)?FH`a_zPoPxtn9UVZsHY<0cU@K-En_c9!++n5m4_N!3&aPmqWm0 z9?$GUb!gad?ls5G$v8Z8)(&hA_8X76Cps_I(Or(ASk>6ln_6~}@W2j0sGL)wfvM#4 zt}_tKi-sef7i6Je>Qlq(AjU#!N4hbp17cYZpAs;O$!I7)fQ+np>IFlXH~m;YkMHeU zyhwODCuwb+6$upAoWjPW0vvJB2VlZdJFl_$jBJSEGFnc!ev93(AM5Hn1n|fi-S|&S z66oC=7g$0vCr?E(S$LOs3ZMV{i>PEz4v&94kUv@5z%b9RuXV9rO}_@oO{3byo^PDF z`YEY9s!UjhKqU#oL=w%g2A{TvbuTHf=HS8qu)xzbg)7&bxo)L5sFQB>X3v#sIclNh z26)=BeB5BoEkhf(0wM*G@H9)pQno`VA9#-Rs@_U8-8}_i%2|F-l6~rqA*J+*a?j0n zxBIPTT<@?knW|O_J6@qRehg@U4m30iAdb5n3dX24IjtIO=^Q_wB|cs7IYuFze@)s~ zlSM$k`56!8hDUaOmQ|AbSuT~d6#xH_7LvlyuR4q0x_tzt7W`&7N_ntuQXY|n5y@j^ z0&aNxVG6 z=Sjr}dyvozopTQR=P%aW@6w8Nw7XLCou32sh5na__ZB74;KC{0__E$@!<&&LivEMw z*FX4!4Geky(lvEdbidCpuu>44)3X@QbB;K1V<{g>iMM3{Zg<{yF0j5O&{+AjHZHK0eb6MxC~-)QI!ASAZ4h;R4dkg=z!V_Saiq(8`r;^L>? z#a|&U*g)oVr)g1-AdSxIXNyt0-uUFM_`(jDY$fI~;1xZVvU?5pknCcRK#iw6gA`8f zwYXA{g4$Pc?1pI?bHcne$C2T@f!AJ2G>BAq0w_H^G4QgK>yM2UoIOCuvtHgR=WN3> zL=cX0F6X6=?Zxd>whJyxNTMmifLeKQigQ{ToRJ;KxMeK;MbHjWPP3q;BUvxuP@cpo zmAjOpfQRu7Kbb6cd~!0N`xHugw;gR0W?J=htbB|C_VNCh)<#=jG#Q66+{M+qh3B@b zE3%lSUhfF3V$IE#M_`N4L8;ZS4Ja z^}JN1;;~NoFVujIJGrO!_+C8uAAZk1a&CsmUYb-%Vr-)2d~e(8DE=AF2owi{2I238 zEBLO#4;NF;%SlMQxY9NKqBP%*{nXD~bL#J-+-7YgP{JoyetFv6svXKe^jE2t}FoX)L*vJIPrhixC7;eRF{^uqZ zzV03!@*~&Z9V~2?F_{uv$sLvmmi>+fjy_b#C#u*Kv;R}qo-UT(Hgsvv8a8h!er=O+ z4ybit%6h*yiB zST$9!kHBddK^2V@T`RN0t;dRa^dH_W*OcFTOor`rf@caP@}!H*8>?FW1v;#} zlQsHa#l^|Pd9hNtvLCjabS%1eHNP^jaSv(Pj!1xCNR+0Tp?J-*QSG_%SDlmq!Qvh* zjzWx7A>W+EP=YfTtvyzG+^1UARp++kU%1bZ zS_|hGhva*4S9aP@Twtl3o{!w>?%6y&zaELQ?e*O~JxQDoKWf!*We<1*M-U;}CnQ_i zL}vPW=X?8}RtUuophuoiyM*($Mj^J&cO^Ab#WrzcUS_A4(RX=HEGVWwww79_{LS(&s(a45i#uuu>#qu#QqDKHq+ z@BXK{oU^-MZ!@{_dn=UcFeV+ROO?4^yYu8Fc1~WQl^@(fZp=M=fJ8}L ze}vQ+Rs)xc=h~+?OksHqEMdm~Q@PRGKqd}^vH(g5iW!vF9Fevp56Z|$FvaA?;>Csq zqH=l@^NP5iEFkk5I-o#eEI~dGEog7Fof37JaiDVkC3+-*jokbINyETv3|%4e7>gY% z$;ihR^Vl69TVro*B}GZim9ZI|(u-c0$jg9x5&&g(h5V>$aOSzQWPTGMnI_a+MA}@G zELJPOr3|FYCsEHreksKP)fctJq?XzMCv?4x7{ocla*C0p$BHI0SbBSVr$CX(EA|;I z?#$R!5hV5FX1*)VV)%BhP$0H8p2@t>hPzZSev8!cT|c0Mlm3XsNrz%FP_YEWlVHoA zk@Qf%zxMJ1jaxbkDy$Ud;KUB6oP!C(F}6;=kn6P(-j&fHDZ|yc0hE4TO`D#-)uqf)}mC$V}=#m+xmGNbz7Md z?|c9Su<@L{Zh{|10M6tvCsFme*aVn~Uqn1>S`!`dpxQqnyb+?|pfw2~0Rz-eqVjb) z1DIj35@Vc~RTJ~Di>4!SoRjbb$oqgYJ}*eDmaKzy!w(ay#Gyr8uQ%alpa2caC*W71 z797-Hf*DP;Wrp88te=-hNM;>^EVhgVBz->_&`k;#RB)3;C{DN|!i(nO5tyw)iN->i zfunhDOFEu^3YMiPZEw}b{*%Su(9lS_OYY~se4V9SL5EgiG+J$JTF#_dPC%QG=79>9yWCWQPi zR~MY4f*vp@-zlXn0kRJ`?lJB7vh2W?TM5@?cq77$*FCx8H)~Ep3}nRw0>udBm~u;O zF{!*cOtLlh*2xS_XNAQ(CFm&)>X-hGqGF)AC+ymTnadq4sq}TTXHM6Z+?vz!Y zxQXtV z7zpvOK-dn@Z3p`Bcv1jMEL=fv^I=+UCnxu^APz3+@?L$ko6~wqhKw=+LQTSR6PVxc zIiYry=!*Hp)S*MTix<^t7?yCOY*iSiKeuZ1b8^cyPM|1Ig(^SzBDw2XlI5|T>DOec zre4yLffGM)#!<>a%*KJ=yJ5Sk*UA&7`(M!WcLcJ`7l(U06bph2a*um(W-lnh*3!!Z z6MwoivnLZLI2w2ia{3Yq?~kmyAjm8}ToeWRD@pxxmFKLu%+II+i=C}#GJBVSyVW>& zTyH(8;oGfy7(BPBsqKa5i2LreS-%@ge&U@Ml!edZ5I#xtxCF0*BF+*|346usj^Oa| zJlB6Q{tfBH$Izn>`x;RRdt!iTE^6%}N+zfnU8D#IJ(oeDF651{g&gLdG?tBUI`$>P zVWNvEiNzV>6JJsnQ%hotb{TWfEhuTt4KddGjatWh&S|WK9jsHWO)XdBe_C=PI^_G& zPQvccjb-cH0u((2C25ZmoRO=9fq`5I<}u+Gqq+Fy6goxbr3+L;;gp4n?p02dn8C7V zF?E)A^N(Sw|8dE0M%9%-!BaK1ZIj7+Th&2d`Z!Ml^d ziyZuRNoMhT+W!vx2T_=Jjser?VA}TthuYE4Qn*2)>j%WU2M3|oNv`m_{Lhs~eQ zX5M-pTYk$(Rfc?(<8(Qdd=1J;5w;CS=f0Eaj!H(qX-B7X7DsT|$L%K4#e+l8N*6FS za;ZKk;x$FtQe_#{+6EKFhh#9hhs9KbqMpOZBkYjMu{g<-zDmv?uZ@UXo2nm$Sc#9sLJ7>ftv%nZQH<4Y8a? zk-Ukx5?X{^7fC~#G2D;LtL~A8%Cf_9YffEJu4cP};S}Qt0?UZ&ZOOTz3uQnVRoyEQ zvy^Ym$Bw5o+Xo4!ccZF1e5(JESu4ub!%A#@zpe8^hxV<*sZehnt2o!5IPnI3;(}P- z@#?&PEG^Qqsy8sb4L9;Cs@G}`GPbyZk&P3{1wIkU0+Q&om=axZWWE%?6(GnFs*sVu zi^f`Skqp9Uec}t%Z7r;O)SmHE68d^*@--mB8z@nXpRp3HW+v>lY-r$uZW5r>-J26v zEpo3WYQEvDUCx{$XICMi2`rFxh?5@Fk=`$U&3BPmY}e4vJ@M2ZDo&e8Q!phMH8+K zO`y-5^e_wZtjW)m2_p<|(sRN?~tG zX%~@Of$@tMIY2k6NfOH4nIzZs+3jaGY(C$p17gExHbos z-ioSmOkkPC^9o(Va<9yx56Hs>zqt9 zXiEu0Ub4(fzoo%#C5U)cW7bkIkH5&R+!W3bm0UQKQuEQ&5!KHuC-RF$TKeuBM5Dx?N^g`RQyAm|p(&mPWx7OcMMFc!rjnPZ-YZui0!c`|w z@-#$6-U_BF_()YC2OpeFjr_M>3Ut~jB7-hSMZ;GYUbek7Z7j^#}y)bz~NO>%&eMuwXv=yL18A4Z`8Cyec zy+r+wI4*H>pq=zRK_^o^0m;N~Q#_OY17wb}G+iA&L z9(bO&(`w2SmBdY!E=EbjxlP^x;)Hu~N<4>RkQTOSZ4DFw5FP_v)R2 z+4b<)PT=F6cbl&Rb^{Pi{(F;jUV_z3-xeAMiag56JPuLuZZ^3hxl|UF;zgoJ+1t_?TCmuQ3sseLYn?%zqx;} z|Ldao)#%ejQ`@RZ&StQue6g*g^P)cl4Xk2-RT0(uC#7#-qf@df`c=(`qMf;)6JMnzXaV!4`cRL0~&nd4!f)79v|%Z%p66Bhqt2n<1*QjcX0_y1bpIhhUeP;wCz{F`BE*8ku!LUWhqM-_X8EfGR z9b`*U)^r#l@?oO?GMq&=MKpoTA;3H1g!xOgqJ|D zaGx&d@Xw8hfg02D0l@ug<%HKo!DKjw#FI>qGF_S$c(fdTT>ybVIu4;$H@l^T?>wFG>sj6XshW)%p`HT{ubS%x=KVp?HlYv)0Slaf{!nMFu&F~a^&*< zV(Fx(I9JCl%yn%Oe&n69@KRV0FY=Fq~-rD9^G%xK|) z*8k|`0=)^*#(QlI^@i^3%s%tEC&0QLKb?MGWzy=lErZL}O$h4K2Tk zxL^5p8}SHGI)Nc^UP}xWF;m^H6$xkFlGEYauB7i1>pYY}5*3D?>V8}lzo!itYly%r zd+ef1B~LNi_wYPlR{%DX@7fz|-YS|D@5MV$ zh&1I-m7AixSKb4# zdN;cP%jf~O<%|%T1!mie9FQ<1vq8;a9Db-UH^7k?o8H4=DU&|u$pPb*d-?U!FsMw5 z9lYjqG;7=dRUekdlsE;2iNi$VGINgh?iSeczK8^PxqTn9W1zB?V}QW+Q$8G?=DZa+R4?r8 zfCJ<#djqAMQJTm^!90V81jasqvE7$bS(6mLA0CEXR!eKy08&iSf)nx0zI^0zFl)Z?}#xJX7{|C_;1}QhV2}kQ%VU`mIZnvmK#3 z;WAw-+#UY=%7OJaD4>5Q3ERfj^;sUq)0`M@!;#O0X(`OWUT1Gw) zVZsS`rhDDr6-Y-S_@37+)KC4A>?(Wz3 z56!w?dJgv?^%4HaALeNCyuWMF5id>0aTdhjN<;Nj5Bt*gf@F2XZNzO@A)K|-XT~qg z`(@74`&q`~qZp&Pzdp)0S9}VphxLd2zh}LmElEb1k{3R}47^NFB+8oWhty^@nHWcB zt)X<+z(}`1Ed)I>RKdDB2+Gp8u_f#$@yz;J0)5d);5Hoa5v9#c8z2*2D|C%U!szCx zqv;65YUpLr;@4)PK{007Z{H+0SHR(xA89o7hjuH`d-5d#erfGy`P;9fH3nbN#FC$+ zA1{}aPCO6#oD5gaTH47!IhThvd#do`1L;NV{)-8_s?+s8A4*u?0r>1+(cfU3JI<(S z#ZStMWo>SWCaM_vn5#~;5&OQhC!8!nY{jHSd(oP#ZER>*)O%@ z?H(3WM~LT#bE_x7a-6n_oS$y8Mgh<>%XAmF+?gAh2QG|Y{VoPywv&;@AD>SLuFOpX zBr+ahv-MR0@v_lv$H`!qmLIz+n!r8A<24BhT31B3lB*Y(IT92a23XooJB$~FVU^^iDFm~=fOUn^;pkLDQ+t3ZUs&N5twh_w z!75et+_#;Yu=`tnaQ&U8n%TUQX`H{PT!Y>h$0v_>#($>EAxxHS90;u!ALQEY0fi?b zEoRri_a%FPoX|^I={m<`>M|`f*6QTXpJ3zsfG1bmMwB{!Y95jNPQH3at<-Z*CzvV<>w`sE;Qwoh5{cfeZ1v6Eq=y8HR-?IB}*&<&->Lm5_B1 zDY0L8=a)+ISH5=W*)^rtIA}C;Jo1uhX1!(rR||87*3D}!rJWoMDVVcOa|{jELST*rRG15}e^Y>P|v0YjBCj~f1^&%5hJ&D(RWEi{^`tube>J zDck!7Eb=SA(wDt(AlQ!PxlzkUo-!(V5&|kmU zY@&qFjSEn=ZlzwguIS+%1LWfS$!tvXu8-6??;AVgCbkjE(@FuCi~l-JtJ>oGJ^i)R zJ!czLHDD+Y_l}i&UU9lzG<~}0#dFO!guWl$k1iE*^gLgZIJ0tx=_@d+3NU!`immeX zhM=>{JIY=6MAHo+DGNB8!R~hzaV7C3)aHzm8SxjX&4+k6A}%iW8NP*G2&3dG41QO# zIgYqw9}?)|4)?I;Q972X3Y{9xowygBb_THlwkW3~bQyR1;l+=Fdt_>u8u}A!pwM^7RX8%9S#6{{4TA|NYkqdH>*t6`RAX4Y zfod{P)&%0>h-KLnxG_@&oi-~<+J8o++>Y3TgVD)$ic>^QKj&bdM>WCU0@^i|JbtbM zdlKUKwh=COazjU6J6gKz?Ho;0Z_6rc13Xvty8mF+6E4RV?t`~<;N6lwb&Ctgsam!Xqyt&AL`6CX8CXyLeWiW6DVV z0MD!5MBG$=Ii7)9vnZaAMJ|G8?PKSPl{=9J3!ObyOs02wboYb(bSaIQK|*maD3Tlj zzfJ537r7pPwL9B1p;Ke|=>CrPYvYtxOD@`QudPp1m&z$!YO>u**rA{)-7$mR4TcL| z^=H;Qcg>1MAtge*XA{fMoksK;RmNx41~(7lNG|q`-lC-BExLX4vBO@9)JDabWsTX9 zqt^Wvr3d!R+3#8yh3UbpI-Y@wErI~$Vt@<@l7LgTiF`Ea(1u5X+yb@xNO719n4l=I zH2|T=eltSxL@FHtp3~g}ZosA~kINdB6&KuZ*l91k+*PXli7erA*Jx6?KQsOrR*3;v zHAP;}Iq<^v1iStqS;|(&_-j|wkk?y>xpk?J@yv6n_X5jw1LN#{hiSW}qWqmAIBP~) zjx^4>E#W2y)lLIS)En=MkJs3ywXkEg%@&62%+AiI&rct=d+u7Y181fGqon&t%}-k< zNna=t$6AJ2PQsX~1aMRVMkfvqy434jQNBAMfCZ{Snh9lctVVf@Y&r0rj3E2PGw*|M z=Eg6mr0@&?DmX2tFk3dkCq{YxXR3#5@5w)Y=#6A@iv^|s;TkgqjqvVU@!{IlVbYy_ zdJwadd*Ew+v0lqPwW(hHBu9;-cISv=nGctp^f|Y+xT#u|+W|*1-N9v*oRO?j^BBKv z`71`eA0H@BASsuf41FN#^*(wBfyi0_VFB-}%(a*6 zdttq&y0AvGbYk(eXJ-p+EHiP%&sfE5Lo8ksz$wmrBv>L3Nl!uE23Bml)2m1YXE_C@ zwGN0@RJ_^%5r-0HNr=B+ki8M{AAyffy~;f*uS6B$H5FY4Z0kj?De){t@R8w#g=X8swAKKoqLkFA8(RQJ3A4R`R!q}ba^0OJwkWgH;&2+b4 z?A4z*>f_Z^caEOB|1TJO^x8szHdE%3CEHyItF+(vO5I7rrGw_${kk0!DPyS$!|AXJ z4e$(1!Qz0VCz%iT0O+b=h(<8LFVYK5nt4r_8Idn;A%HwN0sfHhA_OoHbW68$F5m8i zC70^h$0AMC3jE?|dUIZ5)=|CPvXU^z-Ah^l-bC_zNotpe$;@{UZ|H&;96F!nU9px= zD;NH5Y9x5GI$q|KOlZd`1$gzjR@VXvI!fRMi0q>a#0+k}EC9Fri-EA>U(kEl(|<%j zj#MZf?{&G6@!<^9^0z$LEMGoObUp{4J|JXp*Ew-2arTPFECpoiMRX1TKLW03*l&J8 z>Mr_%al_8mH_liH3Kb&)^f7^BCcxMrruVbD?#dRI$pf|k9tP_{n=Eg+s^X4a|9kl3 zZ@+U*itG&oww-6kXSidNCj2uVxt*z8>nOm29{R>oe`&TqY!`AH6wyf$2_w&LfRd3S z<<_YS{Yl6jr&k=iJI!VdO@rq2L%jNvEjQwsJIq9TcU7pqRc`VSLc1Ge?unZu_9m5E ziD6JiwI8d>YAjE`9Jgnp0AFj;!O((u3Acky)w411+4w7nw#r%R5%P|!`fIf1*Y~Un zBx&0T;IM|px3g3}u(S+g@d?Gx^;R9p^IgjOFPP6Z3BlU_r@YUG5$DT5OF>EYwSwo{ z(@e6{t9NE|zjvXRa;_c#JCTMnTMT#C?sdM?^#;$*VSSDipy~Kc1zQwXccJ62UE*8k znm^Zr$y)wU{r(l=>Nw0P?v&#DgS2k_are#2-dS(w=)TQQ*7?s>R%{;C3|;g_TRJEz zvs_CZD(5(dJl_&`F*4(Sk?E8qI5YanzM7B6(|tX(119kU)DNr){k2U1ZAA2%C`!wc zR&vpeuW5emX4E;B;YIQICzPTJ8e6QUi0;c_N?ui5_S9PaNfu;9RKfLB1y0nJ$`;K7 zGDZ|vBBpolD^vN__tWunah)1k4*eF-qe(*_qQ?;3&&j@B;WbK4yIC6=#hn4&R}5ix zh#}VtOOWw0judEkKh;`)c1-e4d{qU$`{T1Kl$S|fqRw7s)i?h;ljs3hDOGywT+tjL zTK;^Xx#BJ?>JS@$tB*K)ve7=*08S?;Tw1@XxB#zLjyZ&j^xA1(ds|s5iFLB(P*)gn zcBDE#(xTC4I<6(g3wM%EV4jig@wOx#jvG}WFj|`RYu+0u#US*jd&YWA>)Y(QznUn& ze4*6M>V~l?Th2?an|<^>Nr>LKK~-2m=>H7qd^^jRI(^?S?I#O>!Vk(mKRF-0IG+Rg zeN}{KA%6ILD1O^9*WuLQSPmO>gm3E1heZY43G>d)in19}^02hJ>oASo3+Qysl^kOe zi0KP&Bzb6#Cs=23GE;<3;V~vV9c4O7KaFDBq9+AH5zH8nAJ?fK+$Zh^9@2mI|kg zwe9K6_T$WxxkpVpR^`EZKg&JErSU?1H^eMu)CxMqN2;(k?47(!Ykp?XUbm`lm&fYI z1R}#fgbGS4|en$%g zbniNu4J#~9-7@trp{*i&m2z*3;eNxuC*KK09G_QMl9W)+xm0R>{G^wj{}I??u=l`4 z5L{T8J9ew|f|xRN$lKajl&8JqqVXZqzUH+VHvdR6aHDLRe8T+9vWGUxAz$fpf9!#K zXL1s(-zj=gd@K6!FsK~A@N@cOft-egG!Bbz3RJ@D_B zrH~I>NDv?~o#Z!>2srC3okm5&z?i2bU7mu_=AURlP>9Wyh!RS2@pm3QF|+X_dLN0; zV;b=g;g3(q~RYMR}c5N%-1;pn&8HFLUqyZ0ZIh%yyUc5i8m8=9EAdSPEtS-XL&2CG4Xt+U@Cg64Ivc6BOGfPFza?5!m$2V!RO;)0N^Hru%W*F{g~f3UM~bPP1j(%Y&xg5AhO=yr~+P~ zf=hKvl$c7@m)5CQrqi0Lt?GFivyYmWJ3dP)$?8v(n)JI`U#nV1aJ=g7mcpuDe74>0 z(dUcLM-*uU65tS@P!S1)NV>K|sA*|9h`R40z@_?FM=RL)&)KknHDlrK>xyQ!3pt+& zSXgbz$ySSGIjKekwd%zvo3qNWYlsf~-g37Z51Evz)Enk7(C?EWP|bK@_QIvFa~2LB z{p1Idssq0D`AKb`+I#5O^@Psm`%~<``Pw~lxAX$IC!gtJCpY`&C$hvZ++kv`z}o7# zd!I4SF26(+p&Hi0z6kdtgjnbl?r_uDZ|0rqDd+uuS<^K$haaom=M{he4YnMT%>8mp z7lq*m?fY2z)B=_rMu3sdseiv|h`uG=O0pR|qZ9jwY|AB#kEl{`>nr3DXe0myWzS?>}IA z!4&>aaH@li8gq1Iyf*qF+7Dvs+sEqDi2b~<-)36Hd(*m*Kv^T#D5JhxS`zW% z#z3XoS+_PGIC~c791$$^?m|_g+he9D$AOPd16V_%@w^EFa8ei~yJ9UEg5aR_Mw*qY z!?BF3$ID!kbR|M7IG#x6*|b>AOXr%diO=aovzmn&-5b{GB(!xIt&02Ww_|K&0X>RZ`?|^;F7I^fWx#5 zY?(O(STVDANKicWm>}RhY|4q9Bi&CIGU-MhzIZwFlx;C;f0p~e!I_gfsmw(kxC{5) z`IBba?HC2+$9qK|7pE*0(n?IHK)$iCOV>n?A6zpA5`u> z;8iV-rS&>R7asc?T4EIvwSK!UEpyJ>;n4-Z?yV;1@fIYfE^R87LdehFJaO@>t>FcF zspQbxLj%twk5SW8d+r>f8$O8l!TJb85bhq5c>mN8^JCGh!#$YXftWm9>=f1EL5 z<8|V;KtH4BXltI>=82Z zajpM(8!|+*)D}I*Ztd6Qq=%C+y$GOQ1~#xYmOeYNZ(vkx9L~Rz+A(U8$206F!9s8CIUWP_8doa#s%h#H8ZxnT+Fwwh7nFrU{5$Yu|`g z_47rN!d5Ah*Pg~TmGr-9c9q#K0;bI{+YF?HP!qb|zWg4w9@1je>m;ZLtSqEGz5%S5MSln}JCNw_c?E5ftu?k5 zIob4&&NP4wGT;{86#Su6qc#eye1Iv&Ck3k(+^aJCJ&jH~V7&bsvYBts9iJ>v@UFkQ z{pQL3ruA6Xw~dz0aby62{EyfeKeK;3m+b+1rxMXu+V#s_J;BZZGcWxlFucuQv^ zWn9-JB!P_jW>1PK-#a40aayB`nz4D_CyxtkZ=(MfofY;f?Yl3vB9-@YZ~l!<%{*$! zttc)Wxc!GV|6jeG%aQkLQIO%3cRdD3D($ZzI?=Mxw>b3M`MRswLE?aq-r8Ziig5->t0CbMgFudujpj*i_- z{F>|+W9}5f@r%SX<^fDpZf=BGQe*m07ZDyTjU0a0i)s>Tgvv^MJhh9eSa#cgQMT%% zo@W_n)+dGW@R3`&Vg?;*_;tXkHchGHrjrn!3A1pjBluPBRKJ~3j8&+)f}RYkt;v;R zo<+L(caY&Aa|g>92?PrD+O2YaB|?5ba*ZQ0Tn&x6Nqe{M0*qPBt{Q;^7FvN3>JiB- zmDCK~r!ya_oyL0Idr0CJQ`eI81yb+gsfYB6e8yG|b+nv1oVbn^jb-Q07&AQFp{P=6GJn!t=OFPHY~o4ga>;&_Ho^A?!}_AjE6JaD!6+(b`SiA8rp3o3=9VH zu#w}2fwz;^!ZQ$J_*rkU$EWv&KT~6y)UQ3;wPZoGi&K&7!a|9t(eMfxL=x?v6e!GU zIj(C|SP?BGL_QRkaTVtz1l_XM7xyOcmr+|0sDvwf6~CjX=LDf)5RzsYi}W+vQEx7x zpgt+D@Pt_$mHMKxVO7gsOt@7}*srt-2X5Cd ziZ*go!X2{R2B^7$Am-I==M2IF;ao zcA2z(E%qNn=NsvC;sCQrPU$NEJ18Q9%tbHnTYOb#aoMDE8|4>KSzIny5dc1qOMpS+ z1sRc-I6>Im)4ztD!cB^&TD<7epMpv;DWnZ+oY{-IJataXBlNN-C-4gD#4oAIY_YXS zq+oqZtF!APSrSB+z>X~wq}WoONku_xcwknlOd>I*@u;fiH?+&WQCAwbD?T~MNqBt+ z)?^=c&W2{kYOA`Ap8PE?h0SFAD#Aa(&PePJ_<+y-jN&ahW-UQLvt9VbM6W&^don3w zNR1Ie%+B2v_=Gz-1e`$LY6&klPRYpsA#%I?Ha=Q3+@S-g&$c~@Q^zVS`DO<56VksV za76}ImJ2ZQMq3fuVS(z45@Hi5O}zz(_D@1pc{&4)3qMgZ+$~dV-C}|jE|wMc`ka_M znEGfA)usbj6L3L3z`3A?gmAr4j36v%C7g~j$<@kRkqL`3>;J`BHj#0AoL8z<$WSb27sl{jmVVfi}^lab==BYsBD?D(Nw zp6gue9kTjb1p)+qelun+Ot|55YI;Hb@x2DTBq}>A_0i$7gs9vW6mGrh>HT9Cu}Km# ziFGo9{`SrNu$ixv;N)S#B%LnED@H=rYz12ThAYxmX}SPIwP<=QLb(Z#pOJ z4egxUjzMKhyWW#nXVHoIu2CFEfO$6AWSsD>3K|r{cBz`lFw?sZ(c5=T2tnuSAm~0P zEcDT69z@|m8FT4d5u7_?dUmL`#%FtR5}sjLqx*Ss{YA3$#T$(?4IK`1;3F<@RjD4H zAG8jTHgvwj;=n#TC8Dh3ubZppaTmfBi|>Y9-S+BRLg3(?=zn}<6&_o z27ThtFn

vcOdAbv5h62J;{vl*d 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 j9>PrN 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 =rLs>e007GE&hLicU9Et%h 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%0ANW(eq$NQrWUFc+M$?gnA~lO5r4v`|EB5GB#3)m9 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⩔}Ua^^ajd2S+Lh@0iL^s4*mrEgwu8#nrLx zP{5iX$gfTGgfkrh6i)ZrGYLQ?IDK^JiG^wgQg=V~0$0AHSIMDdr?tG@Gnv%{%uC7RCCbN=6k%4oe--PB@ zu~{lP2%u0B&=}Im!sC2A19r~Tw7@Dt_bMoCWjhHRK-@tIM!L}i0|(4nZ`?P40j`v+ zi^;zJp!=>V-;}FpTE+hhqONJgWKPZQ(C#0W0ysJ|O+A3wRVO zJe_4nHy8zW&WrRVi?}YBje0&{E&Y`3^^J5vE#r(E#AJ7O|A!G$M;e8t_5wzbuhh1x z(wEX|rTf$eStnB{&$&zY@QC9B5C(K9d$zCgZvt}bAYt^hO!eL5!$qmLjS-5eh7tAG z9Klrm&u`3h-NOCyH1D7BJvpt={X6)dL1BweHN&cKCG7Oeb_E-9*9mIJc}U`}Ed~#} zIk@P8SCFRkwLcnHrgXkB`tN}xn@hVOnEW%kYadbayIgmnD&C~Qid`hY?mcwXs*;~ zV1LlFFXc{5Cg+HXbxJ|~`9KU~|^#1)*k9AtDS;2* zt5N0%PAGWHDzP(D?qBJoYcl(nq}2rdSIatVEc$~FrowxwK%S)v9Z!@~VunjaoT342 zJg737U~2hU5EzuPP-=?A<<=jSdt>EnGkAsFf@7o!kWM@GCG_`L%^50itAt={F4FuK z5A8RpMk+;OO`0Y{`mQkOu%T=%13w(*X9RDF%xqCcaNDqFt7~e#dJj~kV&+WiJY*ba zr7jN@%T4tig6|hg>|1%|n|`qH+ZX?olNYvO$M4qpsij?niXgJH|Mf9VdtqEl*Z2|4hK@4r1Y*W8YST( zbnxI|tHeRQyA2^n4h2ss#y%#IPErtV^!Jks@9l=W&Zp?@w{tW?1e(3DGqIzdtX0%* z+8MW-cj(bJVj9|ANORZDO92QEy%q~U)o=xR45)nr3xX+qE=%^bh^5$?x%WvvlU{;3 zC#u|15)I4_TRpYWIn{5YFp?6gcJ(s2qKGM@XV! zeiHNr+^t;HvjZTyl>5f}%=P-6H4x`* znXwV8_|rO%iIzQb-D7$XZ0~a^K$MDL-HTV%@p@4r>=fyz@YiQSwd`4@L0z1!VyOJU z@+oQ`p!izs+QPoMbi?s>m%3@wL3P#g`B^STwBb$x4>-AyMyC>u-`;Lz_D#NZS z3NhVcci zB-6bh_p|Li7|+D>To59lnV9}FOEK2Bay63i!1v=NXK+~|d6yo2f#CIV&%q{hn`FS2 z49t}iKJLhWBY^yH{VS7Ds}sA}Y_hgM=rM^<$4aF~cc>ZeTer9Eyar_}JN6tje;5(Ef1&i+;6#$2IZ%ap z?vh5d4Fx&MFxN{!_q05H@|2I5oliNDKOVa@`61Df#g$gH!Z-G+rvS2KrgpvkCV{?j zzaP>>!0boYtmh_FBE5CEV)Edi9QYxtd(D03yFFiIOVJ}%t`P!aBzWrbx_{*q`sFCQ zwA(0=>2@GyBI3)KZRS1{mHXfA1=FX|fQqbLPohF_wP6!nIz@f*qlrVdru+AB{a5}3 zn$#mJs}T+c#^?NeD0h5~?)k!?UW|1L%^Blosbiz!SSa_kyvpa~{&`AE3eRtGQNdev z54ZvR&?5^FYFGa3zX>>xmlAxFK|mcggz--?->Y=#M4z6miiw)Q`d}2yi@{SmC@*7; zz2igN&3rA34pkm>K-o^5%WX==w_OrVF z^a@NRb|53ohkxj@HX zxZ>WlHrgWPxw44HqLsS%XTmwnm%ofZ(6oRs{@`3qeO8W`ndGjC? zTuU+h#F1(GsGVQ^1htxC_WCpNMNrVk%)So!EyDJ$n{$$giF&6Kvstkq|LPoRAnS~NZ%fs+ zmMnX$cQTLA$2F}Er&zxt);SVw$+I*B0U4-!?XkJHb|oO~KJ)zlL^#I|L7|W+B$Y^; zCn*cWN=FHBk6_!RfldFu^Zw^+G>_%k3ioPAK25RE9hUcQljFGyKu6mK4_IGYKd+}1 zIaldyRC?CWt(|`>oM4x|3OjA&eH{_3IxJPD&wDI%^ol^AO;iI71`Lf-SNNRWg=!2%a;d z0R{8+CG;AdQ`p)CsO_>`|2^vvbGtpjk8I_Jf82juW?D{E2eKE zPJh4mi-sMC7y2q+!)j#tREwxzUMwFnRBpX0{{j!==)pfN6Rrsndb#o+y>k>sNc6S#qRfnw9(T(g@jtGAIr~( z=Q8!F)E`MwI;iFR-jbG{2;4bB#elvC5ASC?ai+<9>xMsJyGxd8C`h6S6hDVqvZXCc zWoNi@&~X8hV<1I+(&7C9M63qQ!di1XnF7LAAd$-rng7VsZk&(!m9fb5{?xf%tmvbB!aAC0*&$2s zfye2&;)hegS-r^|N_)PgX!Yc3`g041NwV-gC~!&YUN6kfQyf zkEeBkmS|N&6qwZEikQ_{MkLPf?F)2JCTm_=pasH+-Gg%UG1fodYo$s6P6Cfb*LsGthN68yG zKFVD3Q>Mvc$MMhK>R=ux+g<^F(LO0s`t-HQ8byGkamM>S*ico&+kFFNSoz6Z-f~!u zxg!tzkcaEK?fO~Adfz*B?!u~Q-?8tw*ay?wxXSWfv*#O;6abII33T=Ef6)4wxL+$<+8*PXHr#)0qhW8^s)3Q6527 zp7x%=;xKG}H*I1VT|{@3R23A0mJ z09`A22#Ot?MgTL*4QwT^F2Y8-o?LGvSb0qols#ZPJ0g8SUSWqY1c2vv^kLRsTyYIR zhLCY4>3lu-Z`9KdXTnh0^7L6k_k=usp|JY{Sz()Yd1vp3W#zXo>&0mxIkK)rgc6%` zeHP#cqmankcUwP&5Q%5La!og2pa4jrNReI0((#W!eEqfZV{9uW@P zui=GM;Si4kAUr7lB|NDjQ{aCQNIpgCJfM~OhZGA~-u4^W(ZPX&iO{d0)(--Rq%xiR z`hPJf82#+U>pVOT1p?f?1Mg-h;Rz50P{&INBI6#Hf5XE+uKp5m;8I-7=sR1nkIugt zB$(|0gHM`7cmF)I48jhn@zgf9ekqP5TGB?pFN}ghDR2&CB>Lk@F{t{ob4(<3himq) zNGM543?l&ha2uI)>(v6_&Lydw5lPhP=E&sd;Ln}}^R8b{r=;2{SiVJ>`*p%b{p1)}OkB|=g z$aHH(Q!)Mr1fj4cda3Kt_jDli--kd(J9VrAlrj_oNn~7*98z@s#cf9G=l_gIE}B9x zf6FZ+V(R!NP>C#Bj#In2K^@j}m{!x$@mmuFl(JrGDD4@Rk`e?jjIYNL{TBH(e=!#T z2?DwcS1RnQY~Df*69?GpAx&^cGL0g2g}^Ab$sBNL*tq*h%W>CxOYP}|Gxl6rOl$kz zsn2l-K6P)zA6#?C$C+!u&b&3}hAl^z=UT49Mt)3aKdPW6*TGL|X9y_)4%5yEwRT5T zTGd_YEfMOA@omv0==1CaIW@c-(51ku`^pfP^8)aLqk8UANFK` z-_0-8_gBQgNHIT*97A846dMn$Xg+|Rw;9Hf+Nv~P5wYn7?X$T@ zykqlZl>xmBR9W59_GRixkyn!9ZHL0$*b5Pv+=M+OJTgnR?eTHSo99m+>BRueunQYd>J`%AJhlvpPP&kcp~!?%@qKmrNk<(xS~WTm9VKG`)a)qToP6~IQ}y5GY^ z>Sf`8zaX?Gw|{_NnN3nZM_*(jyp*II{ZGMU#O!Ka*I?nJL$>;Q%aoC-qx$v+73~{w z7K0~y3>qm{vP9n>5aw;};|kwxN>R5s?iLmgD9S?{(f26EUx0uz=LV#%{HX3qh|RGM zk?v7rd(w9zcb`udj{v85PXRukqj7qN_+6~?L`Gy}W;aj2pZz8t!1F7+o}y5MZ1j!3 z_q)&acmfCux$1&LiEKxd3|ZLB|J3Mi3NRroL`_NJUdDanIdI9U2wGe>lw(eHZ>>Dy zx(U}%;iWh+k(tXoZEAv}FOO5Uk}@Ar9U;L$?wv!@)nvaC@+quk=!>$023P3J2vJ~T z60jb;oH-FrWennB6xZ*-m<$3qnIx~o3D2zJ&sTcSsD2z>7@Z3~&C1R&tIw;FUXNT* z^ypEK@D6BDK0wK+-0vG%m21gdb$T8_CDv_RG5pj_MJcKo*DmbJ5m&ZQ2`h;g{cwgT zaWtFxyEVWCv1(S(gxIIg~MBW#WU@r7a(J<;2!qg|+sqh?V*_hhYP!g7r^2uZJEn(bQD!6@I(_uS{=|!I(l)h%Q-YlUZV0Siu2L~vpelK+UK#c@bZXE}cs7l>4uPUn` zK5gUKI0fAA!;m;AGbHniT#j_tZa369sW27rZNw1~S;g}oe5KsdELQs%%B?l4tA4CAIZp?Vcf*A_6+JqqCxJoyS^hgDL?I+REBK2Ty(m_`(Mf-!5>VXb(ZwNi30M zO7kAK9?5tC*H6MGAlsko+fL7ySc`d&SP857-BaP}@3n22{FX;D7sH?HpQwx(sgiX0 zq#N|u)Yo75EXU^aafO#64Cxg(C0L05&fk`T@ttpi%PQg1WBERrNd5n+z)h1(kAqQ$ero z0|P1p5l;t8bFB?-j}4n!k<^o*z?yqT{J@tF$-YabrNp>=txNku1CCsF8#y(3aNy+I z+`9{DV>|>`iF@U6)z6C*JW6;I!PtytP=p@j$O8VC8My!>`jXhzV}&CWDQkVyO^eQ! zuUPd*EmaRyW;zO&2wJ}r@s7vtEG85zBl8>(S^jqm)Z=s8LoM$ce=P8IhqvTo8CilZj410uc@|X(63s@-VXsng3fIyV)hGEXAx(OmkxCecv|j4u-7Mie08k zs1+GK-zBA%)l<)yMwE(>uUNPG)r2BtqBG?Kk^vh@q0r3K%|Aq`1%^}@gObG<69w@i ztk8sFHcTWfR0aYNn}-l_MHvONc)R%C7+uI6 zmI4I`c0|6Kc&kbk0bUxZ<)j+B#9X)4P~Cnas^I!m^AwZy1C?f$`rVC6iNT?eK-;u1 zGnOH6z2kpPa)keA-!M#O%z0lLMLH@9YHBAYY>Fa^=c=hVt_O#m4djp7|F=+ z%FwVUHQZP6L>OwQrYTD|8&B{FIh_OPV!(atmHS$u&uVw@LJeMWTv)M9YAw25dVJ&% zR+EXp1=Y_v$mrRtP@7F>RQ+q(>8|y(s2nnI8;>&P4yUjGa}ZVqbYP*0O{lSmFw>Sp zZiOV(kx~(iR6)JdB1jg-o}F;u3iaM#l2qZf0@{a>*N*s(hm?;MqMI4)wI3x`p?P9? zMcxA=TNfeC5c$BO%zz)xiD)Q1QRS7oG`bUg=RW?WVKwQp)a)6L=?w6@O@2Vw5hF)SoN5 zN35K&R}GvUU&R9+UK zeabWl5-u2^MK}wE%5!LuyryK`u|D9M{Z>?hy?(6RB~iGlCa)ziC;KKV*y4Jic4py1 z4L6W)M;7mn63f*qb2u-G{X3r=$>#q&g}QO+Ys>odAY@gDq=V``t$ZX`NQTVOf>u!c z+fL7CV#6;X_a82D7UF|X>{j4HmaBV>{z#fk1`J+xFR7ufVYj3gAe9SMpjkhA?a<>ej zrARB{&0u;ZOLwDSDT^18crIgv2u<=>E>ldIvw3uUYS&qIbg$f&kz#|*1J}Kh5^Xii ztOBu)5~)gjSW%gl18Q4JY`d_l#4KaSyquN;cpw>}QApQ7Rav0AB)O!~9yof$DW_2D z`|c)8B0xXkeJ413?Jq5+2B25(PTWvWV-yjTXT|5*W{|Q{f|ORJgT}&Ii%-i!hYbBA zI6ME;gvp^yU6nhJGpbA>H*MjfC+fzLnf{mE&>D~2|L`wMq{%eEnRqO^-FDOw&;3A| zd{!KKUvJAn9=<xeB(x133jp%dZ@GtOl4I!Z5_CnE zETex9in_5QV~%``Dk&T}sogNj{+Jq_BEmWd(1d|P0gq-cS<{+AyTd7e^7X0F-bV5H z9q$QC*ReA>XdoU^M-2cEkTnHNSAimNeUAGRr!_RrV+9!<;kh)tYr~JRDGV&)BxnK+ zd1tQ|R><86uD>%;%oZROpTEt^13dmB{UaH=HT%1_a)-objXJQKLJtp-kgV&BpkLXV z;<&Kf{^Q>4!YpN=uR!5crtBP+^99+4e%xS$9DbFn9Q`WJRExn3gTLE0}yJ+fRadJMRmwXxw0z3kl4HrAnXH&;wGpt@Jq)+z5 zh?b&5mng_P)Od7=4z>ycij$VPfA1B>+Ra+Xp^F%_m{T3Efu;c4<z2cML&JOf<5RP6$*R=?D2W-eZUm7jDM@OQ;c z^nRIt;J%1ux+560OAISL1;i(fQ3L(fAkV({nZ-{m<@}y=pA`hWRnW^3XD2b1gQdA3 z$LME9TpVit>t!%>N~*=<%Hnffv2nR4sFr8he`>y3x(MwmF{v7Pyp)61SomVBQS8Jb z+IjY)XHeT0cGJJ*Z{weE;z)y&jLo~0cQ2($<+zI`reRjH*?6MVL$Mn-Dy+B#U!q$7 zsmIV}%D`LQa;Ixi|7OMIbtnL-hpRF+!~F<`NO2-Gh6gr9aA^w)D}?(9EYNE{%+vMi^wU zpFQ&SMtT=My<>h6|0w4+R2R@m3JYXK15oT!W1kvbbWW;BMom&D*Rz6YcwviFjPd-#_7*gVVLb}hB$D#u} ztAX&>3~|Oo7feZ)99-eZ? zqfp=zukW8Gr7!~Npik?-%C_?kc*uuz`OfPlxdeJOu>1EK3zMng`Q8*j~Zx~e@{vv3!iWe zO0KoY2*GF1ZWJE*^WQ%33^!+ohiL`@x-R+p%Fmzh*)xD_pupt|B4F^pd+-0b#2SBR zc5!DrRJ=$N1_wF+Pkf_`tfJ+m4)tE{?VHohdQ!dgjaLm4ew|G2-+WTR(pZft_v7$W zM;cd8NRwy!1uVB`0`IH1=(XI&)kO@`Y$$v)rtDKuQ*a5_Uk)hoKzx0ZGB{Kvyyf4m~#^BdnQ8di5PQdWOqEHyM8zK`jRxRYozwAu4Y98daO= zz?1J8>D@ewU}%uFlIuCBK(>Y+a*0eFEfk9N`L4 zczDkH6}64<&r`^xl~`Vyq1OVXV+^@9G_Cybg<*%E$V5t__qN(A2#796-oybgQnYk) z_;yoN=>s8@6bh!6Vg9F_vs>;>2SxNN<2*%oF(%wx%0w8p6tMQ-17iUwwmUpWj|sdn zKP6m+9TWKUw#ktU=N|wMd{@pZm=LT-n{^Zc!qGBs9;ct&jH6Si5}6h3&b1o@(eL?7 zj&PDfaUCKwsk;vD%Apo3bT$Z z;ctTgAT>zmNcA|o`I#R^L}b#(jO?jv00)SZ(&HQw_4)|H=bv0ZvU+Tk1{{R1-2nLU zFQhl*dQIc_ZW69|!2Pp)5Kqv4P0;MfB1}nBB3_>)hNzswg3Uu$v+PD)q-VGwc268I zrxW{Z=pP{1%yiF!$$^RPm#3_G_ob|u7Oc%*e5x7)My8x)q;0`SzQW*J#RH7cRe2f} zP1lE+4>XD@-OSWwR~edPmM|)|$t@KsHZd8NPc^u5Z?1n^F&v@+N@*V7yS+ zKdOjm4zMq++}U$KK+-u>lYi9w6f0Y^X~+OdlIeXht*@#s*GV{zt31~6U!F$H$ujqp zFx1qT((vH=lRGdczxo}|-m$wt&4Hg3*9EHp54^~0LD&)9OGHdZgR<++8Ln94*^k~t zD0iNb>gpQUVAd-o=5~ZRxkWhETszuE0485q=s4b*Iv#=d#5K+mN9VI4oAc(fi+5d5LF8)mZ|NpJ3(UI$9NLj&#!;SZV zV5k|~!B|c%-;o4EWdJfD7kSk5a7?cs^q5W0W0ygaeniiQ!w~O_XA0AGg*_9e`#b(n zP9*88ExzTFgfr-Y)_(YuKa{s^1^Q!-`}2~Ds#e-O*QMfV9HFE;Mf5|XSu<|S!DSLs zJtiWgpO&;^A~y@~>)8x6qoKS@lHk7*SZh77C*hdn<@crvI(sySdzRPRf}lEuOFD7a!{M5pGUtHw2k@}B4|M;lu%@KmI z5e59C>Xa5zROscfwBO_}WZDPUBpJhS)D3R=RcEE1JVxs;Xbo5jE)det35Bpy>qc)dEOVsL6+8FJr*QI1Qu%P^48Ri{*;6OU(U5whK41{JE zX~$bvnePx040fIZ5#f45$1Fn(OheFLv1Fl|yTz$|Ke@pFG_TSig#p`7`+wO0JuAxG z_}psCp3e-oaMzD}3FqG@j)JYsCS7pS@>&~~0)Ok`F?_-86dYRY)PVluMr z^nLoh>^bdMl8=i9W`^$Ym!@$&HPCqovNfMQvs@8(=r^&DT&@E+vaXLwrL3-SZF zjW?MeHMwt*u!!aac0KA`H>ws?pSP-oBK)8pq}6s{r4W5Cn_b_w|LSs?KzEeonYYk{ zu|+6Z+s|^R`TvJ&xR!A6hQV#*Jf>r{mzGs=G}2o`!}MfOZQ3f)ettYyjUCmw_~-Vp zNjKdK60Ainj7)3awa?eGBB{==VJJ8Orsl~fr}P?FaEAqUI-L-K*Gln7VBuvdiN+XL zQ5{CBzE^pDf7js?=C)TTf>4RVA0#Rsr-r6~uuW{S{1qG`fuEOfjJkd*Fk0ZBJ{5F;&=rl@ z^apE{Y2s1!SX6T70wt^MF02I;6|aVmN|+r{QJqm9Xg|p#!T<|s|CZUuk#Cm#D=cL< z>ZHTcG&!*S+(3!fqG0*baALvCzBF((ahOLCa78KtK+rMW7SDcM)!2()#-v+Js{T(F zoKm$m+h1LKOWUsoTtVF3l?nX@U=<<4bq( zS5Y>^xmt@%`c$YPajDAVOOE(B?}1(W8LTpdD*rO*?W4{Gfpt>3M&sEX0OKa@EOHPX zR9hZAWrS#PhSWG#eOC|k(*(CdC=$w@eaf9(0{j=+e;rD=Wct|{4_|-Yol6){k3>Ve;9)$Xb-aSbIM6YMCAp*no-Ndo_LNvYulz!gb?Q3|zJ5_Zin<8!ZYNO(G zMDIdHalo3&oh?w{p5!^BGf?+7$H(e+Ue|{~f5h-0_X~nN!j5gBeEXJ8)%gk!mqe1Ls9jYDhP$p7=mi8Cn60c= zLW9k%40Pd@h$`F98cF!z8oksk)sON1p2NEliu!oJL%lut1>sUc$yGkaWqw2tavo7* zoVSrr{a9pmkw((E0G;JW@k~|e0zI3(vVaP*Y*SVpXgU+9X_rJeEvh>w5MEcQYUlph z=eb}j;i1#`K%{Q!w5Xl+-$7UX<7fFgMh8u9cN1vJSM<#-f?|woMjX!29Pg6QI<85$ zO9S&&JeXf#*U(f@1FfpPD5h3G3xtM>lJy(+&&5U(T1pF_yFwdI25c)k$v~`x|G#gK zgPs*|)qI+y@0*2~&NBq3u2%e@g0{$xRY+njq!SiqkEyBlSnzX&Mtis@I#Elt0`J=t zJql3EHC0`aSk9~y-JTFL=7!r2#9HX37pq#1XH}&EJd%OlefNh<{OsnzD$kdpfBD zcN2Yx_*$pnkk4!<7Z7uLP4%VvQn;U# z7|)gI*3eC&EhIvfj;$ujsdxZ<)d2_%55baHL5Q17PbY%Q)vjXK&M!uJOj}I=)SS^A zrwx2*J&I5CPbEER2+j)npEfC;+@GoSDeS0P$#nwG3SUvFzUE5B)&;EHi;#1eJG-K0 zg!okDQ&4YD^_{?tx^^x&f!`N3ES#y2&4sKr?hps!Z~Ea{_0ydY3x-nA7~Re_`@+PA zpzHMpe04A15^x$Vv;ih)fOQ1FhF2K;d#yXcChLs{&)z@n;86xh7|Y+VRPFgAY}zwN zj_$PXkDz)${P+u18yHnWmwdyGLFxYs0q=(jXJ_ zN@|Qh=U;L(w4YV*u*odBfz>1*7Sa?8%5aD0qb&}4Q?^RV$?ys^lMaxDj}0eiZzP;m zGqot$wW1OeR=oX)HI7R)V9+Ix9oxs&Psr-{|Fy?}-6iCOh4TasV7ujSBYcy&X}}o0 zX4jXNPrt~KPiaZKC0+X=y;XH~A$;yEdU*P`%g`0IYl=0Q=I4d8xNpB&j+oKpg($AD zxkb=3$Zi!=6Kn!#JEbuoOGP@^SjXR=n0;(pfa`UJ3csm;!ON& zb-%RFxuI%CSj&HmW+$-xgPmia(2QIKund}BCBXP#``qHAT(#5(()EQko)|pu`B!}O zFzQC@_~+C1R@XlW-%Xm6z13MGC=lOul7NOF^pDJN1`k}p_1m3}SYz$|6QTSC$G^&5 z_&;-S4GN@%2=RQGOS$JP_aMrRUW(;7o-l|Di>Pw-z?oj+qaSnU@jWR<)NFl&>u!OI zmO?Yoh7Bd|V@00yDIo(2W6nI-8SIJ&RX>;sd1Bc9*68J`OLk0+|})*Wy>3^2OQyhJd^lE`A3Lr z%*^C?4O3Tff0}ytgN0!YIdc+p(J+Vg(iRc9VKgb#a9}}MON)aEiP7Ld-fxrYnIS)X z!*nMb!GHhpA=w>{w>1fiQvSH`xL(H-XX24K*SpLsbsKf{_qdE zuN*LQSPej`VmNTQs3&LK`6VooKUAo>Y7aYS}!fmO09LOf#@0o{+ zgO19)p$y5Wu0B(>u@23hQUQC^!Jo3K%Z*sWaXU3TrnM$(P;007ZSu(eEnh!sjeBZ| ze}OmofnD`NB2m%89U?PU_3M!!BvXTWJO5UrInb-hTWvUs8#-fZT+z5W3JA8WG#O~9 zFE~4(G}~6Dc>h_GH2UhvC%?vZJNH%?+lhQj<1|;Wuf?M7-6veRX<&%Kv*t(Pj*0t& z%|D&al^g&Z-@aw6C(wzITL&F_|1&z^T>`%Qys+Uymo9vJ_rqM{%c#kB%r{zjbf2Qs z;t`X_+V!5*C1vIUaGZ#);kiV46-A}}S5u+iyE3>y_7rHi1V&aoB5_#kCn#)z`h+hQ6Y2xJk4bo1cea7=xN^E-1~Wj0Z_0A z1QG_J&mTG7%}2nYbV0s;e)s=s>Vs$~*Z}a~6)OPiMp9Y-aTz!@ar`&9w+nISVJU`! z#C_894-}ut2nF3z`tnx*1+MQTzW5L`SR(Z2zXpgU?a8bA9zUTBK@*+4MEW1bXpnws z&CuDsD~Bo3#C-7|vM=7<=ZJJf!Jy?p)q^Lgo$rMp0FOT!RW5lYX`mgPOrv;(`kkWKk;xYKTowWljVTM*q zk}>B9h}V_6g)ysYBm_hVF)$$dJZZ1EjWDh(K*NTkBUXA+f{&aVprcXs3jpTcArSmkn+#RxZ}dHWiM zwE$VISswdO&JzC9PP`I6PR`cJh&c!zis)*3LT3kTN`Qjq`CiOY`PxPUg?LP|WvzX= z>}7rV^i6jO?yua@dx1x-E8*{U1j%kkzbmOUzCj5v#w0;(h)he$gD={LK^$v(tC>DR zePZcU?;G{AW!s6z!K^53bDw{W77}|sDh<0aLNr~>1KxUW-!SDH*j`rAbQmoH>R0v> zF%DCRRGy=%2ERV2dF(BXE&Hd zY(9qx9h|zP0v}I$`9H~aohyV5fdaYS@x*X)rS$ETd$(VT?6g}W_!46c$1}D#V-JY` zDeBU+>;9|!ni&hR-t^E4=4OppaGOZbn&f(yK;Ngf#xmAC{1$hQtA!(@0jywZSDr_MBLGy-@-x7~O6^maMnD1QtuE|k^L!_rujhEM$gi16&9*ba7I9iGXuV6D) z{zgFc|0=XBx4d}!CLC?*z7~1$SNVk=phkJ3WWYufT^=b&j5X@0S%hVJ@1j5VrsNrn zK>QIRpo{rYnb^@pgLjcdVB5Teuv#=^Ju-)<fL%^>(CJZB#eJOYBy*a$(8`!e;8~9iP;`2AOyFXS) zT+l0a^F?RXbJSFOE_p_ByDEL-d0v)UqJDd<9IZr zby`vlJz9QA@S9ELPQ?X!lY)p{M+!)b5(nSB55iD&&Z7$brEVhvBnmPC_<~UT<~Ps& z<{M{J*RLABmdRXM1YfZ_IUziTZ}wSpRKG8v9Ct7leaamLvc=0~UCk*1a^` zC+BI=$Zo!1jej?9w!3*gH~NbO-ZPmDDCXeFJIQ0`M{bZ{rq>()HG!3vs&;OhU*D0e ziLQg>GA2!{&--Kn9uA(u9Q)i zW{K+C<%HE5132e!_6!sa_pzhLZNoTx~)?RG6cu2X`OowS`UIH(bFV2s!H>nc#@hY5Y8buAbQ^hdIr@iTuaO|#8?-g%$y z%P#(F%kZM3$OSaCH9lvSN2a&QL25@JrW^iZ3_q2pwpT>1?XynmUvc5~yb8|O9tHY7 z>n8I^lHl8ydjB@pQV50;8dbDcaz=;HqbJXc|4ky7w;hJl-v3nTO&YPUTT!uU69hOl zgd8$It8wJ}a5bJu+qf^T>OQs%6k+v!&`5E9LJvuWuI zAHL%M&ncY%-GIW{*cU}(>o<=C_h{IaCo5{4b^Kv?982*-g3XI&a1Y;wg%w;Lq`3H` z0l2VSNa+bu!Q>6)5j>m|%O1H!X_yTVfry)u6`;_#hX+RJlCfi|w?#qAk-UEH&3yb; zw&=AJV6`B9e_V$QxFH`(E;=|%t(}|e&;ds!k?K|v5EZGbg`yIsMn*`F3KPp}ZJl(B zPKV#3 zU-y=v{pEINu30RzazV4y0n@5vYiGk5$ptN98h`Q9^pmxu2MtMN|H*q6Y;KyxR> zK|*lYb)RvANQr8$kwatkJ?S!+!R7!>CB%G9i$xdwT`)i}$gaqLTFJSWjTjI^F%-}1 z>nwkg%8XDjSgQSZJ3A}}j*TgzB-e2e9N#Q)!#614X>Oa4*uD|>?k6M6*wMn>&rg0%ie&p$DIx917z$caybpC&2HJij!YAo z+`4>S?*i;V&hy>8`&C{=;krara{-gWW#?;Pi|GzZ3cN%(C%)d{o(-bNmYta1t^x4G z0B#G=EuKlrZY$W9Nnl+IC=$^((+E78p`QW|T!;IZ0-~MtNHst{1H&dwz8G$*VkX#4^avPdt!Gkm4?tPR(WjL-61<@hC5eXT4J7 z3f3Sw7ZA?&4Tj%*rR&WRn>=3f@9#3~lTshgyiY?$Zn7@5~v*chyW?KMltN` zjIpf>$9KhJx+d*HC8RInVI`UMwwYpOInmh}4z@*v>S9Mbwn8k>4d*7J~*eTpQcN0<{KJjn!1Fm(R+>#>kKonKi$@x=~t9R+tw+~U&t0?bPi z*brC3ilG$%q{-O~r2|Ob_tG9Og{Cxky%c3|awy&Gl>$KB~T+u~sn~6J6MTfl{6NvhCTUm&&aQ-*?(Nm(W5Hat|L-Cn( zsowzO2X3%bb@j@jJ!yC|l^9lzF3FZxQ_SS8I3ZFpJ(FY_f-~8-rK5#3XKn9u^)lF% z_H|z}-E|blPRjws*M*Q2?M*Rs)Nra^yNK;cM@`x zcrAIbTl9PpdQ(3jO*3y_*CyR!@8l!Rnu@ajxf!36vH7_@O52F&oge7PUcMm{5n_FL z*c3+<$zMRDxb5%GvUe$25QQ6Kagw_qDt3whY(k!;*GQlmJUV)8MUw6f0o(+rK^#2{ zg!6>x=d}tqZXu!(RjP^##WERn#rGM@8O~B_10SWQmNQ^oB2j{F#RN2rqbYhTlmF;0 z1wJ||vY*1q-~EgIZnh$6N^CSJoe}~^ori0+0Bs6_5pq>Y8X*8uM7aRBznDKNM&}>~ zaQ+$Ic>r-vbR#j#N3M9+DBE3EbSprlu9fa{0#TR3x`>2ZI)fw`5Q_xrL_6qDMT1sq zun$GoijYmEB_&S}YsI$H{<%4(d)WTT!)ANd##!Oz^HKwGD)A{d`0)Z(wO$|{d@Ac^ z|6QcOG0*z0HbNLEos@#aqr_%7`H{kPk@PxIphQN{H!UMwgTW5LQ;TF9{c>mG;Z;pQ zfjOK90~B(_O5YT{Q^0l|^D0mEBE=otNOB|89gdd;-S%M+F#NT+>q0=+e#GG6QZ~Lz`;}Ex3IVZ6*2HeUK z^G+O7(x6j>vobERc;!XpBuj$u&442J0=no_3=46N*L;?9)P5*j4!$hG08p&JE0tui z(b1Dvr~HfSk{`86fHXPKyMohhl^GAf$uTT>aeybf-#zjg<)L_Zft+Uv^{F{)^N=eg zWx!yWf_?oaf0s4?xe#2rTr?lLP$708E3Xc?{%0{GI#CBVe?x&HR6Bb-yi8T}1 zLq&J3?KMb=$VU&d5WV~TB4!|Rl7S1?geoLBmsoDG?xrUCPxC!XZpxuR+nx?CHx5fr z*I3s_U45UllUgs^B z4~PI_11Z&CT8BJ?WcPNu}pR+je-bE*w% z^B4WR%-sf9rhW4Z`KOZwJ*t~#ba!{PO=w170Kh>4z5Ds{V{q>aEa`Q4vH9IlF_1c-!8B^UnOTXjbb;Rz3ds(|wpm{|` zk$pbs-VBTvZp$Ri9AheGf>e_+!07VYt;?El{{7r%c1LeZ-y*$KB+viL=89}2jG18w zL`tsrWj$V;_~->jyetC?e~yZUdnaP;;bPU7RU`4$7x!ITc|y16Tkih_4}T^PG>Uj& z5Ic8sB28ax@Ulf*B#us@qOX2ee$sASYh0aIcupOiX8 zQpn@uau;-OCHm1zs#ud@tlW;F)+4%6)fxK6rp?#unhz2w2+1%}#QCqyVes^oCJht_ zJc=D(uC3vED-`iqMa888n{rC02&miQc16VGqim{$iYVT*U@4P+rPOUeq1IyTQ*OQ` zh|(>3Ln1idp1Y48bCh*B*s5I0%8e!#Cf@srv!whS28 zY2SyxoB41yoOlG%+o2x*Rpc11>}i}jtwHs^W|r;?H`-It{BkKWr-<|SU+k+z zQ!PdE*K+H!QL8`ML46W;@oGMqa{BMD>o>8i;#j18AQt7ffe?+ZYjVpeE8UWDy;xN0 zR&HcP57>6&#YwUMlc>@cYc3_D5cFl)I{Dgml<22-e`RuFSlTJYbqZjKyj1nSt@6va zNU-K z(TB^-7N>jJ76SvST5MWkeZW%1tpTx8-54v=zsdi}+_ldGB^?S|0S93Pciji!@sk^O z0cf9}(%5iw9AQq5Jz=5nQMrMXRLr}W$w8E_2Lpd6{(Hj4%`LBV`OZ*S@&l@;QkFAI z3y@hBQ>8&m!ny10~qA{KLt4t?-{9P;HTKo_Csf5&B0Ze5Hs*3pusl-~1?3bHXWucjQ!uq67- z(h(J$mvy;Mf6>#cGQ&Q~1%8xmx+%v@3F(w6bMACIuGs0LgWv&T0VDKFYobx_$0j$L zmREBF%PYJ%H5g15?R72%cDF84c;K8{*?#&7m}(OXNEDmYH@ihaWPdF#o+vIin98k+ z^SB1fdvy_b`R91sYt~d8E9{cU#^@V5r>rbQmy42PtUNqqTEFe31)2~UQizx55Yxf% z>KFsOH*3=j@Z(9(R%kcYxUjSHwf^dN4nLkaKqtdRNU4$$$A|`2RZh<%>f)pcY?d1z z=OC?3fhWM0Z4iy9rJDt)03z&16}XgDhtRaC>y%D^YhA!NS4OxkDuGXe;`2D(@Y&KACENmKSv?Sh?3;REa@CG zm0v$DKd;>PPsi`?d&w{yKzG9t|3I0RQa@H#en6Oi`yUA>0lM;{ln82uo$4+{|&V)o3rBM8#)XNN5h#oI$_ehT+c8Kk@4_I?59 z<2iq2b-rJ_^eil|Y5$rjTEgO#v+Gu)CBv>0dm-%&eM~Y zLIMG&ULWCUpMa$NUBRkvIdk)q$kqoY!ROZpCS{q71SC*E&i>FLN03hF+^95Sm;On{ z5DT{<)OF(a-}nLUujI;?Q-~zf<#@%)ih+F^9ZE}51D79x_O4POHd;{tpvI;NtLDw_ z#gyBwtX;+&nF#(ocxMU#F?DSaMvZ-&lr9&*>0YVmum1#L0M5<@)uYW@moWq~>`L1} zwXbl+>M9XR8V>)?<2)?n&v9vh9E_1ofhFB`Z_tvL@t+B}sYFX>6Pb@T2UG zHkYWnk)X14BJCBasofwAZ)Y-c(U?M##hFDa_Q4o5tG;9#K=k`N@JJmX%%qj>B%%8= zW-eA^jR}H|swv^ZIcK5-3*YESzVCiD21zQ)u}wKn2Jx)z!Et*7ZhQ!-4TE~ z=NX1#cv$XSWb+Qh@HIk&1zsZyUw)@0_dSpLso-0S0Y}*&Sq&@w^(Z}SbFI1ZkMy@p zQ-U;cvuo{PW^-k>qkQViwY^msc3=Q6B4Fb_97NZ3?5`Mc$Ta@^;7GOsw=&jRsqYY#-r7G;>v9l(~ipTxbd{Ms&NLV z0ScTtzx^nWX%7M?{2*8}L;(jfWoJ5sK6lRqfN$*a6g)_9k;C*+oDe0UQ6;r5mO&v2 zk7Rr%yXLP;a7S+Q2r4jae)64|cyqWDOl7_;PAgwIwSV+C=8JRMjV94<1o4DEY*41y z3V+qUM;{28fuZy_Y-9rOnc`C<^X5_2QuezT8fu81`u4g+(++h(E4_H39pXN^jnNP) z9)JV~7gkBRaR>u7lZNQx1U4S}D|zr?I_SLFjmy{;Dh{Cui<7s=11p;a)kK@u@?(ng zv9S`|sYYH#7YQ{Wn@Wlewj144QDfvZb2NlRqPGGyZHn8ewtzbGE3mfF_1FdtBH6pt zg|s>4ut{qFGF-!908|%#d-#UxYdw+WxgxEP2bBw~vPK8r81#8K*zG{kr@bR`&fmYt z>ac=|f5ef#3frQZ5$H22_2#3ve2O5?xd@xRe!#*4b@_`oAP*Y>(2(OnZYnk>4GxX1 zL&s%|1CJ>8D%%!o82pI%A*5ca zpBET!K26&!;2Rw=G=%&daQt7WTH9v-H`m7)1EPLfb~ZhZQl8Vw)Yc#u9om509~=FS z4sjL+0aCvm_b&`U*myI3$TlEzRKGs^a`pLPQ@H&qd8}262~Y&?d$b`Bl|M4jesy3A zSFwowp0Ac2h-^KWo6##qY;XTOy7vjRreCp}OAn^!OMqvYvU!$kr93Llu^*YuJ$>Is zvv`6gteErW9q!k_6fBP-+Wzzc(GDp(3Y<}=R~6xojF{l`huw1OggI9;Ajzf@g&c>y zi0g#mg_y4{fv9L&xSWMRM+$r#u`ndQH%aY5Dq zc>&{)LRn;ZP)SVgBbmd>Vdx9q;L%F?Jgm^@W7*ra`PYq0#ut7%lfSy8ALw)a=(ah( zKWJvN+6`$TzxES=p#TloGo#g;>pp64Pti9F5EEk-p>S*9RNaa#a?TASeCvH{FHp+g zgr920O&xfs{PW(`Iz18Zy{dxWSi1WihyIf-K&;~=(r{622>Umk07ZIz?lj4_t_MTg zK~J3s_X1U?S`K)v|KXWJV+N6qXgc(c{F}wmA1Aih4u!r`xAszuk+sV7mx@X;d^!AY zqm_=`crWs_&Mo38=eHo;r#x%$+i#n9&K#9L;V-`W3EI44oTK%x+f2q7wpZgV&iyQL zY}xJ1J210JA&7$j@@-JdmHQRxH5O^eWK`@M&B?#<)=sv1E?Y?dwWMX@A<{c}p9!IV zjwu)x=0j1c->*E*|Asc@6{!aj%#U_(Fg$X#DRt-Ky|gWd`i^{=TdqeJcXRNWSYBRj z;^s|%OAS5ypJ!U1**F{kvtFyb{`h&q&sjA$=D5&4hxoJ6quk4QJ>{HLC~#PM89^wD z&&pNpF%^mb4&_9N)r`ldyIhY6tdAAmcX3d2u}reEHhE_MSL1O?ojeq;UsN)X2rb}# zFCWX!#Qd%?S9toL7EfI*|7cFXpV-}rm1D3-sILD?iE!}zhoXk)eU|&)VavvMZ-2jd zP%%5)pmW8$z15R%3itjTVbxp0XklMl00d)^@ndd%Za;fbPgLAT? zPd@X@+|TiOTUCp%1{N>zW*^GZ{^$|LjX+lYBRv|d^wZ?s(PC<2e{){Ys z87Fu9JBK{Rd#x~k?D4ZEEQ}sc5CSr{WUNtCwgU1@Q`B%d!8B?p7OPncI%*e;9)d@I z6$ZRvy}E!UPg!-Sa(3+;prNh4cS~UP8;FlgGeh5V^Sk=|t?D0iRZ_~z@X30Lf#qIm z-5d$omDM}o(z)%b`Uj{Eg<+-37tl%p?aG!V3Y~S3>J%u?0vfV)n>qS5>^Ds8kJ`GK zz+(ZW7!x9c57HIEs$b}UdL2|@x^W?I&0+}buFq{M#ldSEuL za@GC{WQWX(G7sJ+TL~0U4zT_76!z>OUMUULK3Hkz^wJGJJcq^^qp)?wJhu`*C%uQa%#}dJP9VaXu_EJ zMOVzWZUC&))*)I3)fOLwaqaU4S#{5`pVCt2YTe-3#a+gL&=d%j2)fsm(#P@OBhp5u z(EFG(?#34PMyNHnh%3Oh8d5cENNu8hv0Enasy{S90CaZi1}th}rFowc9q-uZRWUKP zDq_`D3tfH1%wYWBA9Stspx`zRv`C|g26e7rRp(Uh5r|f6aUbU(p}}L-SFH%Kkj%8? zv3z$?`l*0%JOH^0;Cxh<{u(U-EeC!Upw(b|)$DJ04K_Y1V!x(WEt60k*5TO2j{7)S zkow2JmqASP?U%N=6IgYs%b40ra;i$Q4FZ0@+!F*F3RZ1Q_jR~$c%7t349%_(f?$c= zv6{J8jQZ_QRzrfS8&yMSQ1xH|=v)jVU~8GJ0^kO0M^pXR9bBQQwNR`XtT$VkBI-<` z!YCF~8PuEoxEyLtfs2U>lVG^$09fmog~|AbE*{u0FmU~@X1Clcx@d!=#)a25s84my zo4)vLKRW46;=@$HA?1%T%3b+^d?ff_Q08+)F0`UZ(22>Hvk1E1z%(XhA=~*9CAo1h z#*RIJ;t8IebG|S-85+={G}~v!T{36UT)Ggd5YgnN9o}ad{K#c8Ud=&k3Ts36l|Fnd z&qKElt<`UzUo#B!F(J577@rCg<}1%me;#T!Z*VYMYEUI2G+$?0y`(Ix_R&}TK)b)e z#i)qDM8jT0dc)|YLAl7zPxr3MR9Zc5B1Atgx_9_acJ4gxgZngw+oTl0JD`!Tp(zhL zwg8#GPi2x!yYZ@YW&2dUzi>5k$hXEzGl|r|7jp-Uz>OW8=tZr^&eG%O0(Kx)Z!ZSC ztz2_6c-h*qZ01I-waJ_-S^~%y4wT=XTE{Oi!u#;Z^xS&eGC198K?5U>^0?}F?Cuw} zFEa_Lo*y%SV+C6(_s9?q5#nfkxF}km@kg_P?CL&nTK|}}jkhmz+*jNl8(fz)9F4J@ zHc7WvrK2G912BqbC^&`goK|LzI*Tm0YIs}qdnBuc)Z-go6;eUsW4X>?SzTMwxblhn zONx?Zj#URfSY0aXsbb3=!oc5>SAge1@)pc|t*WB9)DE_Y2Lx*?gblV*{i8BFqSSr1 zEYCfBAE!Lch5(zqPqiOz6nuAhhSO1CVR?U6$VHnfS0S|FAjQVB7;8Csh^KhcDg`3Z zb?GmDF59y*_>b?3McGgdMkGdsV_{jXt1J-R6^>)lKS9+#;h{iHGu)XS7`F_Ga7EY% zkas#(!;0wM2jH{%vT99@Ao;;;O0+fgEU0rIJv(}XbQXe@G0J!c78_g) zw{YprIF+d&8-;b%tid{u#Ae*@sJd-Ml=s2WqFAJ<6^!3lgfk%bfpEwZVt!!G6n~mv zKfBYWc~84vH>-R7usC~iNB(i>QVLBgHb{EK{f5iZ;-uxDrD{cTTwGk5IT3FQ;M>9A zT)GylfSGV6zXbg1_xN;N?1Ib1Inj491Lvyy^dfbER2xg{^t~Pn%?Bl_T8;B}gMI7G z^5kSff--fxQf&G->^pC3nSI32m~gxqdLgqL99PcM%Anvcz)T5gG-#o)CDa;i>m+VH z2WXhN%zwIjXGMmu8cWmB962x%c;H~L?L@)-S9m`(8>_PUuLpN7ob3vcsn%M4PX3IZ zantE_A$u+jqB1gwc;eG8ie8zLKRApuw1%#! zD-+l;Q}nWDi;eODl4;};A| zg&vK_8$?$^_gx#va>TvG9L+6U!ycGjc9VdZs4g0xQ}*qWP#O(BYx%)c))rcF9YT@8 zLCTENV(~n9>A(>8;ep*d8mF++UUd4X-2+ z51$)`MaCN8q_2n7800_8r6VqPGZ&d_H~{V4*(c9n%YPMW;#*uiF9-6Cp_BvGX~dB5 z_XNf|8ywUk*`C%s{1|#qL3~@k*O(76m<7;>xU)9{&sII@RQtSkCz$sZW(QdQK4V*= zC**~PUdncrRqG?vh*DK^3`|t#QaLh5TIVo*ZG2CXs}Bzc+WSHbuJm|l-rkQ}Ap?f4 zxAv%IQC7|alSCRst9#qtCD+IDUn{p-y^BP2K!;Li7mqJ5#0i5ZQdMS$l!7esoVxuk z|2gqd#?_DfZd~nnuV+0p&HBKUO$I0OZDU-2MHf`tGBWv&ZM6E&^H`dm)<>^199Vy9 zlk>YI@_BJ-ePKY;Ud5XN`+LzJz$#e^WW5~%nJbJ&ZRsbGty??-9m_Klx_tcJLi#M4 z<-kFXMIJLM&8;=n8yqrDe#LIv|6xL$j1SoL;I1iu`3}YELb9jyscX7l_iJ~{=nrLU z-AVj3R#6rt8fbS^vC8o9-E^HZg^-yHj4|`(4K0UR|08RJ8}V!QS(P zSCiRHgL1D^f>%Eqtu;nJ8hPK;#4D#O_(C^oX?u9x&L#)ILSHBveC6ElTs8@q%Io}W z)_?C>4;_5<;qHd*#S_!e%y};LI~rPcz!aCoJ7Ai)46cZ-1Wcmnykx z-NajQIR0{5zr@Wj#|IT;0i26D@@>x*^2xEx=GH3bejh3oIifZXV2(x?ziBs5eY#z5 zF+v_?aTGQC%r5!6onI>5kWA{e?g|Nt!B59Sg1RtAvEa*#O1Fr50p*IFt^XCvXmtTl zLH?Y-aiMc=8wS#Gv(Ysugs{N1=>~v*KnU>ufo4sZun<(BAO+NZ|M`_|!^3J$c1VlB z4xh?E+39e@r2WXt|$;EPxUnxw5v2NCl4k*bw?jfHFFP1lhoNumS+iJ$X47 z4GQYYzx=bhuBQVWCek9;kYZjy$NMk(2pUmRC{;zb|LCpp_2eS}FaOZ*?Vr6t0LS;{ zcV9?j5J3KCbyX^}5v=+4^sLrzzp@W>$){FO~z=B8-r@JLp`(Pm^t51 z24iKl-N5~e}txEZqtB;tg%+(WbbD!f51@1GMQ19*>NkX{h_TGw2KPWCy|Fhm$l05Bqz$g5@Caw72=T z1Gvfc*xdwNU;{#xQd>JT`5%Wq((R|m;@jffM&6`p(wdW*3<7mjdgW3g) zv!v_?6o~aHhY58Qd#SZ1`&h=O$0n={6L}QiTx^oPKecU2qQw9Z_ml^k+*)1oGdEPET~vaKeT^gp z>j9&*q1A;*jRxGk>sb3uCdbmjEP!va;B+xHY`YO8;b8?&f5hJ_w6BrYje5WF>qK46 zb-EqaoTnx4Y}NXkZqf)x=W>btSD{nuPeuN=h*u zp{|&f)xrn5y89+mEL_{ZVR_~!4B%MTTl2GuL4IfQq)||R zZ#5|Y;^W%F3JBe|QH_YWkynIt9h^O=dB=LQfbna6phF*kw#7+GwUgmW_fvp68K&iT z3(@*91DYI0^6{~QAyFat$k9id`1IFwtr15$Md)TkNshzlsG^l;NOp6Xh$R6hBv4y| zChU*?hC&w~j9u(tOdk@9UQ>Y&->PYqfrP5vy-<^}Q8&K?&H0sWh zXBM3>bCLi&_-=f2Hl1hVhPM&-xiwDF@}pj0~Vfqnq@Efwp*5+A))U!o1SFUzGUl+>y>OZ5YQ> zltGp@yVm;a(2{7wWWMl4R=r}OR?;pV76ZN~&R|blRu!5Vn_=626sPq?V7?|GLjufg zTb&sa0mG(j`#mTvZ6Cu2Mm;G%57NZdl+_U2fkB3L+TX}R5^|@Ylzdx+(+xzFIs;(p zNdEYqvT)3>-A%J%c3>6&HQVA{cE8`QY>j=b(1y0LFKrVlYn?&HZVU-YV_y?;OHz#`dnKtP zx5knr38^c$y1)7T3+Hvtd7kI{d_M2@>~vwF1+PK!-nX+MQ{TxUKX<>X;MKJ6xyczd zkq{VhoU>yLS}W1}hjJ-q_C>VT?K<4B%l)x83^br4xSba?iaB_oJUOCihV5;7 zd7IXnYZJqG1xS%ighb@O#8D9~&GmDF=Ziu>;pL91iRRla3+I%Y|2qcZDs${lzj%Jf z;+R`hx~%B|)B%AKOcc5dm3@L0t9%WvSzFcmGj`yHv_Mnl_uGd2A%UN+TNO&>Trmu0wY<)w39z(JcSlCX4_6@tqwVHyC=Yth`#`wzf{*rCGe|a z9DXM~{?yrlr8&RFcL7PL{2K8sTkb~H>PIxwOde!nRCCC$3Jwd9GNRN}L2Tn7z~g8& zoy`KwmaqC8q=)75$}A*Xe^FS|nJf;5S;S10Fdr`FdGyHWKIG=Y(ihJWlLBOLkFz!& zb~=lN_E;!Y;_iY}>Pk$?z!|RUZv8s_s}<%-gN7KD+8du9U>Ma3pNgqze#JwpspB9w zR1DWNH4;eztVI53Ts)WlU;fDO!>GKrb?{p*(2O8AdmhXA{7CU zH21|HjQI%**I-%P<6QX&n}z-&^dqYCHSY9e-OiOlvxFQHZ0lKz8({@`dJbq+m$J3O z^xBL3#cMp$n@mqTJvE|^&!)NGe?kC>8HI71D|?~`G2yB>L7S$bS|h#G6x}N}2p5Gp zKA2(L@>oqTl4&I8me*f3rFimulCPxYVbED=6OAOs1jBIH)N>{G>|*A+AwTADX3@Ly zZ>kD@0#u~8MrdJSZZh6XLh^n`w%@2ND<9W(FwJHb)#-3;@>;=SS9)E?mU0|w^kmBD z8De>~xUC5AWR#rI#^oBh8y96M;}~dQKV`B2K4VcOJT@X1tX?W89TQ!5&F(Udvd>EJY)-ahLE=oLo2()m6sj zi-VHrg6_&vgZQq1x7^zdZa^3y=HnRWVw#5>x2Ly`kl z3Y(a9MXCiY&y!J`lYp4J$&N{xID^6*=KwO$@SAP1NTr|ow8KH_q^C0Jj?|y|avKR) zgS@nMwrO~^nm0$sU|G6(SrWQ@e<7A@pO(53M?k}~n3C4$)eia;lYAJ8#+VC*<_j6d zqRTA{7jqDoA0`$S{ zi5bZ^y`_NifG1r=iiy=`Wn@{hrDEB|e3J`gpBWABWK_fpQz4R=*i@ysgRg$8Bkg;+ z&dRfW$;0$En#E*sdIY8=xnOKFGc0jvWffy+Qg=Veta&+aVg)-;1h_Um-jp-lx28W$ z;>nq2Z^YMS2FiLa=J^sl%!cdIim>g%%GSgTkFVVJW+-(Ka;bpMIupL-D(J*)eN$xk z<_{ki%PovXxyeF2X^sI1c}sHHk;w6V_EP%_ElhPdM)&<^dHZc~l9ZeDLCEf1q4UT4 zyA|#)#A!^9U9CKV(L0J0oR^N=!zHV7g;L6F97tCJa+fg9-%+AyZu>=UoQLj8Q!!^K z$H$kx@-6FgM}ZL4OEpSWGnXxrG4ozi#=Psx(jKI9QiLaw6OT|LWe!Ve$G<^Jg)Jk3 zOk!vwpi|L3UD&a+uzO*u%y$b$>R{d*G1AO6ePD<%hmimEcm7c?F2@)(Dh*6Xr_zx* zYf?N?!~YYXwZBj}HkUypdBh+^XSnhYIpWRPv{$A<4@Lx*N=w@6_Q{pII{7Hw4FWUg zhHYz640;?kIsv(MV`t=5WpVw~rCq~2!w7wgua=G){Q(_tlQM`Wh8@0)$tc$EJz^}IsIh0MbIrWx85oq_hWWc#7~ zv`+(k+k{NjBYC0`@=zjAu$pO5R7f5`)lOO1JTA(6T_5#3bI^2z@2Igdt?GGBp2Ng^ zQsxU#6G!;OBYyJ#o=34?_e%-Q^DFhuMuv3`mG}mY)FpSQx&SZ)7iyDhNmJNbbfA5z zBlDavw<<3*gGcd2Z6rdm=TW|KO;Ld7a0lP8PmVRMI%kPdsquV6&H#`PVoqN@{E!=+ zjw(|_iF({{YtX1H@CL~>_`+%Q~qy5Zz+=V1r1UZnidhpjz}5 zXRMy;6{6sh+2;(^y5x-YxI()e%~Qxp_mUESdO+Go|m z(Y0f#-`{7tWkEQxnh+Rv`;98XL;jPt3MQzZv#OscUgZ%4k8hc(_j1oM_L-eeRXqo} z_Dk}MbM$O?3zJdTmI#ucGw5loPwGVz|KVFSxIgz1orehx`_iKGu)M64!f@o&%t)vl z$s=0z?ep@%-8z8Gl~#9KRfl@NIf89As_GI~&Q;e;2FeJ}kFq7glVm9l7{&v>kLqpP z1%OL6BC%44MuW9TgJ z{XS!ZbKCFYOV5T(07$7liCo+VHmic67`F(dEXG9blRX4{S6G125C5H=wi}?=%2{Zr zhA9;BWw*16+*<|;ru)Q;l$@s?#w^p2H<-|rhm77~-)lL+f+Mc*J zW9%~^iG$)%GLe}Tfpzx3c;zSz_7M-7YIt=t>z*Sc+%4lLtWUvqC3pDw?o ztJDDWEa{~S+dSoTm?Omt*K&JI(`<~2yq{zZs*@^#tr2p^>#ydq|B{`F#hzWs=O=Y9 zB%~=m;2YLLr0%*hg=Yh~qt3$g&=^yZG$g`tqE$GBp(#*sh}r2L0Noccb#!9&UgThI z=(Mj#8Cp(D^1A-E1Kaq&rZ9(VOW$autBL(v;NPK$?y_n8%1qiutQIvirR`~}(K_Go z!xhWt7<`nPFrR8rgIzuUOq@U({-&B&JN#3zaOc8Jc_n8*iX|(Wy8!PDML)L70aPU% ztXkxL&TcDrWd20I7k!;x9U;ZLH_}_KX=zV`Qb&pjP9L(=%Fo%MF(`IaM&xO%`cF*) zHJf%nJmPBBkTQ2eSXsOH#($Nquq zOx)t!-qcH|i`$|64W>2Did8JLfRstzQF+rbRn?b$!Z>rbxLitAsY?*reqCkj+*`A< zjE#|bm?NfJR>8=##`n(yVKi_0_*YKY?lAjw`Oz?_JLI#WiXE}Buq&(Mg(p;c^8@w` zz3m1^NgHarv3X(3LX!+D#cr|~+uTT34Ni^?ZLn2~}p_@t~hd zs0~mXGug)X7v7W%4J1=u6jDHuHFuTz(#KI=>K-=$3lRO)oDq z1M5v<(y+N1-@<`-O=aF_WOYrb4Ml$AB9ChNpveyk_GM>A;GtMk@*C;U3x{ekc(b7b z^=Z}I0syPcO}%qK4rc1neTAdu5Y`QBq(bz3?$5smNsoWDFX)W0Z~U>_U9_3)X{vE5 zxy<)9fu8U>w!8mX!f{bT1NxMr&)>KEzU~z78?$Tj!@6vRQyJJOwPiO5rbfA?jrGj| z!Y^Q34!=L=#Z3@E1JXcO*A9MkuAOnfq4Q>uT+dIl@yqXObX8t&i^2PLOlq%IK)`F>(=&!46@C zRb-pE!dy8)Lci}4gE5d<6T&~0)xNek4=R~){!V+V;dpXrjhzKJlt9Uc$2f{=Jrb~T1(`BIxCgsf-izxL|)qTJ|GCT(|MK3 zsy;kEXyewCDQZh!L!xeGb0xW13#$-affKF%lZ4U($Dz0oR4BCT-P2|k75N_k-FVi& zAf}9p`{*JAx|$gA1hKw;Tp{65DPo3bjS&1#`;rR;phwye8}U{*&fJ~-u(pYSb;<5X zdh+o7Sr8D|pds_M=*}+TXeb_sEU*Vj+@&YK{<|d3pqg!{AmK1?;M|sm=kvc39@&`Q ztN8G*4=RcCOgr!1chmYu$K@^1k`E=WSzmwpPsZQt|K5M-XuHZbP?LW0ywxzfLEVc@pWjhBhP z?ckuHY>dLEv8Ct`?Yqo&76XsH9MoDrA?f{J?k6>Xz6`bSj#OCVXai0o0He$uKfkOdaKr zyyeA)qcSm0Q{=2DQFR8~d{@O1=QE-Dm@n#OB6$j|`Quwg4zyrol1I!;dv}ePE%^}C zqdQ9`xj^#H34KmKdn2w(!BTNascdApTJ_*uGyybo6-UA{h8}^C?;ILjjSqh9P&3mC zYxrn5boPOqvm(N*f5hW*mC>5srN@gZ=qCW9L*-J{=@pa|L~oY4(5l1vZl)u!Qf}4) zni-g9PA)64rB4^+-$-!0y$3b=b%r7zeEemPa6k=5WkUi0kK)u-V%zleB~xyVg?AQw zzdLLw;uD5pdSZYbehkwi(iu974}N~<)Z-PKKU@faNXQhB7aV=P#^2)t0hQaM`(lX1 zlmVIhofP!|hS|j~H(Rw#YnIN>q;`^le7_$3&F`axzM}e*8X;k`a)9u2vs9v>{$1X4 zoZ-K~bJ_6VIC7n9GRONLHN{JZYF5{O-gA1sSq6w*kvSFIZ)pf<+XM}r2wea3ND~u$ z1#>+l=2cYvh(Pu_U|L?zbrUMcF+%nytBA||d9ioNLd^P2;$oo!Z%_Y+bqT`9qIq@+ z*JUxDxGn5g(G6FY%H13NWs7miT_hV%&hXnfr^;8hE%u(Z(UKRg_eV5c5|{CbB^9Q& z_{~a}LPaF#nn{b%|M>R^GGZM95Jn|+bAd&DS!)Q<$B8ZRNrDL@X*f`EJ|So{DfUvL zfJdHsr(JA`Xw>m1Zr9DJE9^$~hmNP~@-}{OjXyq8gouEJhZZ$1(K19X<+y_Y66}0`~ ziC;Fg17DRyYWMnuYo`}68adC`og|<4a15?I;El=KqJE~jY`X(MReiCeUFB!spPp`6 zICdf@-1P)1z7f~5>5AHr$o3on3l4a>q3>xs+SfK*F_2c~4x>P+Pt7;H#tu)`|MA3# zS^(Q+zc)PCk(1w@0g@$(xj;s+@=uDT@H>zj6EP(3;$AH^C!vi`V8xez?X`~_p3OaW z9)-~%di?^^Mx|(d3vsd$!Pb-OSjVa;SRS~X=2WX;{#Z}q>bFD?57Q17(ir-gr3_ONL1$9!UzZQ*w|CJiwZX0QBPzW1NHRV<0{yac>sA|j@tsF1$`Q} zoBhinsrMqF1w4g(DGU+ppsc@Rf~!!bj9&6zj^9e2B5b#=)8p1+^75PA^$12yG}r1f zY4?Y8*SAKI8Qsdmb@?uCfbux0J=ArE0;M2@f znVAUKwGUgb$ZKfP$C?ig`uI=>5%AkInMCx^e+f$X^Ew>SJjA9Vpw#q+iP5eJ#p(kr zJ!E;+fV)%c79GesAcu1D9Y#L)Ou!eKSF@zm?t5xZ_73>J5bhs z`@*+dy0klY%~tXa3-~;*E${LfQ5u(1Ggo@NOY>EEfh|gZ#T(S@w)eD zTWr1TW_Yh4pDJNIWAf2$HJ89%y7YLg^`)CyE=8!6p8YA-3KFWqzKzF^pB?XK=E`@p z={1ttn2A2$=gD#h;etdTg|Q0Lh!5s*rRz=RDEhpHmL5_*@yDinG!ZTgCqj`z0Cn0> zy$520I4Xi8FhM%L+J7Z6*!utR(vif8R{9H+6yi+QTm-BRTt9ty{HLx^1;|sL*^tpH z-a7a4nyk%_eVMI!UcrHRucd|(Pt_v9J%MNi!!?Wk=r5j#GFxNhA*JCMa}bHYrheZM zR$$-l@gYpTAR_eXq17*@IZQa9i9MY4X)gl;+RXE04mhpZ00XLLZ}Y#Ydmn=|wVk6{ z_8$}SR&8nUSrBB>5m4-9GZcr~81Zm7MNap&`)60j?_}A$Uirw}i)W2rj9O(l7J>G= zZ{Y(U$n<+JYSa%z4H(FyniZx7FUOaKj?bNSasJQ1Oh;Ar^^#Tosh>95T9!c4d22Fb z7LbUBjjf7y_IoTLgsC!0Z(6Sa2n+HF-amv{JZxz64}K!`T((%e20)6IAp=0p;Bwa9 zyr8rg!^Dbf&91@_GKEW9B$`crE?Tac@QukO`RktBpLEZxIrO|t*@&$e&Fv*yvcgQ_ z!c<2z9UAAr=e}(o5F?A&>x+^vx#KOwKk`B7w;LJASv~Vn$*SnRkYi?d6gaGJmedt} zjKq+DiguKLIC3{<9C-j|r0VuK?X{88f6+b)_rbr?;050d@y|1Il9B~&vc3CnO$}aQ zsOnoORY%wsO-5K%#v}UtmMooEpZtaUWnr!1Rw(v7UiPl59IVso>z16(GiSFz=)U7+ zL`_g3Tq0NV^7u)tQce{*Ht&SllP3|I;F*bpm6jp)tGeHyz+S3=P{@T?3gY+ZoZ_p% zgZ|^Y?x;CG>Ove>?I`lzSsk|R#J9IK9ATn^ zd!)#R3g}x;neG{!vPv|gp0L)%v0I!bIo-kTepBvZLgeYm`|x9C2Is9Sj9%M5WZ4Oc zq3+2e^Oq@fPX}dkpfjNtxkQViH~@NnOY!Jtwscf>(7Mh{r@{P+fmoJW_KL|u!j=%} zWYIqGsRlTnDHKyh4Z3Wt_s*068QEo&lY|eMww}kt?(g?=%I&?;qM{3%LiI$_VU+#W$rA?hl<%CZHz=5R#gJ`hwS0K3;Z_}+o9@BvH z0l#+juHIc@XFAIs-ko`r^Nz`qc~5?&?$?fYXoYj3BSJOr&{jbuY^Ub=?=Zrt8LB;X zDojE#Nq0omC>alS;#tR#z(E*`4t6c*Y%6h0qh`(gas0x|*2EIUGgFfM@h5cRz(qau zsAJ%gYeT3=d-5f!*{V8yKZ_2B9~u9QK3VZ9xtpLt9>U}Ft^&$G5m>Fd(y!&pepPzn ze>jtcrA_~MTj_hvK4}XROSFrMD4TL%sTr3|E8Dz8+OmjR>CY+I$DvjQ6v-W6{~{SjPz6;D<`>j7|8r))vUqyYipURo){I=K1M z`mJ+{n*B6_v;Ja`g7Y<(~Yf_IO>`l36%GFk4xTe-MrqiOm;HYlV;eo*e5L@JA?CIajWd~9T|b>XVrnF zvz=Zt@AB)r!)y0wdIcxZMlF#nhkfJOw8H8a;Qr)I&7%O|<1W~6Q z?B&qr0;v5vgN2yt-ZZ1twUPr5f}vAZva#{K3*rq%ok-n1KdP&u zGqPM&DkVX$|1HvU559bX;6DS_Hb;^uAWgB9vqo^5AyR}64&Uu)QLpOo4RgVJMYurR zhb`+Ir+z|+2RrTA(--{agoYm>wMOT?)S=VJrg1ys7 zhrwOQsOHfn}wA?EH{zy%-;{C+eH14o^|_9Nn|*ZS6IvZ6SiN2>>x0JA4Q%w z=#|kG=*4)w!zY>FkT*)&s&@JF5hA*T&jhlA#r^-b<13O~+3dR%cRM;#o20x_-)iGL zMZ;bsYTd@nl>Z}wS(jfm?KUGM6*@w4Tj$T~kt9n}9RqtG7>A@-o)_s3_mK^j$sT`i z{qZ*RuLv#sC_Tz@`S;AN;w+$;j=Z~aw?HWd9Mfc?#bnd{Oa?fhVk%J7AdhQ+cht)s zT8ShySjV=LOq(P{TlA8DEKtX8E7~;PA)lbVtzgjpnG?q!&wxuBe`)FY_nG+{nQ85z zk^dNuO|rE@iJZB!^~yJ^3T*TjXByipllAYzn&bOU+qmGIXlg|RbId^7H~v)9=_%d^ zkBZOwAzD`AING*Ic^_Dhd_d>9rpK2T-krRwNJ)GJ%$z2=W^3HuVIWkqckcCcch+;f zyt~;P&rVT1OZ6j0l9eVY7+oZLF)}J-To8_hwaDn=VXn~GL)e?^$ zS=ehWL3Q1FnjA?Ye8@$?9A~YOu_T>_uRjYkHNgd2PH|6qpA7 zQZMVkA8OV}HbRJ@ypAbg*=JJKMXg7P}ROH z*FOBx{-vpj;-7rA;%c0Hq(gPtW>M@Yz26sGYXfXKS6x^;d2xhYR5Q>l^JvGS}=ji#|?yDcYW~?KOpz zig&YXB^KKTyx#>d0?QvJ9W=Xo?_cwt_-#$Ro7KZIvj*dzmCnK**5ZC`UHo(PbH5^m z4p93}`}N{iqOOVb@Bz%T%upoh;0dI?U8S-atipCo-Y#Qjx!*kZ@{=8v1?w5!WWTr3 zRU{xQC(f@EA+Uw7dc#cxEeQ9t{tG-?`=Q6#iH`Q5UEk_lELAIAvzxi+b$G%Zi%Vap zTta|tB$=k7bfVwNhYxETfgWmpwQ6%l%yR;()o|F{A(Hp8C3|yzYfN>v{FN)eO--K$ zX-=v)2FG{(I3=P7h-sQ4n>+hEtSa~~0wxVecNklF1Bkc-vGhRe+X-MlCDUJ{lMP3j!0&rpe0=U;mKpnG zqXR`4>~)@@aB^hBbv#p?Ci5Z)$iS3U;c&6RpX3KSIW>?5{f29&gyi~B}^)0 zBt&+IoCaAr=!VX;giA-CLMB*r2d7?tsu#e!Xb926i6<-TZ^-S@K&FBM-G0gtA^6S{ z^x>lNX4`v{eiWk*t+aa#_Q z`z=w1u*dhniY2;pVda_>+?O7fO&Gl0VvLsT@1xr7*;e3{{W%nta>n<_!TC9YQ*8+H zjzblLQmLqG$G<{a*lBSU8;EA|{C7+7+^`1Y#QV%3)yszewHzkXe`z~6z7M1I| z?q-b7{At)dd|@<@(yKOnLsgePX*IaA7cTE>m$|Dl;G#=wa(D93P2Pj@HgGN`!V`1; zMaQnn{;}@H{!}X#FX7|TSud_Inb>Idocio2i^F(BDEQ0nIf#*cBo=-`A6KNX`ulfE4Q2f z2vAtSV^N+Zj~3-|bUao(5Y>h*Y^W%xOWgnaG)e0Bx+D@Vo=u*ZUi=phST!Lo5Us&3{_9Jd*$@1&ZzkeZfAOQ=aD_=@3*&oir_YNxqJU|#J*=TfY zXC-v}%L+Au|d zGUqH4tZ&?59?+BgR%S(%9aaCiEKvyKFz>#cUi)=%A9JPVyNQzXknX^VaRA^>2J!%s z1ug|bO+I{1d!n!>-}aQ$QeHE|jwgORMvq`+lCzm`V8Au-BGEZcR<52qLz^?x`LvQi zBy||Y=`T|>U|J+QkL$+b;mh=GX#qm)^eHhyas(dOw_Tr{f!|tAYgn-1NjfgRav&6e zaCsJ~2ZMCWmM%G`+lVfdYKMuUujfH#*d!2VD|07gGd&jC8-X&Szu<_laAxm3)@`c+ z;;?d%Yv%*9$U`3C)_gno7I6>UeuHz0ufiQ;+PWraIN9{&cgShj&(d@cFI)md4SzU7 z7Gi{7zchjVZ)eR5-0*E_xtW+!$Xg|=fm^_mSa#3O3pL*#~HTVAOyDI%Z^6KvvS!~q>*|J&2> zaPDGh67WgiSQ~^O^@z8Yc_GptLQm;md6b*`)$K1eL|;m0zd-dx&C5?6AuYGGTA=QK5!B^k4z&&qvYH)(H3r?G+C+zgX9~^l*X;@i!ML{BBXi)sk z_ZHs2GqXPm_a-QNIR1t8^lu~R$P4Wpm?OlN2m5(zgaEUUEQO_AK+Gjyp`}&j;BY{s0lpjMX%NiAJow6zC_v~H~%ZF?P`rur_GuNFI>TXFD)5eq$9kj(7y;7|p z@WR-q>$LG1cJJ6-b*|uB7^HVmAy3Up#?bd{HXQ{q6{onh3swP3k{q7dE|={Z_-`yk zQ@8a^_p>5mF04c?g;tbvE|eYVfXRjP?VO9g(;QFLDOBr$=n0Hr&zKl~rN3KcvmiXJ zH1yGqQ8-cf{)6Hp1;_<(M?{_JOGERgpPYutG?8*+c3M zJPeTJ3aBUHc=G%->g5FOP;=hX7lOSZki_9x(J&A(dk!@?ttar1(v^>XE@|-HRW}gT zM4mG5cmAmPdhT*nu)%$o34q$O1cP{3*pm()Iv1>$yKBF9_3#>?;EvpG-x`e>bR@#X zQECsGqYE2-C)Ls9PM-6v0)(4(#rk{g841F3Z99;1vexCX;nEzVts?7Gj(xC|U}H(Ohj}6&*e?kxkPLcN zns~(~rHc1z{81NuR3Z(pLpyaJq)-yn>_U8=n6SyxOqlwGzc|Mi3&@W6sx^$&mFovj z5aGROj)B@4_t1^J#}4OTaMA2Vs~x1FXbJv|HQ%T`RM=Uup;?t;2166#yl$8I-c_BCK*j-sWm+mvvTWA1!s9KD)%qHoEQPWwKCY`MY?~r54CgBi?SC{12cj1lx@x zagpc{bWG*fZA44i6HPXdXME5F{RCf{k2YgWikx}nw8rXFbCl~kn9Rax<%wW>rla&L zM&p>`HTHI?AA@VxwWqby9?dB{OU;kfd+CH@R7 z<9pbgoQ%p(Q1~ZDx5_yFkyh9<&Lhna2Gv~BSrm|g3RM6NOMc(Q!TufVPG)zVK zLcZfFT4jbXeO%d_pNSinzUPwWT+S6uW8X@#^O8`I3ZpfydMV`@1%ROII zn8@!?m6j){sf^rixqh$xnKrtC*FtaQbxYo(kTRa9&Gwk&UdnEDzAj9YD+W4c=f6XEAM171i}8mGf3==4F<_C1sVE z9`pvlO5=9zK;_y)oB%W4y!^z!Xy;3Ou?AGvlH1%37@)QYZgHQBHzE)O>Af5ZdHa3i zze~Gr%VYlE_yN!oKYog7^Jj$4dWwINb_r!ys8^Q1#fafbOqM0-HvkZ}IYp~T zq7WSB^LB4M?Pt8lv9CVEzc)AIIZS~{w3@-M1Z$#^2c8x{IlJ?SkY$FmRKq^1+*>pI z<#(`z-HoW=xSf?MQkO6Lx9t1FSUhJg6tN7V%+$|y9C>!(_JpDo5<33%pO+NL-=KIU zSIt;m`E~gbQz+0=-B^ou+iJ|F_B8>?k07Q2ZTmllDei{1u6v_3?t%_XocQK_ZsEK| zB1sg~OGAjokI(*g-};*mI{_4E|G7>71Bmyj*F>@r@cu+?BP)mWADD~XWZ6-?*ONjX z_}4YwmYN9=e6V21eMK}&twQDgxd;H>Do8!2Hw*dJF5QG!B1(WmfGl~(`$hnOyikft z8;I0k7E;kPA)SH-1?v2d79aVCWJ|sbz!0?lv!ZC=RDi)enKWS_r4JM$o9>2sF?mFh z0Rq-hv*{5BkZ@=$oHRsOH2uflSC$1Fg0mq;8vKLd{Vvk&_F!&*==%#7}B!>)()}c5qeIu>+w4c z*vgmxT5z==zcH4{#~%^iTJBLC`Ectqu=oze{Z z$$IV1sk2t@Jekk>1Fe#C-trcN79XMd+_k!p1z07~a{z$vd6t}$M7^8g&2!33I(Yd8 zuNelTXxA;p8bvBlU=P}Q!i!47=rWQpR@u}Ajd1X*8t}?c|IOkU&Hf$qCTy!F?c8|RBIHk_Tw4c5vf+#5Q zwY(V?4%{>V3LWLL!b`g*qNIg>T)#Aj`kd+YEHo$HGhk`~(p0k&x@?6Zr;>Tyy%}8g zy2GF|EFV@K|6~wJ>?dzi)mF24=2GLnoPaOs84u@Y>?eE<%#?lMhJE67GctMq<=egG zK~FrS;mD=ivNj`Gz&<75W@g+Kr4%?;@SBLl6+#q67mSW3G2kT{u-)jDDKels3Uak8 z-px8qMr)@u!|nE#_o^l{8q2|4x2Yav!)baKi$T#ghlPi5L6j_f<)UoL z!lXL<JD}wRNRAxf|9lYHqIXD*)L*PVsHswtD?@l|AGPVSsJq^1y=>b<0vAN_HrCEYL#3zMrj7D@S@PwcgaYb53$mrb-r<1~g+%j0IDOW;f$FJMlDAK> zzvEt$V@pR)#+pBaqZT&U+wdlG?1kv$%66piHl^Al%2#!ZZ}SG~t<*;0Q(#qN95)IhfMmT0K;F};tZ}*awCm~Figk%{17xg=^EWrw z^*ExPf&a5^B#4RWq_&y(XW93;y2iZT`mH>0?8~G;cmG%IsL;zFcOuVi8vJ8oT=_<_ zA@?PEA@NFtiS^abjkVc)!_s}{onIqnDK++hEX_V2C@vvDO!#|wihV*fr~h2#4xjDmE=R2^e#PZCR4|i4;ldjk{q@Hd~n3&X5U=2EQGts-H-t)CeXl&vY$>D z#g?Tpr1hn(bik*<$S1W=NujnsoAuk4MSr34O6{e5#=)JY>EC(xU3LzPJT(leQY=n9 zX!(`&qyL$A-2NBl-f3*?c0|{`I?jT%TQmBOlzhC*@IV4KY{~7ZC!COIdZ%D8(=&vx z82CkCYh)Kl-NRlXv}O*eI-ZPDE*$bzJAbv1yl8n{_1=S&7L`?x+2pU5NDmLaBc6I6 z4_6#HmG#pVCEUOp1((w9$Zyzk=Z+A*0#X&dRj*yQZvu7rb>9B-w&$)9BY$d~Qn}p_ zCbOz&fj(icB)8g+Y4HrbyexS=>l%W2DZ(h-IbI6%qPL>vH6D%30F$M#F^k|=2yM42 z#Xp)h^A3-(7Tx)*p0S^FulOF}!KWlRBv}{M8S1yL(KVzt7YbxRV88Y0vh{s-Mn}tp zje#2nm_`?wrWSsS^yweeo5~hl0yT0q^Zycv zl#mJ@FfcmqNXk$2CzQ=|F-YB7#%q~Uw{BOLv^fhHV?`^_n%(5{DW1@4PDq`wKeMFS zV=3*ohvPZY*fgRJI*z-Qg^mS5Ci78`vA7cBkUubL4!nLmQzk zUeDg7CBR>=yxse9Fn#vmv-wf0%242Oy{2Yimw;qd_UAok?pHSh_`ln8Tnn7n2N;~P z0sQo9m`mT`@*lu*ELcAV3%1-GNu?yOXp)!Ta~6R?bTps`CS$Ww+X?@fEY>xN4ybY2_99Mz=>A@ zlih)M6pMY6#PDKIk^@Id(KhlGYQ^0H!6ZiAj5V1SszE&>tY+?T7cV*&$1qX8x{Z!0 zeMY+l<5QYw<0VbQkRb3 zYOJ1~Byj#iy23P`a?}^Rx*!ULB!f?WkDcw+3C1(ir-+xu(hL|OQrQ(Ux&hAWtnxr{ zV1q<)pIO1@1qVV%P;-So|M`G8ww%&u(VcRm?z(fuxPeIRc^1z1%&!e8eI2R!!q7>e zXN6js-vvk}QtRPC9U3_wRRLvhmVADNS5^wcr0*0!o-U6cb^vM4Wy0(<8+vq}nT=*DnFY?zdSd-q2J~PR=d67*+ z6m(GV#!nlqlYb>62Lk<;I@2tj0>ZV(i*}qj7?T1DXdi1R2cMqQw);X3Ty=*}J_`sg zq}6Ud#*$^Iv@vCEnbgJZTPs~crEo<6YnpY1n!0#Ht)-Sa>Ry@4dQU?5N zSz)uCPNDXeZbM{~cPHRKG{~G` zjHx5pQy1iHLckF~|NR6dnXbg4;a;ry+G07J*}*oy{*_OBu1FB6WG@E7#*lZ!e-f9c z7nuf5Nk0{gA81vs)h1na{!kJnf!}G8{WSO0KKKupGjv1Sk+?1PMxLsHj)n}|`zKRj z^>C4&&5~wVqZK!uI8$ACLa{JdxqrBw(}2y=+AvI1kZ&~?+Ew1_-)TH+xetl8wCl8r zT&Lv1-IxgA)8EPsGFJ!VBYIY{s-pt{1y_T>TM}giC$*E$8GETSKB>P6w#wmh9VWd` z<7@4WDe_sBMSAldR7D|uMyAwL&0Cgq_LfCLB5sdRL9^A&b{I?K_MECvu1g>4bfmjT zJ8TVHqMYC3=WnQHD|v&pC3_xCsbz?|+0BbnQ1<|_tVwP9z72_)TYihO`YJ=I9Bh5X zW={tCEj&zer9D~nhN%$u9mxm3?aDFOuAAzTIA9T;p58t5z{v7YPle7WTweX%*r&0# zAGdZSXTBbhJD`ZLt9OR8ToEMZwI}h1gz~UNNx%z%7m+o?=YY%EIS@6ka+xqamLmb} zgP(tn6WO`d6!)zx|gx-ei}Cnohrsf9PITW4GY;OCQVHdQ&LYCWl-(*mq9mbtK|m&?=E z%wyY3+Or7kP|KYr?~MHI<54})a%|U}Cb-Oewz4yOvBoI>(YAU3{Y>&TlNzda zxt~5Zk$D8Uph=xou6jfcW-L4@Q05#_EZ;cppFfUCI}X#=^xL#tKQ7Q zj$yc)n)CPobTBYed6jaSApW#<;x%SEfU1LV<@R0PG9G;+zAml?<`4l@iTKMFtidsG zYry}}JniftN3Vh9oPaNy<(b5s)MI+t&gix%Ml4bD3?-OupaGP-|+#_D~d zS!=^BxOLZQqf(70!*_05cb|D-;z6}=o7X$g+14BJW~pFTC?;E^!rv`(jY+WzI!QEE zq}u!|3^*7*w{ZkkYmL}=^JQ@|{7328Kk?1Ihymd9M21O<93E z^x`reM*wqM-f%wK)E9@MJMSm?w_V;TYvyrG3}}O;d_^Dyev6t80~9K+ZsK7SqO@)# zk?`-Rb;cNN!+U4WJYn0?i)RIfp_9+%Q0TQSx3&tP#1V^9MT)!TEngY2r&MFk@tI(Y z`M$=nxyWbmJM-OV69#Jj-qFf}2NU427e5NX7eDO^Ms2zp)w*skfSr*p&E(#_s&JWx z>1j>ZV{iKfVk9X1kVG3eG2m1Rvg{EgYo*!bJbhv{@_}9)3@$RAw!Q0Olo$fJiq!_Pkg@Nq`iY z_9_~f9dBRu12{GUe7Sny`P9a)pW1!>;Jecd*~yi zJNSE9Yg5$v$9slD4z&*h1CWDEJppp9EbV5=FMVFHLMlX7EnMqZ$Pt|-psdz8&~WN% zTp54BTnh4^S!N~!?nJD*W7Kjyk>$M}bB*C)9&f6)RB%It%$HPCheB&|= z67k7TUF>`3hy&5~a4SY65u@M#6$X+}gDa8hwI1a_)yLwj_?--nR;j6p%DQ-%Z8|Yb z5|Ht5QtfMpOE36a-Ik5Hl8^LVx1|0jLt2#EG^b5-R+pkVGk+j$R&N&cPEhYP@J-ms zX6gGy^8Zj)-!i>`ozfjYsSosJ|9Dx49E-1Mb#5hpYY&uX(VGn5X6@RQBPNyC654SUJ*&(cexHyy+_Yv z>OR>XR^o52fnqA!fB&;LBE7pD^#Aq!mu}~^VK!}b60zF&vEchnlECA@0F;`uA~GBd zlHFk*xjXx-lJZRF*>bfZOV{mgFK|CUlBp^Elr{7|$$=0UM zrH)?c_)=cAM?B<2$2V@{%dWn&%o1%keyAvtjUFb(A$fN7~Q>~t#&F;LM`=W0C zXqBqV&V98i`IeXWG}>DQ;s+pbc^hkTN-c>k1487-C`d%q6yGVfW^Bvyf{9BpcxXIv zd-khLFr@y+WhxSMEuJ+Wdh{b-YyMGx>ra5Mhj7eW{DaOJ_Zt@8-QS(6<8EQ3GTW{M~w-+gC zrafD@`s=Y7=k)S&TP|f?Y&QLRXcIm{6*5CYkNd%sXoP&8TL*-g(rt*_49PC<+BNc8 z?W+S06j>wpymmf16vxk=duz!ezZbhLC7Ft6w6`=SM?yj+xn<*J zeYQ3iA9K}rAkK*{LFxH&ugEHBCqeQwiEGwQ^1F{ewKx=5n^D?v4*zoozT4S(7c09y z$YFn?&i2N_0>TwX;(@ENz-igs;)}NfWm+av7mOt-V-$dbk>2+87NyPf)JeIku~toH z(NCYB$}buELFtJI&7u*Gf&dXd&=C44w<%9G@ExJD!m`|Gn#%+zV6ohpp{NA;-v2%j1Au zmVGK@cPvO&g44n`!RzWA+A zg{9?LZq;T}U9JU;$X#^*VgzUonc#2sai&%P+d;;!Qh2|4|J{6(y+;Rf5NUs=M-4!f z$CKuWl)0?I?T63nIK44*^&XMSvFo)=qeR7^KD}zb>bvr&B*~^jy1Yu$WG#{vs54_qNWy!|H8+$x;&&JH#$cP3Axlkni7WvdcbxKF9L&D6Qqj|*lvu1Ky zKAD9Q`!X*V9l5;-!&mWx`gWeX-_zuxmVO3E`W+=BJ70}jXa#ob8Ddnf^9mJ`_J{y3i z1iM*mn0?Ac^^9l@#y=_+My@no0pKwGTTT72{F1BQF+~3@Q8NGOZ9l<$qRramzVu&o z?Tncg@q5@gMV;c&LF)(lECqxpj&Lq0mv`ijQ%mtt)53YHUM=U?sA9^0wSX6lIJ#hH zsX&I+NGj2MzhMBroIODOoN*o&3j&H=LyW(7hR8Wum(n0sdFQce1bp}S#+|HJj@`}G z&ewh|MtT%}PiCFeIjI>Kg<^bCUmuYq6sspGPlSbk4%@k7qcv=nvK7ika_KiNHhan|hV*ob&mmVE*DIyV0*&$-_vf5;E@pApoV^s9Ej+0~0LDMF{ zk@lW&X*!08T=eq~(+!^c1`~zj5S)|;U|R2N_SNlEr`$!v%HBwsrVV(Gp)D`1c_FR);7M&gP-3E0opLS(U zJXJCSXmmU=sp>4mmmWDR`ZpYd8QS1r9mf(E!0cngq(i;1wp10e=Wk@WT`-##nfCJu zYVC9$T@v6XkzE=H3tsJ3wP_d)v_N75|9SgkY0N4Yu$t!z;|trP&^Ik}3lpx<=A`kz zRh_S7uHBeiqxMdjFNIA)2#dK@W8ykTRek?W#aw(<7Ly&Lo! zrNc1P*AMZ=wUGYt3@anKaTj*EK2Je2>*j+LZcxgQS+)=ktw!I%NP%^#%)$rI;hP!U zn^^(T#A{PpMPWJmOhe{ zHABrq4`Cw*$>=QO&=Pq`x1PsRsn~;#P^>PqF%5{Tiy=c!*_B;>nZ|UrIkc)^IpZrf z!*aIpxjP3!0?auSKZ=#shZ3TpLQJ{lwFezx+T^$rngnjj0Ue411k$bPlX#4TWF`9U zg0zf5Qz>(^;fw@2_c5WwS@ktnCM~ULs<16ro=P6Ud8BF%tdxmj3d(=93SVj2hA7VK zrqa?aWXpPIiQSU+MUjoNhrn*ys+`J#zFg3)pYr;QC)%RY2J}O~w`qfw1_ASh6veNX zy`8@=3hnEp@-tH=>ZCsNN2PKU%GV~_#euy|8=En`I=&JJj*d0_pzD7L7(#4I&l zI#`1i%1dDb-{D5MUA@qx=8af5gQBrFt3+@wEm@=z~4ykDE@Secr zcno$|WgHQ6&kM8?|C;6I$jFCLp#G~W!5n=V)IeT(Q6#%tiIaCxuLX_|ZF@SVChcUn zIdY~dl4Zq)qbdqDm7}1reWd|t#ndV}(G#2xJ^M>d&p=+cZKm|STIHF4=5iY|x$w?~)Sj^dOMBU#~e2kvi0Ls?yPJWBO8tMH(0 zo2p$h`o`mY<)ZgKP|EO-y4kF%p;D4+P+b=wM$e!OOhI=A&|nZqzB^vL(Cw_7BTB9r z_&0DfGoz>_E5`cji~{zT=S@EDb|II;smawJa!<8#F?@DsX@Ql?YoC&oBL5nLYR$$p z$-;P5a*Ah#)rOhJ9g{K7D$Us~Apn9~Rrp0(?=nE0Ks#MFvx))G&#xS@+;I0|7db(P zSKsmHz*T5tw&QT40oE1)aDVLWQis2MSS^3pbnZK%R6{YY) z_6v2a;z6JR0r@<78U|j~`&b-_fb^qr197`6RXg#R?d?(7lkpvlXcRh(wRM1L*CokD zdIUVTczz3Fe9bhXOIl)#wv@C=K2#0-e1N`yO_Grg=)p4LQ}le0MyYwqxJ-r`Sf{ds z8*v>Sp2wHmW)g3f|GWYQOQ#9121d&)esT^(6nh-c*$dUkPO~8X@R#cuFgyhwji;oe z$`M3$>ZtWL>BtBcHKGi{LOhJh&oIhB(xMCNy5}(yGqIKMxfGv-n zqJ75Lze0=+EOwsCnm#|HM#U7p=XiPK?JgdCZ^-nY`E%`#tEJVu;`y{gDjvxmG-VPy@54E=r?IUyGPq^+beL)PCC~>3s-b zYjilV`Mp~kyDukN=|Kb8Th=Z2;!Bxih<+YsQHbK?qBU#%jVUVk~xx_>ksSR#MVC z0G^hnL+bd4c1gZjeLnk<*{`FI}VkG0`yP-zsCf9m9@7Pmu8nm@9E~$vEbQAUcK-LaXr0ensvzVa%2YNz&;-J!j3)UTwQ z`$*3{N(=VMZZlcGuph9{8A|(<0(qd{N;UPIA_pH#mrfg6Myn(gIky6n{~?l zq>Kzqm5iYn5OodpI0VYl!pmvPgdwk#Pn3x|Nk5$^h^8$-Y{uMifPw4vlJ>FMtQ-(a zDrRbOdUvk%p0#8@u5eNMsUW3&Ol8{bh{JaR#WgK`X`*g`$&d#%D7BNZVqPj!lcXyU z0v*Pz_WOB@3rgi0tkM2QYelHris>R`tMFu)SD4s)%&b#prYWEw&;*@s4CSlZ^(`HR zlli}Pn@(~YM=osG7zC7u6ctm-Bb%!6?FNHiE6h@J)*@KyLk*SksSDAaGuv-65hm$P zs3bcMruI(q0QPBT{#pg={>1%hvFtTIU?ftxjmMc8==oBbb~Q|;=-(k?EOyXZx$Aru zZ&gRH;Az)JU{Z#Oj$?5nS@iQL?+^Kr@foj|R&uw_Uniw@Va-JGP?062Snuj}on64P zVj?TAE^@(AQY=Xp+*K}a)y40D*%>#>?mZ&?Q^L+EBkSmi8ap*RS_1m%RqRc@Vh{9& zKzN!r-DW8*KY0p|2aeOYkX3g2Uz79-we$M+SDvV;hKyD5;WhP76h*%-hrGdI@)U2% z;zO76Qx#F|wcNFv=~mY@!YQhD27C4rSRYQysmgGda=ZeIvw@xm57sk_vL8D6?xDR) zH*Rx}diFpvtw`9H)q0wB)Q>c62C=bFV+mcn!g&{1<$nM#RB8K#>aGO#R7qvmp8E1O zeCwIATV_g=%ZA?9skTcvub3UQHu>DznwHPahmN0_3A%4;tPCO!c{JdjlIr#+33J%iun0-y8lRPso1{z+u%wsFfZp>t6mrlWDAX3?^XwNNb}~m{8WEy_EM| zrNC4*pvkPsJ-556wa5NO#Rq-fKo$Vc7v6&aiClV&;!ZRLQ#pWg4+Y@61s9S0;FQNc zsys379LF|&Re|x$C&LVZS=3ZI>P`kKGRtN1ays{0w%;+gNG_IrNwQoK^_{JPM;`)F z`v+q&R%^x=)?Y?WIbA=7Zdll6;g1dYqHe1!rq zazQ=6q(c+hxWFpz6I5r{J9!PI+rM%j)*k6oB|gyi7O?aJk?deJQ0PpNMJL^O`TEO0 z$piq95%+u6e#HSanio%E@mq8vGzyUwMeDIWkaz&8B=>*kCs#QXhcSf#6;xqH$M0Y9 z51BNGrlo{Ud8pp}BmHFSTXFc*$D5jrfWx3r<-V|RA&O%3Km2w1we?yZmi0n)$YcD%#CZu}-mN3o4lrf?oap2~ak4asxM3F-@?nr>4Doz5%WE9n5zScG^pZXzkjovOE{a$Nk z`SJ|q(aGIFH~}Em-gAp1L3TDp5Cg_zk(O0YU$^E{#c&?oSq(%FEtH7X7#b3Ddxl4l z-Q74zhgc)NytTwtozd1{)f%3jB3^C(kQ>+ z0F8=nE906v4??We57FASYvK;gvP}`y+{19~6<{bNNPyg=O1zO#Mric&VekKTf`(Sh zv8Dab>p&nk23>UhF@YN21pzpoqs*bzZ`X|~i0M%M!as>S`8HK!&^Y|M*F@V9_fie1 zTt-4o1|dJyJgsDrxE>^W0v2`}9gHiRJwfE{^CTkmDq2(IdHv^6v9SN)!vryyRrZL z?++9VhqwC8+J7cR;vzd#>Zve>FQyM3sO449; zWS{*p*XcJafF9JVi`|rw?(vqI8@oUE-B?XW0%fT3`B-}yfXpKGmkXn&H=`9U*8LiL zEpgX>!Vk$5guS|`&dNk%69t9hT{KDZ!XVR-YAnbL3~?rT(e&jiglEL;I%wmcJ-RQ_T9s?c}{b zc+=J$cS8w~0~Sn)55qtk;DYja8Op2;DkslW2mcV-J7kIE<3SpLtMnP}8+X#*@8HFO zBA{(9mTTb>8AZlp?Z?xG{104rI#@_WZhvAUZ9h*-&XHrJIt9(B!>i6```Tfd?z#YS zFfLneI&oNK6Dc_s;V?RF^R!M9E*%gh-7=8C*OLLOej}i+?@Sc;rwf*x&E>@psTulW;{Z0$P1BqfKrML55t(43K#VzJ^ z*QDiv^1aW1e8QU!IoA_(&#;a5zu)PYx&^T2BP?*&-Hej?r+1fcakl@Re7{C|zuH&Q z#-2ackK`*#6b%qy+P;E@)d4`*MN_r`5xYMqGsI%>7TnK#JDUkfdd9u-5#Cu__S};ZZJF7 z&y~%aA^2YN$mUuip*k7xJ%0A`=qEK7(O(;~vAfnz=@w3+@_A&Cib~ZG12eNk+UdTe zlz$-DC;B|~z~A)whMGK+?^)|Cp`T&?QLM8FRS@(G1qO6uP)S z^s>vQ+OFBH{ZUIK=qLt+(*d8t|A3E)7FY7Q2QY$P&Jvtv*~={l^F{yN4Em{CF2bEI zRR+8L7!^5on|3?p#wSpVa#7VVg_>}2U$3z znRvspr+?`qP+5qs!Tn&!D?5YBKukUx-CZ0X25((9y8jh-LpIh`LU8jKNF53PT({YvyM2KNb8`J@0pmM2p`t?anV99gP5Yh z%eb-OtdN>A)$rG+Z%T z$ISYBo~}xkg>n^UI3`WcsZ@m0G$>pow)(ZM7i8(4`uaY1LSy>qVaPDQqUNf0^u(b; z1i?NdjNdYk0hK8>Un^hluQYp6?_^?dez!#ZM?vrYVwa-7_^4YPtUqnfA&MW@i$1Ph zakocEIDzDDrF_^gFzJ7+I;ZWo{=QpofIUr6>I@H(AI=1OJz|0`@ z0dbm&Ei`)~qWJwpbQ8>GzV9VV)0%d@v0Vp4{3@2%kDm^eYK2Fhb+gmdG6|+TQdXVC z>BuUagU>nzIbnEuf>dd?#UaaF*P8e!YYV+tm!8G#)>8*Z)O{?8&q7MIn}=)SfoI7u zjT8_=+uY+oI*C3`Q>D+|y$(*R+m5Sq#fGj;aE3W-R*&R6VC6EAK&{wVGw)DW@-{8x z+@?+d{zSTW?I6Mctc@tu^KkpH93*a6&ZH@Sv?ekP;lL(SNJ;2D4VQIG@69@ZNZEqJ zE>|NybrUsw0vZqk;#|luS9)JVkjbvrTbs04_Oa{sKFfVNhP{XPk`*ow@1pfj9{DiQ zo=7L1n&?42CD!BJYF}Aa)wx#KJ%4`y)baRlX~N8HXu5izw$IbEQti$t%VS11puh~# zgFY7`r(OQtsQd?_LV?sjWKQ`Z2`4U``R4qnz@g@}qoIe^fZqw2$)S_W8qC#d>Dkrp zwiFi+bDGkH21J=mRioXhb=S3xT11D6$P3_Nuo%(CSBC9rK6 z-%C3Fv&u)L;`4?yC^Rg{$6HBw-O_}dc z>p+hKI~8g?O*HIuSfS2_-s>&ii@ID`zXSI=AE(|w(jm}D?^mGcxqgMUG5Zd@ZTjtK zcME74FbFcgg$ePIuDJjHfF@H&a82GpdA06phFA)M1BNi>TcWLy4Nk%Y2D|v1U`dCG z;zXUT-~bm-lv1{2pkcbrNxu8cw4KcvNRVqm?ivScpd~*pseE?U_MYt}Ll|HHYsTsU z25_>i;^}2N>!~`gE!=U8L|I&ws0;S7d(lg^;i_(~c%p_#*(i>X+8sXu+kmKY(A17( zuRcx9cea;jQ2MKMZO23moyfV~R=5N8{ez-vZH-w~AUhexRwnYg)#=x^(eyOCSF|bX zz2$GTdlGdQ=ACA>ce%u#sv?>tcCyGD73&V?cnf|d9=L_(YV16T==L{74{Nb6Au4n2 zYI)H*LWfkFYtA|r8EbChRSgb^O|Wh7NOd{{+cz#ocOkSx!?n#vdg&+70XLi?z2@50 zmxLYNhCzd~9Tf+H$5a1Kc_Dg7JlAmWl zH`uN0<~NXxyy@mM?B<{xcB`#o!GSuebn%<3y_?3L?gcBK2qV3C^>SgIu9aFv&7t!` z*xdI5nu+Et)iA`|pE5G){gF;1(3s!0h6E6w4Z!&hw<}}!`n@2Wai$=`jr3NCnxShw z^es5^Ju8+*gOPQV6$hs^hwA~Q_HJ&UztPH@)okyof5u4lxr2>u;M~Cf6RWe`U|nc2 zs^WmpcH^MdJvx?sgEp1ERy$$Shh|1k_@PPC-z0RlTh$GD4)nPu@?6T-LB|7W67F@I z@Y>8@nzy1)&XQ~Gj0{+l+sSx(e)s_f0winNX{Joixe0A2UteeeeB`_b$aXN3%f^H~ zKF**|9WeYmqk?XM==|X~^x#q!_0sz5v}x<^#iZcvRR3r=*&053ngrtzPl+2$E6cg6 zwi%vg{Xil-AjDA8(Kq=)qKB6Em*6>Mj_tg8vhyud9gTU%L$Erv@+Ose^u?1|aDgQ} z&E`CVpmY7c1>A4l)9cO|FUzWeP7jZ-)%)J*ozgnFPc#gDgN0v7CT}#d(K7q!HqwQ{RYX;y5hG22*i z``}A~t)EC&=d=SgH~5s1MR@nc+N#UCtIzwUv;gIPsYRoWUPK2o@l7uHv?6O}I>+{d zX(Rc2_w6uW8N_YujZ+62tKBc@N@7hzzV{je9}la4xD5-ILh3CXy>!&NCv{q@g5($|n6Gvc|=?kC=S~+ksomSva&+MxdRnJE7B5MXW6$`giG*adhw-fjK~^ zr^0Bi68uwEWTg{KLDhI0vF50&L#L%bmQkp&znkH9%G_smdb1(*DPQi=td8yV=#wX3 z9q*~w_;PmtfsV5oE{SZxk?!y#2v}=isl}uAeO-$=wx4Wf-kj$Bh6CH-e2ZM4!)naC z1m9L7U=8PQ-A2}k{fwphDs1sbTftr#J*mcO!NU7GuOtO%P-}Ef`bJciQvD4{+LkY$ zOa$3iY!wh-n#tRJo2WVH_H=5F?JTjUSdXFfUY6%xzAWcWmbF-i!*?1ud@uU1%|U-x zScRtc{?Y}k!KOL1_zQ45YZbS@)P6C_ePQy%8JA$VucQkSZnXII_7XOcuUqdKUL0hp zf-~?#&e~1)3Y2t`9A2G*HlAF48}3m#iEQkpyVe}oyq1_Zrsb@m^law?OW5}_mD5d$ z8aIMdHdgQ3Y}ZE5s_@hQ7jZX2#|Iy=gRwo5Pkw!&!nopYT!z3-0=BP9w6)g^^q$`& zWj>-AVfewo;Lr`ht%57&+44WvvSIo z_l_Kdq#cHPh#8k7L>i%7ymLd|r7QMp$yggVrH^+BY*VDHnyJTA2M7V7#7TyJ?w9&O@=BEG(M!D=Y&pa>$p z|3H-PgrN_J^q?&b?tWF&XU+oHal^}0pDwtWAt2Xzql%uN)7DKGU_StZ#?*fx)IILt zC@*)AH6-|l5zjBYndu$&v-{1p#fcjZo9v3qm$x!!VUQM#VPvQ2@T%)OY_BVvwrx`Z z@?801N7pQjrV7+;C>1H+IbQ-hJf^__nUt2by&mf7@4?(GRd|Z zF-#ipsA<&)11M0pv zuZT_B3^xg~huM~9i@C!NiNIfA$2*?8c<%U5%wmG5TH9r$V(!0vT5DgWqkskYv<GwosUN@Kl}s$c-R40;zQbP;Vv{hwEUr< zK$5Jz{4EA#(pa7?)1nKV2v8(Meksm6`kuR+Yp8_1aF4J`J^DbgDdB-2R6v#M%H(V( zZO-)fS8KX0p0Hkd6S9HJasSdfdEOu%k+|dSvx7}>>#xstkXo@Ev;d$%%1Dy#=<0MS z;~W+PW5jU8Q%84&X(B2uR2mMo8)6erb=?lVieEF8N)aRFu`ur4#VjDy^yxF+=lTz6 z#GDpkfh8cB5?|)Os4&ju;?bSP%_hW-wjkNHYG|NiQanEkCxR9JL(@Mg!83n1NX&%V z$iV$m1(8NvlfN<5Vt*#GjP<9KXkN48FY!Fi6q@tznBMN znqeI|sD1?m1_g4hx6&Fq3BGNe1-xu0#_T>WC6nx>KT< zQvdS#OArH%ex`jh?5Ck6TCHlr&9Q3@EbSLcv!F%U)kG2ll3O6L8CVprwtV(t>BrIE z=p>2;HlFBc`(Uj4{HqB#a}ym45P7B_9*}NU9sXp7CM1x`29Jz^@9Hd(82jsaK9R&U z8a{`qry_2Y`=`@DXfanIfpo4IyHLhgd3uiEe`q|SnyVM0igYiOiz!3#h$!#{oCa>b zp|&B$K+%)HyN>>IQK>p)T#9o2$J{zgyZ-dbm>{@VHRiz3f^du}H>uTAOBZ95aQtT87>H(A9PpPUaiplLQloV|}=Eg;&6FS2nPt zcJ^;9v0=#un1P%vAC>34-ZfOV_mz4&g^ZAK?d-oXU7X1JeeujSh=V1u@u+J#cP&zW zhLX6DEDRKG&j{1f?`b-pl@hdrF8r&W)Ef!qIv}7(ye@n&Q)bpg0z|9BX$~lWxy(!v z&Jg+_HelOkzN-rX00B6r?-(!dNSHVc+EQ|I-#+w$m*YGXBhz*ppjq1+4WEore*U+X zof_rKP#NO1a{s=WIii8$avUE0c967%NP+hQC{*QpP74wymG6%!>jVX(59fen1)i?S z_Sg-)Un=%yfx5KQxUMKiP;=&?RL*USL%;%@5g-K$ti``9`oP?iQH4u&hw;`2wfrJF zmA@U1DzG!6pV7Z|T{!QO@ntmo%P8f>frlu5ehG270~pdtJT|Z}P3-BsAU$5}g%UrI zX8!qMV^vD8{3zUT{;MKPLWaJC16_XC+4|Z%RiFHq6{7sj^vZ!?It^~Z0)NVk@-0#1 zcLd!pG1`z14m>Om?ydfTXSweh2!y*O{XQ?&zt8K|MO~b%-)H+ zzqzeo2YvRQfy+0+6)Mm&1|UJcA^cjG$p0Dr-|@4{2}R1QAO`qphNSXL9Y+bm$_Hjz zmYw41XHl+|2Tkj-$q~L67v?2pG*#Qhdc|BCBR#8bY=;(G$%?EGA1Ghl!zmg7PX}G%#nf-)yhEL<}7&yTT!oqviPB z-U*N0w#DyR`<&(B4L6m2AI%Usweg?dy{ZZM3MI9l4A@o-pg@|*rX3!5d;0ABmbAM5 zs#oz5Sw?qG41Ljf^w8tfqR0)!WR5K*GU!?!_Tp)eC^?GZIewg!uMte_<;~ zPbQZ&74s&6@D|W-AR$ll>2}As14OZLcINzY4muD;`}BT#bNP2B2MxcDX!|9z%LhI> z#v;CNLuj=|L{5&5n+}K)HKwDlWy-^iG{0+K;Y%at+kX<_g;=g>N1>Xn-$o~igcEqe zBS?d_U8u6ExJ7F){lZ>Dt;qH(iLN&N%I^uEP9q=z`6?iO#~s7E^DFmR8K%#}7_R8d znY)%c$2ZfnEhUr04!E(AcLaEbf5w-J$Bv^m0KZBpaSmOJw}yifV`IAE$36Jg;iNR} z<6|1Fu{Fj>N-aH2CR_;w+@(Pw02s^8K71I#5E|xL2q(ci&(+i9FTOFj8+-kXMW4whb$^Lw?Zz>)_Z3Z-F?CWjK*}OJ$XG7ylsea?(|njdIqp1|b!NPf=g)8>t*dHT=3aY~boF^=NILfjkx4s}v6f5nbeWleI7?20aG7!2R zA0UZr7t8Ac#U45JIusz1mPbni18-O{agf-4HZ>0A7}t=i>jo~M=;3GqJbhp=OSP$G z&}j3}!H4DIm9&DQMxeZy5YUdAdYMteN^MNS4YsR|%fzIUuuoKhu^ zo>IuI%ANeL%aCr7xEW_tglpJ~lP6~DTM$Ae0SHz7828|dq1@<;oXKUC!9&ntY3+g7 zVH$e4=`xxYnZt|9D}2I=6q_U?W!lf7@TZw#Q(w&4WQL$V~lo%f6gde zDhVtn3MVSAPUU>j(VHBRT^=c$5)0@6f|WR#e@xO@2R&n|u+*bSepHvE-R6!oXZNJn z^`RE;u`s__OL@@i*z}<4v@d&1QYmbQIr-@GitxKvSKC>lsMKElYc!Pda5H+N9RxMu zaxB^zt62*bcz7AkEV4C{Z)@=RhUj*Mp?|ktJgYnaC4>Q|{aIrXs7iXnUUb#4d&+2H zzcLm%8G=$ZW3^vEc|4VmS}N_CVq4BbbmVCFNmj%ttEdnNl!Ca@zz9~FE|JplK{iqa zj8x1MowlRqJuK#{kulVB)z6Pi~uAjh@~9HqKX5N z8y*B&caX!yvPa~U6vR^iX|i%v&5Bov*8|^`FCo*{o@}&VOrIQ1OPpwilBIt>q{fi3 zISJ{)YObKNkXy~YZq`0e)sDKBjy+l)(5O*-fkkdaweLwDamoP9+9}6sgada?A#v3ioA#` zPp|>*o76q;Rw3a6xHjazd=5fe-1y^uWIIf<7Oi#wV?q~Fz?rgRr(U8&=BE5`sZhkCeI zseL3`_zH6VjGJ8IpZ|9;g4a^H5z+2K|Y&f+qWj2!(&cx*7oa zC;~xU6<*odyyz=q>Ga6w;>;qbi~+c4DRxOVHGFSW2rAXoD8B`@c8=Z2>K%~C#;?&tc+ ziA>rzgZIs*gVh>yQ0mAmYTzHBi~!hJpr{OYq^p@(owHzq3WT$kE?~Uku?uxv4Dd)4 zrQWp z6b@sC*mJti82wp#%efSH3%i{P?BsM>r$M3_i=W_S`w0kuqlRK7f5JBvC$JA$5DYX7 zsSmHsS=0O=^tm2MX@%6H^c{jor0^_D_N|mrLxtYZPq~F!7nw5arMt!c0cw$kfOfw#!rh z=hjTvHreG4+;v=mPpqbjQs!2ZYh7Q(d_as!hRT$85qC7(srt}$qLRlriyM)lSC%UK zPzma@IHi(Juinz$pWAJu$C)rEP)0tnH$zWlMGIMUq+-qS+gj-uRo{b_ef%&bNKe9@ z(7IV8^u%4%iH`j)Ed?w=5VHL=z>|cyvgO;I>d5CgYiIMQVsWB83+9&r#L0DiL0u=v z40c?L{WMInZ2XNCFAXkyB7uuv8or*^= z-Pm)Ux6>y5kY4`Ckr1R%mV2ZTn!0bnEmu+&Tt*8_qF)zaf918Z)fV8XYjDk0g4TCk zby-6Cj3L4PJ(eZ`R6No%HfDuo>VlL)-y_%CAL##dyA^mIg+4C~n};Sbkb?rgbvHo8 zDhxz-cp(cIpn7Oz3!VjG>{;de#g#YJ(B!fyCo>we$~`6%7oaj&`})^2J;XxhQ7PXr zOlFAgR;Xv9KHLfYLefE#6%c{ar?Vrs$(m=6}T^R?jA~T?(WPa)Q$tVQd;bL*>+own@c{Z zVm+i6WFSzjux(kCgrcA($)Vrug?PHgxy#&`2YD%40io7{i$!cCu#&)H9y!3_bpVkv zdU2VSolHyF(!9%QaNj~h4H9~=tw~CWA(9=x-3E9+%L%6 z;58ScpLg#wvkfJ{G4YCMOW^-42)AC8Ed1l)2iL0p%3%Jq0$uizV_yyr%{)4msZX5o zdSL3a4MNvhj>0uLEb&eZ;zgmLi%M%>-*pg2mNo0uKkN!GZ!oaJ@T0e?aS5TL=||4g z2}ho8YuG#Du4+#yl@E{uKS^)7xnPttTX^ zig}!4#{VRRewpzMp}?0MfG&Jq6s)YY)oLzI?u7fM5ao?iatVApj5v0xThH z6PUB3o~$~qiu)D6gTYr8e`LfXQu5v4)iwZpQI1dB=dtNqq>Z{jQvR*dr;9dnO^b1#RB?%&QD=zxA4TUL z&-DJs@$W8dW-*uKx|_Mp{gUPqGeSs6g>G}nEfu2NeK(gO_moRw=F(gelBCkyFR4a4 zNuADIa!W!gsnhxG_x~P`@8hw39{YU0@6Yq~eBno=qi$KUUhyA-p}lP2G3%WlK)gNM z`^mU5ezOMmNrswKwOG262%%E|I51KIXVyIv`z8NinArP(fbI><0>auYTZp^XQLra; zm^zeusH?XTaCo*XZ;vhuORPk^T?-dx^JinR;JPWA!3&qad~5UPLL7GKp|ClWYJi5O z;@8bl!j^LB`;CX7QPHJi&wFv)n_KODYvNDxQl)wdz zkrGuvx}r!GASUbta1ub|d%2AP%gY|AT4sY6UZuCZYwne-`CG4-%dC<%ddH$YE8E?6 z;yfq{=QKna-uHKzOsO>)ns~f$DztB}8N+p!3$1(G91e##6fDFjYlscDR0gG`udB9VFNdDk7jjY9J7h zSC*AliRrpu)<~EAF7hC6v(?sgsD2?E=ej0aYd;$DN92x=``1ak+n<9WkM8B~io=x< z2g}s6?rnj!StcMC z!k)+=tNxBPQ?s(5S{{Vs6C^4or}v+U(uHXA6Y~)5WkX%N0l@ALe$tY2a^$Dc#V6?u z19HbM)q^Uq@~F}duGNr9#AT2o_2@ws?AH3YqQ6}z1Fx}1Qt`)Zsb1UWeU)9|W<`H%wEU0CU;s`fn@W z$X;S#HXsM{s$}i#_FdR(RSYEsph59#humJ>kU>W}ZQL{on13M47STK;kI3U4TI>VF z%$!nkt_S^IrO-w9JLG?fs(#4Nx8#IG0h9o?#HU7`)~rLLx~ zCJ8BS)I4_&jOyy`Dj)eDdg+sjKfC{W&o%?0IjJ}oF8-cMLGa$f&7!GO0@aqigZvMs z)wAMz_65Uu{5{a%n5107sJTqMjRC$ynu*Vnf&$A{eVW&pEkgaeIakG>8(sevBRY!t zNgh7RbZRT>KD*&m0bh-g=y{#(Q)-XDVEPVo0}3HT{lL8>yA~U_1o6kACTa)vgH@aN zNlU*dg_tba-odWv@t)HuTk%E?U-pl68|kDoE>Dktur%uYc{V5;33Oz`0Kx&w?14Yk z1`^i7W>v0*kM)qtRmWlFT~Da;ZvXh2*-9wHg8`OSF2A@po7r#nE$rKklg`p> zC6#IQtW@zsOpL$tI_Gm7Jwq+-Lk0|Y@Aatp2^_45CAZ>3WoQNW6ccZJOla{L@k~{8 z+w#L3h@LY-TbyI)3a<@N3`m*DV6(Wb#{K%dhQ>DG0MJa}8YBSprtEp|l>z!L2G2vR z$KZv+oMoCM8!tjFymaQZCKo_iE)77qMW-hw`A^sZax_#?jz<2lw?mEgcNXtyW z^?SF=`#Gi~ePVQA{lJN{>a%B=ZZBj5ufII8Y7cjdHxec8zZbKi+*ckQ##2)MffvUI z*dEI_9tms0{4zS${_$pT+fq z4j*S6QqD>iT4BsZ^Y|iISbsuJYu7$UE&zkKZ`5#5aPV4(tAlb(ZkkoF!cU>s$^`zX zg|_K<(%a;0!64?5QNc%dAG+!4M(L(v`Ktm?$AhF-ijf13YC48##zkSIsUr{6cbhKX*DEqVvmz((s=iv<%C%8Dflk3e3JvdR9+*F&=2|4B6 zQXH85-1tbwJoECIrW?;}?d&zvt9lnyA?yC>c4R6lhK{#r>W!#2CyzF11U{biOLc+F z8}xNT#7ty;DbjvjiK&rz+rPqLVK}WqVRYXs_r{T$=KI{FiN18>AR4`A^#U~Ngx0a5 z(FE;&r)1ytfRv0b&in~b?oPN*UDXbKP{M>;v5$uy;b6?@NVlr>vEV{Zz|Ot?qD#Ji z?%iesZ0W=`^Vhy>xY~6H(eLA&rM1guXh0#Pmww}=I`+WMn(vt6oe5FAj|f180~9OY z?T7wOxIlfxth}B+#;|2--vDaRE)W=!c1G3t-YH?UO861B%H2rGtbUCUbKUi+!5WUL zc%&ALUa{PJdV!16quLIe9<8A}`YYm4G~K=oyOvpt>P?`BKj1rEc6a)H?u0ol41n}2 zGsaX>`DSFlet}bRO6V_J+8t0@*=9@yiUuT3KWs>ZJoDOC*XsmHqjh8UebaTT&7qvx z<2J*}8(sTAIT5;-h?5RvE(15HXEw8>%oxJ@@>R6UPWAQ!fR6~>U7paO*mGYJuLlFj zsWxl>vNd7ElW%QS8;JDrg(CZ=Ki%hhRX|f964dL7CXLjtaHy^BA+ul;K;Y%rUjnV*Ch8@e)LGmWP=gSrZ`- zfcVjw_ZB@nX>5cVu>wHV5vfGjIViTN8A}Yq@#LU@4o)4^9dSEVwWBgeYf(?H`2HEX7E2os2FgOW|VQZ-uFRx<(G8+9q>U*GrZE~~`@ znmqenZZ9+T0O~kT2mX~U>_E{7Xg3{VyN#YqCdz4PDE6jo>DqSDUT#O!e#dFx8Lg4@ zk@rV0NJ6L*FNX3*{4N_G4(+N&FRv(Psy6NC^ix6$_kqe&y+yBdhOtXVrZT2sC|PWe z00*F;R9!vaSrzqTSeQEGKz}!uJ3BHFx7$y^Ce7B6iG6g=_yH#6SpYh{zJ5gbkUY7xv^5plu3U!w!A**jmTW zeq@2yPl4h!p@ENe>m1$qS+)bGp(sm8TE`_S=EI={MF{r}T`r2Q)0t6trkA}VkUMQt zqTpK|X|v$TGsJ{J?fswGFDa-Q?lhn{I-wl{Vid9su929)9V&iueU@`RUwDY5B+YJa7h0zYZLjcO_R+kC;xsR(E#P|f zUO^=m21X+|alk^8Q9mh~_PgWowuYN1&XIEBo3dfe!hzoFw&}?5-h?x~Wy)}ra>OGX z-lY>Hn)a-krD|#nWk5-Epw9(6yJ;rTd(c+Hexc@5 z-*@|ae9*8Z&4>nT9NpCLIQg75yFZ{UmQ(cBW+S?fl(S5$_vk&dx6$4H*kfiGF-ZPT zM!HeYie+{^+4GR7GfGiwfhf1<0`W9Z{9r z6$Ib!YE%M-Zst?NwDNy_E>FsYS*%mT!=~m|S9f6v@2wHT9lfbI6bI=4anz6Jr|xNQ z4>#z&L6``;e0|L}Z8>yinV?<{RqMT#>E*DOZ(=ZI7O`W_Eb;Aq++q)nxYq(D>o`E( zXS9mK4~b^XObeh+SjhBd(152vJvy|GkMyOEp4@-M?YKZ4{+1d=SiwRTR>hr)`j*0N z?HtH7Uc~h0gLTBZaYd?J6O5_~*&G5;=63&ziyhDE`M}pLJ26{$b>??H@fMoQGq;P_ zb3?Yn9(dgrJ~cVkhNJ~K`}fKoMa(Lsi2_%>3>kE3N+G*dhZ6b??3$AUd*KID z6eA3}QmTGqRmN*FCC3DO1()BbhgsM{H`_{E;HCuqc z;Wrp|4sJ~q4p|L4B`!dEzWW)kp4M`+k0zOj?=MyL1N1nnlU9HU#c?1?#l1|q5mmbW zk_Zz2vEAik%l&_Qv&}zTZM2ADruVTO&8iiRF6n5Dp=KRiuljb$@+vpSiNF?-V-8>A zL>cw#H8r5T@_@Uk>iCg~G@i8b$Ee)E-^R_CX=BH%=J~Vg<+`d{*E723#l!ToOw4*K z2)&&9Y3=y2j8l#=m(q#%2JWfxeGXTvxINEuf+d6w*=mUI_o<<5Yh^*gS5J*k(X%S8 zF%3-~+qQpAX^#hw`O;(vYL+V~hv+?;o5wQz&?i3O$)>^N6`RbUKlY<_OSHs1Op{)A zd5J%Zw$W{wTB8w2#39bP&?YjfW};@+KR57NITe%uim#s}9-2GK4Idflweok>J_huh zcf_lruMLet8igS|BI6>~dJ`s`I_$~=BhB9@tb|3Tz^wZF6ugUcbb zYjB)(dwf1f%oAVK>g#8UUMf4^!8(=nE@_z%dI0EU(jv5^BXvP61HzVv1)T5FhiN~ zte6$N@O{F;w@Zof7|wQs_Y;-SQhS)@(8E|5N=1w=Z@~$*9sUq+Gp}J6xNofDK1ngH z_C#@XzA^r_8uRd3w&K^6Be{mRwTnc%)QeGc9> z9hVR=eKG17yTk}iR6`~yp;bfRY*;ZzkiZ4ACpM9V2b{Rs~y~onj zQ#Jyqvg?P+@`R|2vbsvus!GrBjX}ql;&|OA{L$;v1Hb2)mMdvZ`+3nA-XJ|ns?$DJ34vWP1rlyeM zZVpyIokTCEV&C4Kb6dSZ2>1>eBtsE?k;2;2bZ*z(#0ze&_ztG622{>IVLYZHO)}+m(|(>vFYF1%(5_5{P?1OO+PjutpFbaBqD655pS38^{hr|0@=vrm=jHpQcIHR4Nrf1^!8Xx)h1B*aH5* z7@z+iv{EmMJ?iB`Q31Gb5xWK#D(o>zXYH6X6hcy}|EK7Wahds3C2Jle7l&voEW2hbk&3`yYDo4mI=cMy^=$xFFHISN6W(*0N&xz%%_SZ0q=Bi|G(QZVvyAs)cdC(MH;4d zu3#$(%Ff3p*VXTw{#8wF(b>fSC{iLgEgo>a!cl8F!J4jEA<~DeS`!XaHSq`ryImgO zvO=b=R5(5F?LdY}2&1MbO~T%vORfYxzGt z2J+e9tIDvOnj5A9if9e?o_|pc)}g@!GQ^8PXO{;ljGkAzjZqh42n42R2f@k6ti8M` zQwigtpZWf!Zd}c{Aw$SQE(7C8l}wq5IVp>M&Iz0uk;EYHRR*2B5Lc)GpMEn(1 z9{BDo23v)s?i$3Ges(ij92t%*A6M8C&ita}k(wanMbs^jZy>IZ7gRSj;3$xTm^b#U!2l0U@hi1sc+m?=L$Xr|@G5z0H1NPYH`$;hphw>*wElOwEuO|t z{IHS_F~w=m-w9hlmu_EF8WNk2skpd~9l_n8D!(9yHRR8L_czvKu&mkaWEj0Jdqimw z(t8zXoFmWG@j7*oOeNcs2}a1HE~B@pG`A$9#TIlPfG)JT(z%>SO{U!G+R15Vy*LJE zJ~0UlM5vnb<$m28>RC+yf`|8*|~8f9O+|j?Ag5zqN3_>c_(!RrL$G0^hI5G9&ruVHykfnHT87JU|#vEvSstI%A6t@klTN~1*?^V*``A3+mGhwYI&i@& z0i)V|prAxlsO>!qQZeR3!D}by!$r((NB2`>5I8ysRs)0ndgB)Y)K13XtG4ZVbP-Ei zeoXFW8#Jr%lsQ}nR!I0JDehuTK9@aFI(YKJ(U3eWjJH)By>yi)EOzk!_nBl{P2jtb zFUqP35yRv2NCpy@#M8Zj>n$MWYl@k}Cr3-w1DC|E)t!dFz54G0zGEAWq&vIA*r1m;q)MG2ZS{E9zt}SMtg;;LceQDPk$iytsmP z+PS~;CS}^FOWq66ui2EZHm1Kv7jEEkPnOmlhtoh4fmZcz_AR5-k)@C_69lPV#xH%u z$=nz>@0OtGX%OVnWRI;45COfO>zye4nBej|qJ#=GQ@<&@h>@Vp9yy0`hb*h@V-gCB z+K%9y=P95(Px9yi=y7u=2qFt8^-#AGqi^U?UDfmoM$K8_U$JxRqPy!!{!{VmjcI#t z)K&>?0q(b)+r!`SMAr`wQI}Ne@leyqv600Tdb5bu%R(965yw|@iM2$BGGYa-A^(d? zA1`#5dm94aD~Pb$Wfd0}j%RK7L94T*jW>GJo!$4 z+EDIHL8&2y@Tby`4+(2kNkUFs5;6vx^-+M3UE+zy)W2tQx3Gh5P=>-3%wc<5<(NsL zU1S(!we`XOZJ@c6q5B=^Glgj$cS^m!(seF9FKbO@o_eP2jwR{E77R-D% zPP2sJFi;Ct_?N;AWOZ)Ar1`3X8c@xRmKe}G54vB$js{CYNWUEw>%;8o83y}D4PuHT zrPTZW{RRBRgB&~T?DV;EiJq4;$8D}cs+*!ECKjv?{v3r;?L_UE_Krh`A3dxdlVh?E zbpr*_IMMKnXNu+a+fX&&A;S+P2kBo~UG}ZFsl0}f|BReUU6?g-=75&sey1bffq7=; zFCr^bdL(pokoZjMb%N!1^L(Nz?@I2*Ht@Vt5(Zm}Cq-Hm^5cPF@hA5@cQKQ%L4Fm) z)UtMjkmT#DGZ1_*1Myaw)d1%Nh#}p#_B=Ar&L|Q-44wZ}#gLV2)<_N>H5?uyv8!2~ zajc2gLi`l%mR3?ye|4pAH}D44nZV+X?#h(zSRYmlZbyupB1+Mf>w{KOi2zBJ9dc~n zIFfx%TZ8eVA`@s~UwPVcIkWU*Y2!ClL2|ya1!_aD)IjL+JWD?DEqlFB@m^47qg1x$ zz1rZr*!8(SLm{{`bf2Ff!_0X+`v=7Q-9@d-#ly19(s1BLq2_JSiIeyCp*a0K=_|7Z zl+p4XMHiIlKt;r$CyV8Qt8=@-GUL5Yd(hlXIr?Q5<&ttsy#7ioR+@z1p$zFI!q}wB zRJ2^o6;%Tm1TO`AO)Zd5!1TcIeKqC59TME6s|?bEw?&GAOE)bl!4nS;;LFveSUu*O z65J_N_=7#}C#tJd_1WF~WK_ld^b7QJkw2_msmJ;SKd3W3wWr#9bd7YoE7)Frs@o$>Z`8cBU=6qLP#&U z1uIbzkZ?H&wG_3)+e17LoV3imdCz*}_%2LYjiHgGAQ9JsxVA2C<`^lYaz)u+fh9@B z9&4Kvyn@+QIX6K~a~i=9m-5a6ys<#OP`)LO@QOmXg{Jc^D2B9RWNHz+j_Ecg z{1lU~5*jNr<0x72Px3-^rIE>q@B|Q#L@$Q{7K#$?EfVpj8q};^!t=SKI4HcO&j(n% z%QrJ(JD1JMNE5};#% zC5gM#u=J&iha96v<^!ub|N&}6Ax%iRc7P&cNC zRdFlYg(Xf#Kgx}KDmw-PU;1?i3p$GRuk2wV_fuf#`BU-P# zLZ;0zJq$0|$`(=V(h@+l z%W7&>IkKkwQyBj!;?3SJDSynAY8oNB@IZ z%I@OBO-S-Nl#Mb>914UDO(7~>(#zKuOHN(TRjMiDa&017a||l^`0yu=(GW*j{gV^- z-6nDbNs5?QFa`+(U)Bpre#Fbc9K4jjBvmUv{z$%LsB`HxCArW5cD2BhfXqU)Oi7Kr z9lBZwKCyI|LMUv9yWB%U=!KwE6{2uq&z9a3?x0j;RSrf(+)^IFjeUhdYS2YWjZAde1bPSoa9uem7V(EL1rT3I`sR6&HG4J8VXjN=aKu>RV! z+ba=p+Xlk#AiQE&Eop%HXX*yAzOxH4b#1r7FLD2uYV=ZkaH8;WUF~Ivn0lj#0Vnl04wvjGI_r-H}`#KB8wZ{9usBM`mwkxx#GmJ+l7C! zV^PRL95w%Uq$NUGqobQtzWr7jr(!03n$@*PhoLjTdWs2~r2ZSY;M? zopmcjpIdz2?KVjLrO%8$^rYl*Cr7;`W}jnB4d)4f>AK^X%Qf7TMWTx%>penH;$6l>viGYpJC``nD=PzaG&CDW6oetliE{{;UoQH&bS%Z%9uEF{2* zSVYWamd9PS;At@hFjxJSJW^-`KgddX008emm!?`iVDo4EEb?zkvexOYM@SC7hjmAsYe-W`%iI^>KEAJrO{=-TcU zsJhmsH6Y?t2i~65iIRD3ro-A$VwK*i#^1h64en?n^ z)M#yG3K-~!pXtNrS+HNMRD+{asJmVgHq_s{$@0|v1y==V<~R}Kj%Uqd35Ev;9Utr+ z{1559Nsp;Hj-v>+ALk)qG-w;djS%9#V`5mB-AWzK~%hxrytyG0C)UU+6Hj9$aSUo8h z26VPkPUsRH^Q6{A@33P;mz!lB(T$_qhnGa<0@sXn@!a>Vt~DxZHpR+ToB6z$cHSTC z$&8%$wF)#RugQyCd5*$G*iY{ZK&0q1F(c#IW-+&K`Tfg^T;L{E)MR5Yys+Gu z+B3+CvH;om{GQ@YDBzCE=Ebv+;Vh*nmb)kj$}p(XK~de9BZgIFi5V?RILA^lJ_~VG zc|ePp2-J_W14V;F@OUu@PZ5%olvyewUZsnDpY@6_0IN33E?jpMn-kMh$>K2DM`+(M5@*>W``fR_-3LH@~mBM|vd9OwlB%@f0yI10S=KmyH_YvqtF7SVoK`Px%>4nKk^rJHuhvr6Rzan5Z4E}bQ;x3VHoMhdj zQyoHYX+I74ePHKL5~%gE_}RLc3{i4(*{nP`b|l@i;TJmuiP9`IQS2 zI(}lszW)+(sZ=*jd054LD>VRg9ZcG;v!>pE@Y>)0KL&%kzVDgvsw(viC{Qu}_|3g3 zg#o@zvo-664rxoW7V2&v1FWfL`E*%n(Uhk;-`GghIpkD8lOCz0MorE-2UYSZFc2C0ON+-mP}?>mZ?AylT;&+ zHi|8+i{RG4Y^W|$gnZkMIE}&Ou5g%Oo$?Pu^kK{Sy#T430W8OENxqQ5<^S>H|Lb(>b@w;80aa<=&Lv z#r2`VI2uC$;?&d~Vi&DA(GlB;LtUYA05K||BaJAr`Wp@$-}oM{B2f6<0#IrHy`W?! z0#Bom&Rze0++`p-ai@v+J^tRv-XdNV=AD=h#i3nmaP#v{Lq_QEiPo_h5F{Zrp)rU_lXh@qUNY5A? z5c|lMW}>K>M%4s##+5y)Ny($rJagSUdkUF~X*`4P>HT|Og7=1l2pq42@I$*RJ2l_( zDF12S)=5+b;l&5R|4j85e^s`P9RwXwkOSeDa@|KC?uH+l)Z7Tf~~vktFzup(hVvsC{+&ra!BJbw?f)9-ZIL2pV{HWciCJUul0 z&E6Re9pV$uphiJpEdsXB*8Bw3@R>H!L)#=E-IGUf!&R3=OU$D}j}feJh1|GnXT4~z zi0b6C=ilbd-?QLXYXa(Sal0RQ9ppoL?NWXtTco-vLk6?Twk5ln*9;o|GRG?Q#Y8~d zbVR^y0<0-KuJFp5cb3=h0|NY&+^Pu&03%uYB3(kaz4M5ar@FZVfuoojXobk%#3D%< z)%;zu9Kr@J&|M*~S`k{+vMtOhM?KxfzzPdA@qs-*3WJDkvMx~+H`IOA-VZO`Yz%Pi z0Vpn2`5B9N+H>CI@rd+T@X#kI2)w|E@KHI=eFv+(z!TXcfX0oNE~H;}gvdowj*6R~ zu(}b@ATzUB^=2Jum1~Z~q$Su6r*@MTmj6gB5TSYNqFPPk$5lY+`7tl?dw6(r=>X`f zVAn!g+Jf|*eH?j>;Ou#BGF7r?^)zDM075kpr+VBH%VTs{I;ZoO2!Zhi0 z1UKkw&L~TTbxW(sBB<-~P&O5zESCx?pRF~y%W>lpCu4G#eIh{s>F+;zMWS`Ifk#8s z_YHS|-bfhWh7?M$kkv|-M-ZBeDw${z2Z5?=b9N}v&N3;FL$U!fc0(h)M92pm#970e zDszLM!0$xpiuc8c3xl889QqebtTUjY8DCrL))=UM$Yu2H9`Mq1{sr?qow?tUhZ+3= z457zxxkV&Da)oi>NISXT10pO;_i=dm9|SO1ES7N#m8aS48{1;lel;Gc=CV)JhGOru)R@7Rz zQOT4Ht9#;Jt)xRsZwp^5<~hM^N22QFdX*bdSozf!b{R+F zz1~vR7H_&9*mcBv@7b81{P7i^hvv^!F0Pm69n1PE_H!>J&-x}qRQQ3nrNCg+%Z7c@ z&STmpkGWbX9KxK{Iof8BNzmaY8ByC&YP?UtR-g(~Y{|1brunAkofZPs2Z zE@iasq|Kl?sn0bOAm~f2IhtWH>gHo4QR!yo?8U zN_`ltzOofl56g2LkQ{^d3ktQ3D5PKl$I<3Mlw*n;MEwus6I7|EOKE}>n6r5lEoP7Y~%a(Ou7(lYb9S*~RL}7(Dbs#?l8lW=bg{`T1l96id*Wr~i zZ_N0fJ==o+SVm!f=m0V4Ju6mFu71A<5L{-#tefq>5#|WGEljA~-og@=aKtPqUK(=M zWxwhT6K09VFkEY5;`p$A?42?~BzM+UnQ*5YM_5(4*ne#WGiQ{Y;-7I8fqfKgdPx0- zZeCp&yzb1d=}_jM#aX8=ZF$1bi(u3-m{u^>8M+GVF!Nova#*vDbuX&~y{nz0-TR+|s zan+ger+6L}83Eb{+F_yW1Wq|t2)VDU4uND5>M;>J34KF3*NtE+lI*5*8MXO?SzzHI z@eb#u@DH;I|Ipe()t|`q596E%RjRQNJtOPh_j@l2vFT*fe#Z-oyWzW9_so6x1pOr2 zXw<%pxjQ7CL({~meX~tb7XHan`>_?at5}WgcLB-}Ko1ORR<$1;TQGnKWHZI3TQmJe zbm0JOhe)z2^8J%+zt3T|tAw!`VDn*8FU)Rs43G@NiTS~VhTY)b&}M_QXE5DG#m6=I zT>=G|-#QLjcW_b8(q;H?0kja1Fzio<5Vq0>%HH(HThdO~c~Y0o`W=+GC;!p$wePS> z)q5=Ykt^K*?t#64S|x!Hi6C>Fft+rU$x*l@MMJuLI4gql;#L~NVNp4vY4jYCJ3NFe?U;xHeZ$+qaGTe<^${w0PJ6Mq|s9Q>@7Gis(S`i zBIQNdfg%GaNI&MvS-#TUVNohwT~G;W!#)(N9$gaVG>y40^Zfd*?;nU=;S%HL`8;+GqerY zCl7JyHLVgDVyrALO&xG6GGl525H;2gPd?qAeQjKq;18_h1tGnZrMwa z;WPm4Cd$6U$_pTSeb_Cf*TPQESL(ES4(Qk4b%uvp)pm(V?~m_O{!6Rl`?LItw6Y{y z*Q1)Uo_SCM=Z;g)(^Uws^k?R=;68J117!C#tveT-Ld&ph*(sO@FeBtp?|KqGK#Awb zVm?@U0z!}kJ6;sqAjmQ*v*WQafENl4KA0L$K{Gg!TP#S25-ZUzJVguYv z#z~yCgrgsg?%^Q{3tNsMFa2SU^$hInNU6a+y~>1PWlSgxZz8n!xpKrQAjCR-*|~4Y z8{TqGb<(otafDwORHTCHSEE~Fq)q0Z`iJs<#bxI&%jaH>ixPDA1j)yRm2W>HsQ)> z8+9d%n9<~#>Y@9*8)uU(KT~pHW=jM-DPn&mK6Q!#kOcFEhfUJS3Mie?7q-KS`_eM@ z5q=j!zMQ7Ly~38R_8mQRJsnTifznANDON?wfaKiLfx#F2bHn&rZ%4?I@P1$tnu<9^=(=(~2@1$r_hvyHi}YXD?en7q z4B6}2eY@cq9?|FS_eIkxb>bga@Sfgdg8dqf83Vyvf?p^%3r|-2juBEq7yC1UXV2vJ zHrND}6)Q+2?0h#ld%0;X9Saw%Rc$KwyigIY$!{wnha%1$0wIicB}TWKfC^)q+)R%P z14Nw{|GB<0**f58&A})14{AG+>S?Dh*c^FN5x8|&cmV|a%e-GAi}nY27^)(M#o-NL zbn?jgaO0)$!)iwR<*A(rPdBKmU0Cm4r99!y<-Ho6y>Sw@vzYS%T&EPHWi_nE!rFzo z3P`s6emZ8~d(Rw~&+-pCh+jo@(z*JOuTt_L4D}D~b@t&|&9JIvGMgZt+OK;vJ>fzI z=?ngz8bea_elP$HTRv*IT0$BPHGigHJH=1(lijDMY&UFwD!S0<;HJU+xSH>#Ba2E7 zmWLm8J+fYAx2WMC5N^$!ia3Wq!;^u`%qt%^S9vaBjF%+v%tI;Te#*D=Xa7mRt$1N( zT?KQ(;3s9=)+3b0`QEeUk5_)=*K!Dha9BLOIC;8PEGg_*iIv^y@vPOq8_P20ii|a= z_!5J_kCNx?Zp+cOa5`n)m$r%K=hf-hp!Uo9ZWPtlzaW0>u7C+!3km^tEHhwee?oWb z4eqg*nw!e9i_acRa=sp2;~5TsSAwtA+rE;L+;Xo@`np%gDqdh6swJx=$YQJL&Z-bO zO@H@p>vb{hZt_j5t(xD<2L94Ox(|-re=6=G9X$IzY36$ys-{&N^EFkrth6(GTQ9== z#+3iG?%W;cG@su2)2R>KR1Er=Jb93(Su-=VduDzJBz1%4hd{NMs>y`SM)m3xN}wjR zbkIIwbxLY|$T1A-%-Jctd2?3hX8+(tHX#m_P1u&XGt_^)-}9ggD(Df%Q%%u(J?GG< ze(yx(G5)0f3UbJ~yp8E=Op4>})zmxSNo4%-o%wKsu~h{d13<-dGp}ycYN~(+Lgo4C zlWHAI2}>%b?nJtQ%XM+skH765)k8vwv;geBuNlm4qv9=MWCN6L1jFmI1bP;coeQc7 zz}P5Ye;JFaVW$X6j2{fzH4_Vh16NfZjClET#E6{9)$}*tulRN^>Q&zJ_}<^r3-^43 zKw=r)$|44YhSfsIsvC%flTSWnUGm7l8P0R6r0@>4g7nE_dUo+op=E@Y!#8y-A2N0z zRD((48kPoZCxJXR9wV~82!-@WzInDR*oFe2q##(~J4`qeg*~eJ?@DO9yBg^u^Mv!CcY#f6;77P=w)EyKmYzWA3S-%!Fh+RDuuAYw|EKT z^)LwarNhmEFOqO5B(n3|nh_K-4eBrBq4!R}tSj?|o_+obhdjky&nLRblS59;l{uURZ9W&U!vGY3_umJ_((*K<=bo^vwe&qG)M*cBC za`^M>U*QlYgc>d{`VJel{KJO!M(u9O?-NscW&qvh!%*&NReabb5UP!*AYs_Ww_ESDoO)(sD$d25 ziuE8SoRXWxlr_0{P<0Jz{wxLfjngF7#=;eq+ao)PNAPw~h{|H@>?M_;(13Uks=x%T&Q=t@m`Z{0Nl=5V#s35T}u)_j$A!?(^i$|CXZkUix3rn+YgswR9Lf@z~?Qqc# z3_MXW$=YF-1|9iyN-?n##e+V^;mHaX?;88>`*%D$qD11bPQ8k{#rxchWCCZc_tEZB zpqUST$QC^XvurP^SC5TaF{z>RUy?ed{Fe7y3gom|*rDp#_nj!lzt0nqV0|JR>L^wBPgfAGjC@hqbd>Ul>sudZIa^fTae*U zxv_-h=!DtfNpv^JpO`;ff45OW;1r{05<0?zr^uYjE$dgJ051C;Ahuf4TGoC3(5z;q z=?JiQS&CzToskc7d_Hy)fG503S3GoJ@>Nf@ez<*Dj6%x5pk%fFy!5QGH~C6VZeoYG z-76Y|NEQ&S6)_rPd_I@dc~ulkLxQ^-?iQ8-*)#(|?v$1QuMZ0r#=k%5hVW__ju)-_ zbushP@`VY$H#uR>$cDZupPAk`X!#P&Oi}`P<>FAPsUT2#;Nm*)7vIPQI|uF<5cT3% zTR+xjT(0T(pSWI>@S`Vf`d#4A+^QBV@-$v;PXV@?)Ho6o`{b8A8I%#z-JW_T@oCwJ zE8jp_SUe=S$+KWccR@((XvFw;d$u(eOkD$nw|L~CH5;)utanW*!h?o=d+^1KjikAG z+A{y_FY+joyD6WqRKD;a^+_(hs7#QF$LV(T1$uE@xF0#**!w(yYcs@Nm z3eL!Y_4}cKF##;sio zz~0yz`5^j{zxmhG)$g_2Ec;}=G-^a(SvhuFw>zciWr(()E>?evhV`S~Wh`bW*X&%I z^jyvzo02}5r-9tJt$QweclUrmXOd)RvS|vDjpID|QaXI%%j;Lo`!5*h)+kGzC#L_E zXqyGU*Krre>JQh|O?y%PF*1Cu>9RFi{b`}e&mGJ0Hvx*v$Z7FU z?$@hjQq^_f*C-1sZ~zqc324IUN=RMFWB+JRcFyWPKDv%~*))JrF9?%2p#wZ4LGLHK zd~)Q_>3OkAuIDZ(-#ie|1xc1p(|Sd5f6pXT=RFFBmcp^Cb_*E*)@38R}Fq*7c*dY zi5+4`CCWOznBN2CEm|Tm)5Qn5#ds)VP>#b!nxq#zIKX0U)AgjTg2W9vpB6kwG(f0? zppUNuJ@U$!{J#TQfZDl7hx3K4vS@pd%)brD)rHHM)oI6>@awudJ1%GLYwka)yKQNZ z+C!KrJZ8hn?^6776Bw6+@uI?Vw1>o*&L<&=cc;p>f0d5CINlnt=d*8uQ&86Bwg2VO zD6z9d9lvF;wo0*2`5t^SVa1^oNQTy>m~ig=?wC3(NWzo)O~wQsqj+^X&Tm zc9fCOYMs397N!RH@BUDaQH15)7=!1g2U-N=kJ6&OqwHwwI_sePz?>Q>5BXT-Q4XK10HLkv%wUyUv zPg(gZD}Nwbx852E?k;B1l1EeRA5KCzT^lZP5xK@I zhckMcxTmO?8u_V;CxE+(caZ@ULg$|igOGG)M-1RS8Lx6A19q;L{Mml^cR9v^D~*Hm z|Fgil@x}nnE=tY<49%YIH#q)z7ES|2W&xE`69G%|pHd!x$zQj~rcFS|&a~*iEchzD zuNyhX9|alp{?yHvPHX%(E9kCPfCetq@C`iyWi_|yD!Ar&7yZ3r)?vpCD^RK zPWy`mQBxUqR}k*^57IH^0kE`99%joHHx-8o2$h2cW=79dg_JN$q|5e{Q5;x{xBG#E zA>vA;-tnmZ-JAV;K4Llx*v2P#*?vGys*Ko*{WM%n2h!&+77(Ejf5`+hbAI3$fw~7e zM*?{jN=pfN#$= zF*4;sL$O1lf8}A}2s;(NA(cu01uz;xUS0cmw(w?)M%aC&{LEfnEJDWfh^vsMy+Nid zzhjn}F4ZR*l3gDnP#5aO^cT<_hyz2SnZ;3vw&yfQ_y@_^G;}-~bA~51N@S4$a4H2)W$>+)-Ky@mYs+u^bo>*qARaP~={U;s~lc zZ4%R38pZC*@J7W7)LFEgQe^%?Tvl@d4(GgA`i3;RT!bhNPMx|WP89-nmY5koC8MGU z?7B?kwc^5axPZfzo8RTrrL6`UO z*)3>iMFQi(;NxiUZb4(%II__~+;!`=cuDbYk~k4=gcT$)A_dujspDUaumTVO3vMFB z#N~1+WoYmn;1+(18p%wZ8=_Rzs= zb_E-zdpIUHhFKzUOzovk2@|nJnJM)`tQIieLX5CQ#|r*o3l-UizV2+F6Yh*9<=?|Q zH$L{}-XFpjzCFsKl^`C-0-o8819^BS4&MX{`U{vIjskUbKsSZ5nB4LNk+jul$uJ2f z8=HU?%cfoLhvZIiLI?qOfWxbZ=4W7(B*Y0lv?lE1j7P|fiU@HZG z?E!^L;9LLVw`V)gaBI^mvy#gn)4wZ}{)Nz#M!4^XNMOJozUVOo?2I(p-cGM^t|50A z@z|7!c{#;b<)E8YXGWih)LCw$y!YV9WU3>yvTwDtFysvxgkzo7eFU?NVf<5ILVsk&Epm@kubRooO=vunEU1k^#ANAl6 zFxs5|&yk2jQhQ?+#c%Fn-V3?7XCto_-RirW$RVSohE{*4y?P_Uj&i>HS$H$w*uoA` zD|PJfn`VDNiE^VdN!7@C_~!kE>;<95Mgz?zRtC33QYmWCu)0W$T~}h;>uj0kCkgA#mEmae$YvXMr?RtZBYRHVeXa;Qi0C^-UZ>7Aok46&68^j*uX_(_ zo)=okDUNFOuzZ7t3Fg3vchemQ?X_g)*<#202RK_*By$5OQz#U=pL_l0ZmhIhg^b?E zJQjc46feIwWIHi}8;^Y_7niXa%{a`#do#t)CRymt4t?^}DUN4y;%dys6+EMK%8*F! z`{mzNFeP?&j&C(PKFbo@vh1H`dDI=4nyN@DA`<6NoA9g}J4EBWP*j)1EUADaC^&Kx zVWzx;g3Dj-dM0yR+8bpuXpJsJ%G@Bjg^Jq8La0iUe>Mh-Ra!a@aOjL3b%rl62G?Hj< z>o~&8V7&rLRxA*Cvbp?`0|$Z_ze;AsvFp#GA8ClJqB7S{AvUk7#1KpmzeKyAPMyDu z>+_V^5-S+o4{kl^e)U3F;x)*ax2MNut6xfs>C0pBADdAl#b2=Wd_3xnBsTBH5{~$W zAoJ-Cfq%~yB7<(q_wV;(ksL(+Pd{R0>MmbneDy#`Bh@_Seek4kd!;zB3NSR3a~jC9 zaL?H>DSp);JP-yRzwneECG_BH0jHw^i;&8%xJOHBqOm#y@#@D}7vR67UFVQ%k1|hE z5$yqpYh78ZRl<fVGTtNlu=|VQl>+ zolF$~?nHCFqMf*aV53Avu7RQ9%mgDU_I9=5g+uMfn(spTU3s1%bFS?89_X|2w3d#y z-9l%qDvS(;Ec{G-$)XP~rt-C~w`?J43f zXRsHlnO~b7Si|Am6D!H7I~7r-{S$@kD>^KCIr?ss?}6J1@U!UqBwd#D%tyJ*mzte4 z@!0Waz&(jmes0+3`EjH4y(zK1bJh!$P5eN)xt_S0^hsl%$F!k^g7I9mp)0l3%pfV9 z6@8@6GAm#j@L$LOGDB%elbr;_7upe-+$s&rGJ6(Eao1YxP%ay((afy~bg9~`yIGOn zReXb;&1lXd-vI6zaW;U+jafGp=GG+_=i4_MU$Ug$Yd*6q?%$|dR+ewO%W0lDxzWD#p6SoRUhTqh-D*p51ThWQA zC)rYewU&IAdOa0>OTz1oa!rTp>UI#t>vdJwr~KpMhyi0DR6@wVPukrGc}4v_eED}b?Fz(IBEhbc^5>v@&t#URcG_-wA((M5N4*jmb;dPZ zoQf(ozb1a|KxgAn$1DC=>}3u+hMR5i1XTvOtla(c2Ky^>WI)+}CFk41`AoExi2t{= z7)8ez3|?BAB_$x{TSyu+&9Kee;9R%k z^12&k{Ts4v(M(pf+$qJh#=9&jUJ%d&0fa$z#Nqkr#v=*RdsIZeAF3^h$%tXTsCD_X z_Ta{lh?5lx5!3 z<9g%yc4mKek4+owX5T%GRIFUUusAa2PFPVb60Q4K6ioUl(w_bJ0HrGdZ9%^-VBicN zc#%11rfw}OL<5ghT^@Ujkwgm~QFz9mjBX+Xpfp|x4Ym7UJg9JoBZWo6t{>q!QK@(l z5d`!-u6ybGFBkxVAW`#=AOLxKZnoRI?u9TiDS_P<9PlqfAn|BkE@g78HCQvO_* z<$u7W!W5e?C56HqxuU-gj!v#c8hH^}paDVf&R<`S{>*$727|vlpT{+j65%5@w=VM) zy)YG+Cn(w%vGU*=(^L~5l@+)T-e&?~#mUMSO`+hB#RO^=04-h!As(9DJ|NV#NYl&G zl0vk`LsW=FDT$5WvArIx8EJB|W&DMGMJmS{{R^;KW;2iizZGC0m*@TtxBO49X-$!x z@i8bge!Zn2qa1xGHWzaLr@HJ#guX|n7ACc;~bA2Po|;p)Px@Cb8+ z+e~N0M^I{sLvz)~z=-boYoN+N=cQ&gRt=f(@zt;E0B5@mFyW@D@OxHH*w{*Dhtx|Y z``)MF71&KYIuX3}=T((z?>39G`b#FZhA2agrxIa{2~|yLQbP*N^mkVQE>WZe@DJF$ zqsb;>;+~|Ver5rC;_B4_=yipY!JTkO(7y$C zQw?*{Zko-q8@UfZVcuqqd~Wi}ZP1DA+o{{opaO)BqiZc)mj(acSM@0nejVcU{V7n* zu$T={z7ou+NdQRQp`b<@Cbay5?PG;h#i-Mwkizz@Oa-@~bH9`jZ!kN)+UJl0Dk%J^ zH83biz~tVYZs^TJ+4;IR4c243n1qiP3g2l&4pQIwaALCN71(%&CR&Q5L^~mm< zoLyY*^?OvaKjQd7jZ?)}HFA#M9^dOcQ@GAt?1Sm`4KwbKT)sfDw=FqwJe^T~!}7!= zP5t>|K;lE!2`r#jvyoesN(q>_6{0iTr=H)1giazMM~=}rV1B8|Xz`3p z(gSp7{Uj9N*8;(702qN;cz2hv|B-7<^^97v4SR=x?tD-`0xdqhc0DNB_xOQ>QYK^E ze;5}*AqY)T?zBuKRR!QSkm`Zjw67W78~tN`cd+)-$Gx;1{R`Lz{IMTl3aB4GBeQ))>U)hbhxF50SY^eYOwifh_N7?&RQp*IZUVc9~ko~uhT(ZtBVs*QLVG6oG~}0zeSZZBnEW4dTdDO z0f;I;mwz(MYXE>I01zo~ zyw|*@cV~2Njo%S&v9R^ha?FI-itD_#ftj%LQB$2?SCPa8Ig4@(q)k5qaNRz?mAozG zy>e=7RRE$w{+d4<*sJPOq3$DmQQ}6}HRPig1)|>vR0VLyg-fYqbvIi;@$;GUUS0{x zjD{mMc=|pxl?2K^I3AGIns(+Ng^^wO!O%bXFJ^kd1KOoW#++hK%HjfjQp}&K&5CoQ z)g04lJ1u~W5i8%0z|+s}tS!o5ncvr+HWsw{AXWLwji+Ua6M7Prcv2i)ekl11zN72Y zF*WahO#EI+j_}aNFQ-5HovtlaUF>sN@?stsFZrPQMo(TlgI)ER_4lwH7C!v9oi2Vhx3Es!3XCwU%lG-uV2fu!bQX9PPu^|i^9=uwhq(>*~|fy*5iPwLjCRwA>Z6@GPFMrv zfSTg8I{j6Fz_v*`Kh*}3b{_snJ0*SQ%!mGVhhl-L6M*R}1)OEfO{m(&<7e9SFG=Cp zxt(v5TBGvbJ$<=~%a8o$MPO_np*M-k=kKr}^~kn&K$z)!n*jx@+F_Rrh(=lI;&xyj zyEHVh4U!=(aQu6bX(dd1yWu(1SjyHO$=@5TMOJkC9)GaZ)|6Dc-`)8Ss(qIr2HpUm5G*> z@^rOqL%Zc5sdubM#RjCN4)^wg54S8l_U|E-3WfLg{?ll^iTur)nQIBlhZQ?zJ^P`c z3Y2CIKX#7DTssrcU*=75hH7~z1D16?WV4O)8gcTT^YUC7Wxzv#eX0m7(U@qMW6U#iQKRI{3&wVJ<*=~AHpE=&A3ll1lZ;%K#< zLh|4xGDrje8Vb*=q$OTSYH>!?n~-zfDs=^}w3aG$a#tvYG&qDI1yRA~E3PIF0anbg zo$6&0$hQmmF)|;Orm~GKi#@D-)NMpO1;P}}R?E%(NQ>j7Rs9gb>c(d=5M|I}8tFV} z5Zy3&Z>cF?adGO_TB{Jo$`?2>?EVtwN({oPSUuGD@^kPGd_aP$mXD-7PNAqsxo@kp&oY%x+ZYs7*a(4)>+>~x^0jY0#_JWB_s~s# zuWIKs0NkbI{6&@GtD0Jwmg7b%!Py+7#^rb_ThM|l;|-rLN$I2{BONT3J-q*thU2N| zr^ZR#s|S#?Lo1zUUTkwaPm;fGvSO#V{?bitU--*8sP(#l5#G7#H&&a z>g&aeu6=ZTsT1Hy9lRtb|8bO`p}c~cR4~`+Ov6!YzYBNhXk6NH^>zOT)&g#MTu6C( zhz*s$^;&*0PM+(aTU$F!uh-8zRY$r+)tH0$^{Eg3U?-9wDN_W`6@p;!xyz1n=F~~i zj_8{4B#HnTKwl7BJWcxYDcGRL*HW>5-Zsg9<)F;p&DKgJE^u_xD8rF5q~#6ux$1q1 z=+$w|%Lh>Wp|BwtucQATXVHBW@0b)Wy(+kBxuQpuIeP0gA@4JBm3;)}k(+x;*>m2! z?q7o6{8_*N#-P-M=V+*PPU7auLR@WW!uu9q2W953n3IycN)?caP0EqZC=Q_oAS5P3 zK432-g2T3wF)6SGLU*19#PkV4oCDvaFJn+RNKN;<4kK$;gDb=CSP&+jWYYtV_Z8! z5PBiN^@+|IbIyMafj5uG`T80w;9i&n^5g03X?4zX9u|`LYuL(IZ#c)YLFHLEfvRkv z7!+^oz3NIH6Z0zaXj6;3Vcm}lR?+VBSUlihyR0-$Y$$lA`51j#WwW4`MjNFZ4fVHb z3DkCW@Ms|ibyV4+@o5LYF)W&#$lGLxqsB=m4vBe@Ra^GwUZP(3^>_7YF=Z`dB!2Gz z5`e5KU%;LI`0#;7pjF~8%?sNtgPo7b;~L)igvKvWa>i{|H6eN2qv+nH5AW+OSuY260FLkkwr>Nl7Y+l3SlR{C3R_&BrjVBZv>go z&Nx`(HWVnXVV6S2F|5s!29Kbp6B4a#`U z{#r2mqS>xCCU}~hDRjDe^n|a-xU$2^A1cRQa91B;ls@pRlIPq%d>2s%4l-mI{3+8# z5640c>M-)W*;+3wLz68kmhCXJw9`p>_k_xgK>qHpF{F zVT^J{zsn7P!$mp0ifMeUZwAdIi;E+EWN8rbSEUmns1E0ao&8+N!=J()K*_z=d*fl3 zZ(pg7rF{aR6ZVmxqdqW47e`W~vrnmk^7{u~8!!9tTlR8uEi()|_x6m-^^^<6AMizw zG(IE-E9t9vN7!9CU{EI)!IROo?ozm;M)0A<@GxI5&ADDOmbY_-u?=7t*T7U6rNnb5 zX3}Vx;j93ylZ*X)nIYjvR&<&_sRnk?V&i5jR?oY`HpK^6-)s$O4Qfa{E70-T@<+?Z z#nFf{rwIPdJF3%K~%^1*3}WX%Fke&DTMP1u3Q)&9ZS zfR|5PhN-GAfspX7r5O(es0z1M<;`mkkyNiHQlB0VRS!JX3l;pvEY@4nvQ^wU$iP3; zaVY(gbz%svMCl_jgcSmOo2xGnZuQ6}+=noTP_7pAWsLm-4@T61!T(&&cym6ZJZ3gp z;ls*hD-A-yq9*yI{-TfO;=>TFh;hGQPzmE2nU%OWAcqzltEV6Ytz^c=5 zDe8^TjGo$Hi7F1_$mmMnC{2k7?K|P}RPKUf0W;Cux31-6FsSvR@)Y&09;8hc(tY;z zu0`!dAIp|=>ZeW3%U{)WkVaj!tft#1MqH9GqfLbb2(Ky80EXYKU`;r<;*~Z)J;Ntw z`B#eP+QPb;Q3M3mqS0Ng<%y8gSqs(+;f4rcZ>_Cm8D@D354(Ed&jqwrFY5Qh=FfRw ziV4?m^iw({VdV*%QO;u>tuBJ(ulb!}9rB&DYdobMYn`u$>4=*= zqb89!7)=LeUKWLJwH8fw`zT5L=&zAq4O!sIF7(Sls%01qLEvl_SNHtFvWzE3=EDY@ zXi?tWGov`OZy-);|KMRz1%`5f8Qj5%*=qN!*jfI70%T~*Oy|O~zOUiC6>;slz!y-> z@vbYK4bm*-L|T~~A(=)aV&y!iYZLfuv^tO!cR+ED0Qn(1&>>^?&aK8A3Ygu5ZUevN zl5<{AeE0F2?F|)V==h_Pzu_cR{|RVgteS-3hS$9Rl*$+W3zrEO<>Xdt`BXG?N9Dsu zG(bL3sr;yV#W#Ip^F!V92P1GtYosns&eiX@dwSNf$43bX`O=D|9pEv@y=C>3N!tFS zr4=3>^Y8eL2$O0p_q9OMl8E-mLz|=l=97!{?Ze|5{>LT6EXigPsnMEJ8`R;GbKgR& znyp{pS_5nf`G!|I0SkSq0!1HXdcLjVNpb+<8;V+V7go_B@YH@NDe&#?(rpJClDJo^ z?zv19y*ji52p|$^G$$fzmrrE!Q}B2S3>){5efj6Epus<>!yrxS&A$Wya^$^e!?F`X zEZ!CXsg%55|6D&pV=&YN{t>-COk?b8UU7gz5`oKO>!1I@0SO7jfR@+t5*eVv7FAwQ zRr}hJs(dVFSdh<-zQ5cs`}xOS73fD};8TwR(fySSn%=6YQGo;P*ws#v7=edljU6F$ zvgE%v+~1!ve48puh&OG$%GDc3{*E{0-6&4Y)vSz%LWt31$!AXR(-&w#_8)fl;*8(1 z)FdwcixPycgoO~{c#Pmu$B)us(-i?|qEeBN6BaF)4Jur|&;w19fS3?+iE3(iSp5US zWdcX$uyOofD|dRPp!>|AGk$D${rJ#dQ|k0hJRD;0`DYIJbl;SZD(DceS2mPvFaf|j z{u;<|@8DE1gIu8X6Qr05fCED7%s-)H(pm#wTVB^xE46OEyLQ}k4Y+-mRB-s2S7cSQ zkUOEQfo&kN3eX^}L9#TEh=77zYF!nR-=&8VL*(EIfKF=M1V4~Qz30EEdmWg_Z;dub6uS=B)SHHg;>aSB_3q?VReDR_mU$VNP~^6B#vaTK;pV13UO zB0^H_@$JdX%AG`Vaf^Rq5OtADId`3``m1n5L3QH2$8DQ=T?};66*sOnQBYpli|wOj zut8XG9Hgk@Jc7ohiF_t7A;aO8idajL+ZQ$*uJ>>~IYDJM{E}1>$kRb3f+bxSWqT5~ zE)KHkK2idi8b`CsZBU~zgt2i0;UsMHV@sa+p!t6tn6SXA1ctvVgkzd4@+bBLeLE#?KLBMD|YG0LApHd*zKiB}@RN&J3 zUqegR(Hse7X|0dIT551yYY%DL9sZ2v~$cBq)QOcfWiPWPu5Qv4~84 zZ=1i2N|_Tp8Q3*MMK}(udqU$J+X|{sc9Y-4mRpP_(gYzvXA`K^#mBQ=E2w$W2xRcE6jm0-@ckR?;CvRHNm3W^1m%Y?kTXs{NXiC4)eo|HP6v~MO3stf z>#%+rUJH0fVyFWfe}GRuB#S?MzS#6gy8Tm?Wi zmO~J=GqMyL{&7DX8ILR0sJ;~~oWePQz%c-i^urRmLmRQ33@C)_BzSsgK?eW)pjdhV z+@xk2sj$-(=%Rt5`}t(%<^35cKKMox(VuIPXyEP$Ibzsg(9zUEZ7OazH?rYgZ=uQ? zc^1AP&?O)Z)fS4*>LGdI2F=A@-;FX8VEdJCldWDNFVxbZ08cpDd~f5(%t8G#-Ye9K z7jzg9f{|BhiOd<8H%b8a3()1BY4alsO!`N;5jU~=fP<8?Jj_Llw>|rG9IBryV)xh9 z^0i=ekX}bM~VXpaHYvK~=kT<_f})7ULoRnAR2pWr4=FDrM?)%ixR~ zcboDW{|I#1Otze5=0GaV7UcQQZTb0avEEJ1XS(q*l{9>weV&}M(q?dWd%scTqyU6M z7lyDj{?LXf>U9DT$t2UR$#e+_8p|%(pr#@AI1ph@oXxfZ+L)n|sb*-=+YH%f`%vDg~PX`4OEsi?VbR2If=YC{8Z!qqhRZfnD{&ZMf8- z*OSr|aYH;2w0CyrjEp_7HGh6I`&bhcg5h4xb@OxM`uX zmqM3#uQB0B{M|6VI~xz%NV}e^Jt{zB3Ck}{T@(2%(`o~5@bgd-iJ%=4!bj|uh<-Dk z@8cz$_5^6lyblB|>85kHPZnd-#BeJ_k@C*5)NRy}S zPt?R$0RI=d`e$v`B6j9Ua7LQHup-C623R_J6vTbr_JJUf@8yUgA_*NDC69#Qx>41U z?F@iLJD%opdn`)wRhB8DR>d^XWJ+46{_bNBv4b!97bT5SUQ}L^oAmk~grx>!p1sT; z!(SH_n=?=^URLEHB@^51R>6QzgjS-UxUXAY5gn>D8dWx5>);N04Hz&G@}k0jEO{x; z3zqfYRqGHG8{~rA{Q(;Iu?I3k`|ra@R&T|k;nV3j7scUz=3gK4O6cKfke=Rs1E}Hh zw344>CD(xLP+kmeR}N+y47=UFWzzVoqB2NY0%v($?aCe?`CTui5_dqI~f`yX0Uq0j*e#et+vyI`RX*33~hBsm7)1 zBP5$G@iM74i=e$ZhpXn9-8gdMS?DJQ{cqa?%5OfLbiSoZRHOjEMlMZL&J2%%HvkNQ z(fvG_%R8xsrS0m1Q8muPHU7=WrBR6>l{D5f#MHw>Lq%BypMd}fW;3pq-hId7&>d&R z7S2cHbh&DYb@pBU$Ugx@@(_={10*uX-hzN`evJd4x%I;Y!m9X zu(>BCP`St@z!a3&tIP$2P=Y{*e83oD5ga%~qfOeoI52{0Q$FTB5GWVsa*D^~y zn1=ZkJa{)1gLHi|T-=;3jnAZ~OF-Mw{F4VfKV-Y!1rHxjPtPyh?Cf?^$S7{W+a1b4 z&!;WO5g1X3sH=Be^eqeq5WQc3gV7-48Iyap(N00OW3d8=MEGA#!19%rcnDQYr$jP+ zJ4lhyf|;)nN~@p@98n2e7v&5f#^Y4A7MD*BOE9hiolsdA*sh+tSIJ%!#WksfU>bc1-_^ zsk{)B6ppVi1#YP-VF%Ni2+e1^^upz+p$ z-4HQI7?80oM;8z?j7965tt+lE=EbDX_@Xm9nxUU+rD96`!-2a=V2MiVW(We}%4}-M zJn^KkEz-K$wrTeXc&2t==#aFIWPPAC!JLe8dVpEIhmZOS-*te8Yy)2Xpnao8%xe{c zpV?dJa{9e=+kZ8pt(&6ODCMB$LZcGR$xFydvJeG7h-1rO|;gnc^K#~2)bTs10r!8K_$-z z;J`cV1a(~dYe8O`u=X1d%|&cCC*f(w1JEdB z$hFMX-#NSqq$`vgco@HSp=7=eP5pxA3pjTdgl1d^7DE9w&T!l7p|E$i9eC-yPlyQ; zXb`R}^K{Hf1dD}dgmr3LVcF7YR*WnB&slI>1RTdeobV9j4x;CZ4NYkBxj@D0JG?7% zzpH@ARBWEquaW^t5!dx*^>m!NXkIN*xUJ*P+daf8Ydq8#q_*MTNQ&?}3tZ!vZ5)8{ zooQ#2LB0NjfmGu(;QH`)>qKOHC%;24l-kC6vZx6RUbvp^yf%rr*C%OaJu%G7M4FQ2$Vln z2d|y*^cUra`+)1B?y`4SZ07C_e6uyP^Gy|1ILEDs)>DIUy~6ZdInZ}87yL&m^JZVj z?*g^E&OKcsY#5(5OAEQCJsz!<;3(!g3iyBAPwy;%k!u&H5GhW-gcA!JM`(r1!}~PM&7n zMpoF1^v1Fx1V+@R(H(CU8(HZa6%sD|l3MT$=!n)P@P9&1%&N^mD2H+xxtXHx!Z6rvI;>2LzNdU=jm~Au1uYmLvZrjiSb?j@LVS`gy`r-(>WZ#|X z;CyK|&L4Te3EHj}UDP8;cPd3jC?SW>pkLju>1mPL?MF0|_&>j@Lvx~30Fie;m7gr< zHW1jGh_?S*02729i$lM*{yCRd+=VP%L9JGb^hy+G>^9H~yNl=Ymv1xC1GEyF7>ta<5qjuS6T8VEyU7HZj=;jG98<$#M&64Fmn5M#o9AnH*c1tJVj<8 zEy5W4KNqVJ^DMRvZqbK{)i<+cLo!!u)jBKlZWW?|mOLs`@3~(lJ?eI&&P%!2*VAdL z?FIFy&HVX#QC63-(=#=;zzFg^NWYAb9v|`90C5e8i{{AQDBMub{ zkQw}~X*@76uSrQp6klcf*BdhKy-u*pY0NZOZIyncRL^*WQxiDs-!=QH_T~LiXZBtO z?|C;^eFqf;c#;qMj;1Zg7Bga*e0qEC5|EUoKYuxOs0)}91$Qy8r=Hg^;Ap4p;`Z~- zX-}3O-IJV;mm%rr$c!LfA&s3}VThh$kq>!d{s z3h~2$?1BRWkwX2Dx9M8K+SGbJ!S_b`?&|j(4i~_gA!dURJQ~-$J^V!|RFup1I16C9m++QCG5@-|Xd3L$$UKZyrc=oHb?J4i^ z${uMc@>EePMB=77Gw-4lu4H6Ric^?!XD9_PZ7cDPepP8vADtPTq*|_g@yP&>|voB8iDikrsng zl#FOS81KToGRtzO3PCf4z#a|u4IO&9kS6I&#wvMya;)R>jUSGvi3H`GPSJ8AllL&) zKmVdM{e|d}IZIJA^D7_!vCgS47cI>$qh6|$iq!4F)fS`E6{{Sa zk8;MJx8l+pN*nGvFhzK4=CLHjF*!8-nWB!vmy^>-dd~^9L2=_u!@Zk`0v$Q?gNA;ZH~%gpumxnMZvcPF#DQ`jDw_3$$)3PP(kxM{7CTPvDQ&bl`)cmeah zz)k3et}?FE@Nxj{gdEEGpu*fa!V4 zXu6FB!!zha{uAh_P->djB{%SezhPxYTLGpRB8f#IGI3v6(U(K-AeeQHA>^KmKGBJwizQIS(x;#&=fn8lE^+PY#3JuN z@J;I`6aR@9FuV8T-yBE{?ey%{md}k>U_o?c>fsx(<7+*xu|FJOnaSbX z6W-aw%VCE-7V``WNqFP~;<2mm)PL;`L#vK4XaCv$T%A})LmBM~xyL;8>FnExtcRyO zxcc;G*(6B}3FyvXO~Q^jjM{}p^zFhi$gP2d}Ut zkUn#?xDmlOeRimRE01XdrFR-Yo&j#O(IN1rOjQuS;;x`NyI%wRg!*@)%Fb0#5W+^(B#++tIm1F496E34EzzCGXsU(mu80$|j!$C&uKVu_W! z2SiPkN2Uyo`fCc|GxWjQ$zTEOGvp>vS2wnb6@=s|KfPAfaBKOhx^2d(=at{XIst2% z4xd++6L>!M=%W(2arjHO1`W#}*#2Mb`4^~^!;d9s#c>qGbXJRQ z1$q@i*U>C!8ffmDozzOSw1CW`6R+q`KI(>{IH zO7^dG}x@ZnK zvGoJiZWFMwFnh%b9aqVW=3S9HbugMu#wh-}{(>2@AF2?b_#(1`H?AwRK|5Iamqq}_ zdK!G%g&eHidMq<`<*@DMCtR8io)0vZTu7t!gbTJ^Ldg3iszVu zw$_?f*Yv8bJWQTwXIhKQy(<#7)_JFM)8!+F(uGB@ALDc$G<3Xw2dXQ7}mGr0oa z{Cuu7p722p3a})hJYztSwfyzS_NlzrgCD8My2aS;Q4VvRp`-LEN_u3}O{n&YWpY-2 zVYMWX>H149sW_5Alln%>pH#K@VM`fwlu=M8D3hO;SP7>vyIJtB)RTp zY_5$YQvt4 zOCtqCyHxENCp{Zbj4ON?20oUgNLxza;eG{E^?U2={hV_Ae}o$_UO+xpIuaY(*e7P< z+B(_=w3tLf>uL$XdBSF5y8h5b0;cFW$`t^XY(Bj?1Ebp^smHF6`h^cwHj8bFDBBp3 zbRKw_i-;QELv*zIUQ=lHc(Co+ksAKR!eF|ej8F9byplosIbnq}^ErlEvIAzX4~`aS z9cpaIcpj?Y?3xyyxKR3BvA5+WK=e!_iG42`gN0}Rj&OLEGcPxp`9G2i9MgysS4I-8 zkYVd}T1iL{tpOZhe8Z6ZV*XVSh`qGLz#XG+)!hBx4oL=}ajfRd@PLK8`*7%W+BiZ` z#qT|IQNvNI%}_%C9KwgorjHkj@2dPMcNJVWejNPIjxV`Zi$6$yIqD*T(2?OCY2B3i z63(u@=Q*SDY|PvU&Rlc;@NjcCMzcRbX~YLU>~|+{k5=K%st~I=2kkwikB^>*6gT8L zvMsT-IlqXmV|g$E7ZM))~LZ+X(ixOK0b;)r{7%2fXhQWM1jQUwD+ zd+H9V7CIL9FV6K=ObIqJcbLIaSPiG)@%~FGo0AC=jGjKWNdsk}IGmX1DQEYX6;{nFF zhV;5B93AKcgj-=gw!Ekv4#_?7R=j>*aKT(5Bw&Fdo!^v@Y<o zmQ19=J5Jfwn~6h0Rk;6Qd92w;e_`OQ>`B#LtohegiOf;`^ra6Fq8qL~eJ6jiXdtu* z5$!b}PC58_huw}spSx*n&yPVCd4+XAEG#?9x&L-Ms_Cb|!Y9o!<^VBf)A1N(4WlU# z_ZY((k4FE*Jf&6S%?Bq-Z!`b{Q)jN?hs2JA?Sw(pYY$8ujl5zq!qZh2pKZEy5zcf( z`Pk;x!z%!WynkIrthaltoo^@^9(dgD#9c*1#7mz>5Y_QXPWw@(XIhAXd_tUMQG5R_ zSyV9uj9xMNB1g4tC29GcFSM~<1r7$0n%cjF9!3Q)&#!~VEb~J7U*;aISonJK(|v8z z{{t?+Q1cp#k_o!;6?pa({?PT7T&tlt&=!1Atl*-4ec^wPZ9`tJum3COaIDjf5R@R> z7AIGCBnl^a_J2|-4yjvJR8jmjT8~Ie&}Zg}ZQjn5)kzDuhF`!401UAc6aj)&C*6eP zam`+Hp7?z?@k-`{0m2z`{2xxA^o7~-qma0jUZ5wZoYF7b(15-*+jM5ADhk5E7=&k9 zVHo_F`pk&Gkc@y_5hodgt0`F5M9j<^ScIh>Rl#g#Lo-7kJF}8)=YVxt%5B8}qY$R& z1&U!Ux_$R>TshzzVlK9w$yf5|S)o_H6VWOcMx-4^#?O)`%(xZJ>kfO0+8po5fJXraE}4 zk;mB)v;J1h(k}97`ce(kNiysi?r05-4Pb8CIs7-*bv)ecV(zcQggTK&P-Eul+qpOx zNq8RS+47j8m9d3!EChQqo|7O>Xd%;fTL)aV;=9jQFKzVFx_ef8pIKWR(|7Xd{m`dw zn6{<`iIX8rNQiO0{3OXm+97CEy=PKSG>o2_u!G%75qqi?m4)G}*OJ{$Mww2z#U3#$ zm>{9X=R%F<5*xn4I1=fH%z85R|4CdNy&GrFo@8yg%%<&BuTQNpjW=D^`X-$8pl{)c^ z*Pm&eNvI-54OZ3XAmB^|uw9W*wXQd}1j3E6h2q!6k9hg?KY)=NC@6UW zyJ7^Gk$N^$SiP_LGz4UQG?)DgBD>-@t9} zAx*D0Aj-LF4t$`_=7LmDF~C8iatZ@ZX|Uem0Yxf=bFFp2j=Ja_GqebEZ@$j9WRNd& zGe_wDI++*n;?sNZpZD)J`9>7#qH@2?DXb7$qEPEKHLcCnQ+h&iOlo&ga8o1z!@_6| zUOu#{E+F&4son9`5?1LsRbQ+XFIqlFj= zWm8yzn|)JAFbZ5G92j6|vR~dAO4LJ%C_sPjDvQ11+L7!CP;Ua}aq^zyRuxiTooacZ zN*Oydc`8`JR-kJd)USr`RM(6L1?~ujjg8y8W$pZY!c61waWRg>}y~v<9Q6246XJ>z#S8kBY>WD*`Q;c;3>wQOi75 zex)I`+gMYQ)U!cvVSBcsK!zPcdtFb{+N*NRxC4UqtPOtfIXtJ~64K>)0(a!h2&2X) zK~o!`s+1CYWS+ga7h8)}frX+8zU z*EFhJzY|jCS7qYP&IaxILK4C1_%>u{cu;5zXHba8GIWeGLa0j55Vg*%rA#7?1Hk=# zqj2M>V7~`NF`1M;bF0Z4e*UUD3U4xXM*6%iF_ie47c-JqP5wGdSOfrrSAG_V{0ch; z$#%;?(PBzROeg4%ac`iGGo;bW_jE`Eot(99TnIbf?fHi|gC|dXKReP- z6)Kh05izsAR?jDkh_T$J-PF1xMGcuxZiMR0ta^vs;NGo^;ysQ#Sb%WSvwK&%ve z=f65pdT>dZNlP-S3A+t9!SrlgiBQLXGI^-!sY8{n8+xNI*UTg+sIW>^YD~m(E#df9 zHGBuD@-q#flvF;*c{cEiL4mQ4iZ9VEh%dXGz#MxiFYdUC?d}`NQwa{=%C<`kkW;lQ)n=mpZtyh2_&|bFh z)V_75cLa7fU%^1r?C;cha{std<%(ga;+YdlVSQWW^L5|C9kh<&jyE&IhDAuN`uw4Y z-A+jh$isE^FZKL$q|>&XOu!ho&a4_*tfsbZtw0M0%hjS-G6=Pm&nT6xb5SdxPPxtd zofkJGZGZR=fkJhZsU?K>h0Iol#lak(Yn98)76f+w0hkR?Nd&mcPUU;wuxq{Gb2Z66 zLuVAQ}o`OVmeTHLw;fm^BelT0Ktw&wZ0TUKh+AG8gArDQXirjG@lTSg|zE zYD99aOPRPk*6yC?tV$_!An1DMX)0PbzXS7pV&zpzbnUhHS!&P3p`1YFzKH*n%W2WA zpNSXG-|+J6oqRA^XGeCq|6QT!YEY?4P-*mCrfOxoT0h~(`qMdlPs*_&@J5^}>xLSi zju0I+G#fS(*aji0*OrJ2K!A|I>wh0sfjyr z7hDBYRMhofpa@wMa9hQ`{Yn9_!d=hbZ-~&a_hX0We}CC4#_pl!ONYVL;;oL#og1Q& zWnnDao%_bLsfsArqSrcE9sP&n^)FR5sVYqDoW)zlddc6Di?RDPJR_+%G1l$Fkl@g! zG8}c`;Zb30w52G&w0tM0vS(zcb<%?+IlgHUorpI7+wjgnnN)gmgs{j=?fvFfIXk=FAgpm=i$p7*9sO*?a32AS6g% zsK~ti!CJ9z6sj5BzNW~rmo5Qk{ zZj-o0%rt|?r%So5;hAqyJygxQ(v{hit~Le=jwi?bO4gKLHO;6T z=A+}T4JHi4Y5-Ga(x98eMEnyDg@#V$Z+;sDpO~+SV8nRQU#AmU^Fpv3%b`@bEdPPu zCMVI8${XZ=!q|YzpLD3r{D-tXs_aGr9}<%kI7Ue+E#sF;;G(LHJ~7z_FrlWf__jY` zb_ZY?X;2dv?($L|0?wB&zK|3LWn4BzPJlx91%L{vi?974EzqA?T-|`%H{>Lmi?t{BeUv|3-wn#58ig$S9QUwLdbO15QeV=@aj#@ z=;)UtW9Fx@oVN9fzGc32g3W3^PChLN)(Q5~Q`?vAylZ*+ZE*}yo_R~=qD^`I-8biq zU%H^Fc~pV1lpADB0Q4Bd-sA_~{*0n3kVL zwNhf|>a0zsJBmvK64T4tB3!sSSe7*>!J;;_#o+QqXk09bEMAtiS5ZI};PtTY{ga@4 zMGvm+0j#u&A*5|+GxqwF&fHX@9J7<*h5A}}{2Fp++sIYS`m%_slZEkpB!&b(UHhIY zgNkNg2J}odG|q?ZpbH?&NKQl289Q5L|8*JP+)HG<$SYX48;blzYHOQry)>wf2|(*= zors5gmFiTCo|v_)>FAhJ?RW0b2^8-9(_udbr_#jtrzvNmFSpp1e0h>H)XGK=mi~uI z{0Q)^@`3+nPCjSQ;ct_1n`wV#Z9|w_M);b2?<%Rja03DGyYaTuRNj=N4n$6@jS*Vr z9_Exfcf(6!lP0f7_;UL;QP6F(EZL$Eqp+QcZE<#>8{#i5;yOV5{H|$`@?JxRm zqwdp@po`jhC*H3-=(MM`&uiz9hUmB6FAM#gS9;nVK6}e^NQi@~=58Gd5qUEU)=KzM z+VS<+T(DzrfKWyZ>QICR?nOBZUaQTe&*VY=QXpNG<1I>~Y(F|JeYGM=l{ec)BQ9}j z#KA@&-EcX@2IB96<(XUyh*iug54dS3XYimuKFxAm;sBPq*UPbTwF4C-ACd=>kLT4529Q6$}T|G4oNg;qTP z2F~DE8qE3x9SUm8-FZNLpo3uNue0OtzF9l{F-15>1W>}yM9ZS}4gpJQut!w|g`I+# z)pr-LdD4lYAI0Y++690ZJw*;&urV@&or>QMETH8w4kWZ1)FE22y5Ii}pQt#Z-I5&X zo|$=I`|sq<<)j_;#eXp46({B`SMp-I%#eiTbfHUJac7*(|5~@f_xflUV0z#A?Lq8> z)z{~AX;``N&&^oh-Kr&ghnXdr8@1Aa%v++V)6i=hs+JY2Zhj<_mv;HSiqTH_btk2m zKm(+bUe_B>8lc~ADs_JcPAG9?E8GegTIl%4`K}WXz`(Y|LK|BK2G^H+W;<9 zN1DA?pR1_@gqGse`!%rb1MPC)SomL)zx`c8af)_?6Hl4Qf?$2{s`$!#lt&&`*8%>h z_zZP;=47kp+xJ6MxnPNrvV^a{mfzhsrO(N}Gg(fSfgsGKoekeGnv)4}{%{>eOTU@?$Pnj#?ZW zQiTJ4Xg1FB1t;vI#^-4}vUjd=#^qb${2`@R;HG8fbrk}cvS7a<0Y^SM&=)dx8`D|I zn|v*>Ybh$emX>*W({5*=bTdXNJ9p$Q{tbnp^G`*qa`+-{n*(X(^LHL|QogEKCI*Sw zz)g>-ZJ0UhNRpr8#LWklqjTwTs3tPc)gYS+@<0mml_3dT*+S2(k|?eL`U-{Vyx3Ta z0&~FPeRn_^sRUG}C5tbe;^tAJfN)*xa8T~uZiyLv-pG9| zVSF*~qDI&i5>P4P>NxFxwcN_TQRNQECu@IR$d6gmZH?pPXG3K1+GTRt-DY)OQT|;; z&NLMWt1AgQlOL2TEumOqo-5x_&lyg;-+;`iL8H#sR}C$2zG$lnRvT1}@?D&(Rf=zlDQHj{_t_VsRU%gMTmj27vTu;=aAv=i*N{HeuA}RwEUEaMk>pnk*}+g zKtV0q5;u-F>zOd zVIJ)BMc^SPEKZ>(zmO}2v={BooCR_6Anc!(^*bOM4b4zSBZph&HC1A#3O_vSpfxLG zB`KZGZ;vF(S2bOxy~=O6CgmN}IKC=PDeEYSMUqb=HI?yWk}Qe>OOeAd6Rp^v6rVZ; z{2IcT-^1dSH5v&hdvumJl-s73{^c!?>d1L0Ze*=R#9%a{Bu5=mMuN?QpM*iDZhV+ zk(luo!6GZLBnmUOqLI2sp)FaUOF}g4s|XWxMgCnna2TM z9$RxX|EvfmyU}nST9Sn(G;4qD>D4=qO~~D0Rtn)x`%#{7gd#)_seI+oW%=hut}UpV zZ8?HjrhKO99`ITiAVE%)c40`YKhF)zl880kTN>reOtc;1X&WEg`6UbuJ+Fvz!?}1p z(K;waOXf7f%+aBbU zCR~<3Fzj%`2MU1ffM4p9~y}6ZH zU^{fRpj|=0ff6n1lI9>u6@V3)$8F+_e#m&e9}>#w?zgyqIMdjyst(=Z2Hwfftmj^B z*2&LQ<3Ch=G*n=ham+M?wD%)=Gjdt~nkL;4aR6A3g z{UodomskzGD3>_hCwTNi^E6~sTtZ877hIK~@BuVZB-xea>2u6t#D#GIABv^ABmm}K z2%RWnCbHW~0r_IkZ!4v7M=G-!ITRWAylMDh-s@D(aOK0+%=Snz`Ppc7etpp+pT0gq zx2AMSdq?%OfeP;lSI5)C?8`2<9fUW#IQLCoY@6O_Xp-1U?HIoSP^S7sVH7K0!R(51 zS5;Sf#O}k*rYu5N_<7!0#iFT4#i@>JlN!5DpWqs6$_DK$AAf&E!L-mW+@{^&inOf( zl!IXm$m-A!Gwt##Um%+TOKImb#@^u}ahBP*;WguG9^@Y6^h$wM-_@Z9J%gyVP0a=z z>S?5HFsDWln5#Wnxx4Ob(A~_Ytkcq6Z4fU=tuX8yr_B?fO8|60w&A>87#!$N=2Z5o zc;8j8UgnMHE1?AwH1?hi-zt^woo9FNR#VI`)a+Qljgf#~Lq&)SPBd-Bwa_J@R!Pu9 z9JK`#ogo=Zr;y6yz`Fb>`>!|cu3U!UotK9C}yb(vaJBf zmjIF!fmfG}PZ&IL+stO_UB4wy@(H|u9#2qfG!DP?m>AiZpH^hGaqkMmEr9`CDWLm= z#JIC>rZj#jk;6TQTwyACSMHFJe9Q~Ww6lX4MY-#V%@&Q=2P^>{C?NI^n!4D`Q(OYROwc{!o_kO7zY<|x*k_E`IjMg)S(aK<~uUci+ zK+x_dGwp@#KA^&WASfK!ew?m+*{`ddgucvK8mVz9y3H%BR+AE#frNWzt@5w6w*FL& ztD$`F_}^dVam#xoO(9C1+88n*s|NzLJ*X1S&ogVSz3cK{<=JBKKeTPe>aWogkNYPz zHBxu4G^2$G`B&NphpOajcJF#6GcmPr`DCML@uU41N!}c57Y6$m#m*nv>>El~+nlsM zlf%n2MSfV+GK;rLa0Fb{mgF)zgJ;q zhag}8{feruTq$k#gCneR)1~l&#JH&;RmOXEMHuXl{qI^!5ea5m;1ncvP$xq)Ktfky z`73tH`(naRcQ?8e3&eTkgzHQKFMM!U^7m4a`x!?^G%B~SpP|NoNuu*AjaN7YdcF;D zq7or=_vuC3e{mEPK{+fVKhlpXqsH6?KZQM^ zXO1w^KRRqZc(z~q?@i7&kF&olgBzYv%lcGVGdm>t{|bP@qZyQA83Dd5t}+<^tT5mr z0KO`gz$>d-(uVr(6_kWg&U!yT*va6Py70}yX@30KZB3ThTO)Cr;4UtIB_-eq-SEdYCGE32j!ZMUS3Kg-F512`tSbXZbQO47f;D; z66DenuJi61OJ0k8?~>b-U+t~gMd{%(*3=+zBJLVzsW}jL+dd%|5C<;GU%JlAx~uvc z#VCzx!{~V|@?vxWHs+x>rfuiwo7ClNpiCD3tVw(f@W~&l(`Piq+QesZpVYoPu(QA- zNDxq4_(@hS;3$_|v=R=>HQ$i^oWiqJviy0Zgu%A|`kfmC%QEjP z40_*uJ1!Gq?t~`B=Emi}I&=<+!B~4qU5b)OBpgI%>OFdI06Ye6-ubXD4kUX)rE7U48Q1E4>$@lHOY@pu|(b)~s9GDIzJUAT}W+ ztih6~70rI3bSYri%PpMt@zFORQOV_if^ik6I|LK)Vj+Nqc{_yv=K z8{Afa-F`NSD#d$U`BPtUy-FFTGuT@W01estnHBC93hBM=`0eD*aN`GX6ZDU7$t;Mj zK2lLXynY_Q;ec1psC-xwKYU4DoQ0#SikFjE?{{N`YUs=ga=h%nhE!?)AAAO3hvAK= zb##Vt{mg0-R)-ANw3l{^x?1OA(wg!hJmDMnI&ypBV!hXMYDXnQk$lgkvGlN4&y!o2 zVMs3+R}AWXH32l7yy1O!L?nP@ugI%UVZy!-YR=(uz+?+a6=p(9idr%c$ToeX%Y- zly^Czts#aq7)m>v(rqjCK9+uEEAuV+Q(a@nWe5vg;eh>D33hUiW;-A723YOsH(nR~ob`-*VR#?+*@Q(4BY>BroLT z0;1!w(ZYFT^hb@y!6=r%5}8f^egc_{AS!l#9}W9-1VxwL9eaesjMXQkt|Z7Ybj6_R z6|?$AWg~IAec9s`yR^O64R6ioQ|;$TPlvw_IcO?W96n)@kpLQRNC$YRzIB?LF4k(- zjhfU|!vImztXL&C3Fb*mH7}8}xNdcbfCO3k#I&>R@S6DLVm{&2esF#Np#SRL7Zfq| zGj)YRmu)-5uZvYxWghR;A2MSOYVC4K^8KF=+9bq-{`feiQG%BN40U$yKVageSp5p< zKd_0epX`68G){7Vz~&j2CXXjxVgy;#YZVIp86Y@x`Plcc>d6bd}M_r<_K{S<>HoVm+U};Y3D1{ zaX$NC1jL*8&ws3QZue7NjGtWGv_1$OR>QPJUsrs-;ljK2#5%G7tGJ=g2zN~|dvsf| zk+;)Chwi0SbS3)pmQ2n*FND)vJ2Dg#6 z+nvX9BK22qS==n}x+_pR=uBJIus?H3R@nzG3L)X}`$~5CsvE(QPw5}#B`)DtE>IZ? z)U`KdrRJJ)$R7x|rB?AGg^8>jNw+=2iJkQNfW~LnCJmMxRh997EF`P1!1#2DY*z7} z{|`4Af?e!4U5FbvDG%wT=;tFPFe)DnetZM(o76-OF~m(8_BvR6!PLv3#ZJIq1mq4p zJ_5PFJ6l~Ao15LbANZrw|2Y`cj#ggO3|?eqKnQ4}^tgw2&I#T2Vc_wCXW8RhRt^R` zw3ZUxRA24GMr)tI+C^3RToI!oMpMljBY=Mk{n;{p7jYJU5?m8tn8l&{I($jk6JAe# zMn*0GtFjs{0Zst~%?_uODyh0{jhgwT z#jVLQsc81E+qmZ8{N?4HZd)n9;4qByX}rUN;Q8w0j}E&?%k#OFQ~O=l5&jHs@$uSw zwjEMQ$3wru2TFe^?qr%;Hs6T>j!Z(Ryd~6)H^ec^;^yw1M5z(2&1;Vjt1il(8;CO&30%m;%~ zpM(a^VnA67;}9!}!I@xtf6Rd8;*W1yrS+$&Fl-w&faTdQv1<)*)VEs(0i65o?;(#HBe^qw=IpK?|>>oTEHebNzb=hPStu*r$A2d8;!Nj<-A&`bhS zA0wO=VAY~yIML2s*F8uG!>NN}mfw&WWef%1&_wn0h3^cLI?e;DRAo}=nNzSMSRKXn z{^B&IJ6i~gnKSv1*^Lc*KwA3d^eK?C^vyL~+Bl*GsuWrW$7-|HSC~YznRO<4^#v@> zc6H-GDh6w(a3kUYZZQK4eToTVy9OuW`Z5=LC7V)-x2mJ>^;yT+N%QO!1k8?F){>(u zN^8Y5dXYh>riuzLHodye%#5r@vdavSzSQ*cr}#YP0$(pGr7DcX?9SA6)#;1QN@ZgP zhYkr;!#;;;p~`HCvBbtIFw8G(W-aT(H%!lQzLQHeFzI|UriLV?Bv2a{*mHG)m0`3?G3UT10 za?G)9m`K)7ML0{@2{+4SctIrU;(rOixW#A$Ra>BQ1U2dLYAw z_=hDrm#ex*4OiX#29@8Mz%gJo7EU#Rvk}23GHd2M_Vl%AXS!-Hp2Q3} zqzq9bSZh{1jCuolWYiioh{dG(-LHP8oZ;$=xDQ8K-#TuBzaga8_`md4`1g7j2|~p^ zO6o=YO1e1zwy2uecat^(#0r&{tIDvUv1E2GCO1zBb`aY#3A$C7cuipYWGf*_`v#|& z`7tnEs4?td+4C(V(;rJk+)a(Og2m~XaHA0?laLP@0LoFo5cX00aL-B`Gwsko8rClx z0}9k_heCoDU;Rrq~yz*(!ft^`_%xp8@1UlOlrw~gD};gCN(GZt9|W8 z5|bDpKuq8de?nl_+Wyrcv`)2qLRD3_eV~q?)|h!Cns$&b zIK_jHqBOwQjtpZM!w}Xh#HN>HJiGS^V0UtYy&h43Q$^L)8z!v^g!)3eM@3^qqFWvH zm%a3O&r?ir5-8M$dxw~}#_sDG)u>zpqloEF9XWOMOTpH8O`9g`xlW(rlRQgeT&XGK z?z46&cIquDAsBoJH6OM?i~nMnr()1 zPbQz)bxb0n3pS?8s#EPLRmImJ1WpLX|BI!yf@cl1ChQ2N?`FmIoJNlm4*vz8)l!Ou zag=%e!J7`NHoMp2R=i!E*C`H|1X2d@y)}0bMscuX)hlT0)Wpnozi~UR@u|q^$yy*E z@nM#3XwpnPB@NV_(dbi7*T?9vi5o6Ab*07I7=*tyhfVB~xTHd-zCZ(sYO}t1^~xdj zfwf*Z+H7X6fL6r1VeHJSO3o%8MxC`fE~yiV0A{N&LG5a`U6(|U^mrSN=+F8*v|D*v zeV&UDxFWRL!Oz^ilhR&_OcPkUe^qbX%#w*i7V7AnF!kS^NuT;q-s0HOIuWh@dj$Vo9LX}4wLkdG&^ouF2e@`^l(afwf-?eS&Noq zhaVN)Pn*el+aqEwDnru2GP@<)&k<$W5H)YeQitiV00OJnV zVXMnkfnhF$<2XcMp|W9N#|&|Zz@>W21rqGHz@An$xnQ-P9yY@vMPLS}>cUoJ>Fo>G<`fIYS9$XYWqQ}A_iNUZk<9{D8b=Q=vw19IyeZMQM3 z&6~$U<_r|Tz70muw?;_WEocE3^h1%@jj4RAtgvPrHUSH52k;F~AS+Ji(vG>rlzKiN;TLK2g@D$sS7-xW=BO5B%@?;I23uNwC?6dQr z)SKQ$r4Vay27_zgPke1<{ld&F=m}-_^hM8*4svclhx$+2--v!O8(v1NOX+`x=_BoL zt}Do9o_Ue&s5y@b+H#U9PsgeMnOTasX{yC~7cbkjRUd3)Z}vTdx_9dD;zBOFYhodF zK77KtHT#2WOgTBsV-u5`jh?!f%Jw3uAl$fEM@LHK* zUYDLwA!=vv3@%C>3W11AEKMH_zE^Fg3m>(7vu`8*)WDVg2S-4m8JWIEQ-*_jaO&_O zW9|ccKvJ)y0dp=@j9!10FRsSwR&T%ok-uPh5$Cj+zyjeRt;|8w^94#ZGsk}<_<^HG zgXy4!LEik)-U!kx*?=vT87b{E+6i-LBjeu=tfX;=ns0o~AywNa<7aJ(|LD|`9a-NQ z=Nt}9ml&~xj+;&`kC^*~y=Q43Of`5u@F`mX3I>S1SMJYko+&#U3+XmjN!|(v>?0)4?cs_% zMtd?BzSr5gMV5T-RlxNhk{wSnzSv?fqW~WFISH;5^i2Q1Hd{}OV*ce+YE+C)bb_A4 zY2&M9Y|jR%5SNR;@V9=g6Ur&DRf}cBN7ll5?T&lo_JhZ({30I=Esc;aG2i zgYVJw3J;PF???LYB|HToie(=Y6VwmG;p6B1^WRH4iB^8i8QzHJ95|c3_3mD}LsD8h zF5o^~`;LN4BT+N=)-k&kcN?)Bn7x=#W4+&aZw=0^_kXpfTf zh*i&6(s=&vDh(wu*{^T@`8*~TL|V0%8Y-=c^ARV|8}!hXbIz!dr*wbq$P&<)`#pl9 z^JvEke0^!e4EtWZnyA4Tp$$7}@9zKoOw++O(vGHyFk09qg?JQQ@9<j1<@4KxyM2@5+>k_5>f;LykG;#Ek6JF6A6NXaf&ou{CCO&f!r7%jsXFH&?cdO zVtqS_4O01PKmPo_@UXf)Y}HjuG0{rn)1BvAQXZmh`n<-!j<^4tXj$$HNPYbFtKwmg zKeMdq60JFVTC?DNHmq(>m+#LF_marRS z5uSbj<#Su9+^r6vs{N7A10Djn1e3epzFh!WP_%Z;>gSw?0zp0nCsUPjC`iR}z7!)i z4c0un^Yo33SN}+zqV(M7O|cgMB+7pEl@?>~Ui)2uE22quKK=I-cBiq}uGbH>L{FiR z;66Pf{51I9K2+wyp`*Ux%2E-?;aj2GjLaH9HxMXA+ir<80$ZNS6{N~(BosOcyKoIz zu!#b3s{L?$M1Wzv@hO*InSiVO`gx2%VOdGg7=WI~4wc4L7?Feu8BngyyLgSEE|@5U zEOfe1E*eWZU(L{q09}MThz$UzFYVVqa(2=GY2gsCdqBg7F`#0xHv*_=B%~Bn3RT|4 zl~Wn2cl2GoHyYd}_V5ACi)i2nsbRhxXj?grHyqV6r@8?VsT;|3hOz<-Xqdj2#iG)7 z0o4t6H~VXFL~25LC|?x`W{-&{J;Z7JwHw-G9t3>{UlTW-c3+GT1JCrO6U!HSwJKazjpU%I4Enju6;sw4Aa(VN(b zSC7?V=7SJELIxL z5&X8%+N)D~rzW^8T$3K0UyxT=#8VW=9T!p(^W@(uAcrTx$m}=91jxokLbxw_>Xixj zjkb#>rkA?9ng{D&9BLXOX12`K&JzDs0={$PZU<<#m%^O*|5MY~k70?5j{>d&DCF;8 z+na!#{I8gTOTJLsY@TQhj^q)5!BWJ#J(=f7IQ??DHlZ~{-NLkuU69>Ma>w6=QAy*V zLc2cmQoiW@l{i?~ad6f7-jXZPDiPQ@>MO~9raki6k34u1CNplD@)&F+oc=_v_*v&F zu7CID^MlM>sW=mXwi+=0$J)8@BDGohywO?QB4obdOkR?>`=#ogYDY)$Tut0Rm21Gf zW;nKbC_WFIiuzYK)jY3eqs}y~71`fP1mwS6r6_Fx@!yJC(=O$WDI%y#-!b+bFaTWh zq=xf~kRizOIr!!3D6Nrlmo^O3P>UkxFh zj&HJ-7)Hiq#zi*qMTtsL)qMP=OBsfi$nYaTKmWzWFYghdV4e5I{=6NAATCM{d^rIQ#(&V* z`|4m-IL&gJ26GU=j!}IB8nN3J_!@&5m0BMw=Z0_Ub7f~ifQWGYkV4?f|CI`zl)*+F zC*h1DWoEke^349ThzeYx0f|+eJf8wulzEr66GM%uab!(buoW0`>?NkQkLZ{I> zTy;dO5%KqBS7SwQG?9iq*N8EZnhB68Yz3}={I?)|9(J`*iHI=E-#Ll1a_(KV01#($ zd;X82bAM!d{~!2!7j`i-a|tms!`$ye(%f%d=2D?f%_SiTsoZlR zTZS&^Mz=GPmQ*VBk<|I_`!DQ=*WRz^>+yU%UL2hC#Ha6aQiFh$TP?(&WI8Z(qX!II zh>0M6EZpWTq2buTvb5F*cg)!^bwsiLX~#XvxOt^B{IOZphqsZWUNeB2W0Aa~{kXm8 z^IAUtGlXZ;y*n23RT1w>cxUrdkpk0`Daj%SP0rWL*#%UR!3f`TWfbIn+Y5BZwjw*atM8Yd^+n zkA>9uSbA{1R#c6iyOg9V?LE=4Vs;_kvdBizP&F2!GRozfhphgd+8QBst*0%7g+F>U z)pO~ma#CS24+79|>aN^`{4}#Xi3ZJmAX2CyCfj%}a@TlMYC%rM72Tp4(A1Jtf@^j$n z=yQH;_by3Ut=XXX=wRTWD^N_>pY4CzApfssIlDxqHCE5Uhz4 zuNeLv+M99V#!kl85@3nF@M0(mYy8-s$|Au)-;3DpXU`tS{8p{n_^C1H+2F<(@#A)| z1EZ-wnGyIfb(_$TaG+@7j_-$P*8Y#L@&*oseiGSYeW5riBL7^Bx27Ny^lUX3=gsd_Kl2)3V?hCi9aUC)TF_Sr zAQ!T;;~pY;yc+&B=H>(_eW+x;4C9&zf|3l8xv=Upf^%*cJr_XH(8A>05q8$m9wpZ@ zRik>1{`+XWQh^QX#^!6}h`*^vj|%k#V#Mi=eX&^_v}`f%7K*JQts;xNhWNr$x7u!2rD)hna{tdZkt(H`h z#X@ke5ZLLvQEb#_a=NA?%m^jO%#$`M3ka$0mX+hOWfcC(K+b6}QZkVH;SE2O7Oq(K zS`T_2+#Lr;BgOJ-j$SE}Yo;fFe%`m1{*~FRL;5C)d?&IZWf87GR?)B}{Xk#TK>$?-jENIZ}v@~Xg>k8@9g1U5En!;AsPrS7Mz!agvvww zNs5!ZdC?cNPoJ0J4k{M^&HHw~!Ec?daMhU)>{N&!fb_L`H~T2==&KR;)@mc`DBdXozR%&2&TNSauA zdK$?ELoq55aq>oxGKD0Bs|W*?6sbV7_;CHICdY(fAJ=8i zsN()LXdKsBIE+cqD{x&Tejs4Ke&hO4@&j*4#SgMxW~#Mcx-o*t^)Z(Xyj&g1n~ts% z3GFe~uFP{%BpsekR-^3BmjJGpSv9(2W=Od(vCHoxK&_BwSK>oqM(v>{wAP9S>zYu8 zVF0wF6rR0U0Uq6TnX#iMx+}{j9y9mNs5@D*gKSykpG$*CHnvr$AI*l{K*quH8?_LX zaflx1ZB9|O$%zutf~6oY%Pdrr-j*kXh#*&HAOQd*K#^^63C3dID>Rd@=@XNr!9bxT zAbiQ3IWJOd8sQRHA7Kdk#ht+UDHb|kAO(7A_PcG!u~Yc%RT$c2{V_+x<9F>58_a%0 zv+_?SI}x!!M{pNpzI{;=fwns7uF+5A{B@PT?EoDxTz(UiopUX;s5F}IJm63e`U?e* z!MOgA%&H(NQ4pzT%+dyx+zw~Yvv<)FYhP6wgNfv07JaYx0)ccyk(r#^6T~;?YL5`G zMG7$^32+bq4+Z*06^_P$B3L$98MQTl{`eiRvjS*Q;+v6p2lp&5Qjz70YRgG)#gx*( zX8Q&uCkk8wIh$h{2hfoKmsu^SK`i#jE+{I$YH&vdNFKZ0p_smNnOhw;ZaS00+=Q1I zUqr-RK)3~$#h~iQyG8wneE(aj3x@Zp1H<%50QFL$pJOl}&yHqjq;o3MAaEki8Qk+FW zFpKgK9x%|&o8`7u?BFu7w#lB!M?{S8m|^FN&?ww#5pZ0~PX*4M*Rt{w1&$$(A3;Wu z%;2C0vW_{^%gi~C4f}|xtV0=BxPRTMGJ3DB&VA{_ITq*InNt{i~O&>>a zZXT(6WL(I*npJeQr&z8XGS3$_#UNzy{~1@EQw+Q*7xr-sFTDd3hVh83J^fvmHCEZ* zho_AK@#9!U<*Z3cQDZ7{(5f^r#7)F~ayvZsyfAO5)0@WKNxayvfC2(sbLaCBYn{8@ZUARWT0M4K(>7Qo za|MTD++|<0hP{FCr_7EsJF87v*+n9EtgpwJ%KmtX>YF0M?>0ZSONc<~nB?&JmHlyz zvdO#s?6LZLoAmDF_7`=n1-aPCRH`cv9K|$R$ma@jq}(I`lm>$L0joXWK9BA(LP+5* zHgIl9t3~rnh&QNBiwi9@%5;$iE{~l!T{VoL%^(D|hgcHe^LL z51$SpcN$tHV~F2UB1F|8{PM~~fGo(Zw0@)*JwfzLC6Pw)PJ8WWe?5m2vwi2Kmf8_r zJ??h5PQ<p^*AOa24RQGRgh!E$wO%2nVi$ozKM*;UVnwA9O{+gUKN%xu=Lxp zVrJ1Geh59QD;KSfGmb~pmC4p2nZiUM7*LDRDh3jnG53z;(1_78idEVj(w1P7BXjDh z)aqxJm2@!*cwoGy+}lMLlce9{?c-lWFw6kh9e|cm6Tm2rdyj<}vtoa0WTX}6?7|eK zd9GFAYH{e(Vq`@LGSOuLf+Cb0-#S`q z`9@8wlw?P<3~cU8RAdUO>&Exwmbg@NbMh&0?+@OfkMz`0mkzsg)}yzet%T0R94F?M z;vZtlF$mFOgK-)#M=cRBIln(D^$$i~IogvtkhMNqHDKIy!2_peOEapRw~Bf>>;@XE z(u7Ur0`zj#PCNNQ`9qB(w@W53(v!wdtUT%4}W6Bn*AbFQS1o0lEFvbd)_jXwAQeAY&gGV z+waW6p^CuL*4gan*?_!i4A#Vt=v7{d(!8{7It7$`L059 zIrp^rbt{cL2tS5i)LUh*)_xiRUSt-YLm0(If;eCkdri)!RV z6R0{$MaIqbh55*^&JkA@OMZvbQ@FgM+jM=DNFw{`H0^>^@`#M>7kZr*akJLKAxk48 z8$Du~hJEGtznk0r%+Jq@ik($&pF~#XS}FmBCMtE8bpXqJ&;FO++mbQ${oR6rR zdqB`&Q*=9viO3ya4_N)&X*T>{(Xp)hD7M1K?<#ilh5UR^Kf_gAzA;6hRM^nu%a^?E zj>2C9Vc+Ev#iYhI9`BbxMw<@rZY%}=m1jOH=A`UlApr%kKEgXNc(aR^kQ?&MJLU)lJS3% z?yP*7QIHjfwgMUgqJrYj-${2=4WA3)XcQFGGUSpw$kUtJ zEo>vjpj1JWZu`TJF;=hb3i&7Or4ebzw@=l~t|>{1y^gFny8r4+kvlF3!lIkWCwxkK3LBq;-F+*Yg-N(b6Tm7O!>9_7|5~?xil!y{+UeS0l;J6)Z|7o zDg3c-k?Mpf6r?X8+DpSGy4Moh5HGL7I*BCiZ2kKsZOP7whBtAIfd3nycS49|j%$s1 zC13BNOW+)}k${-d8W%_;xYXn(se}GAeWu;&HYuX={5LoR+m9F1MQ%mS+wOPNoX|GBe&2K7(Z4AgUrAJ+ zs#d2!6b}g%F9lqTXU^Y#f7A#n2C;Oo0wzcQR$nU~IerQ32vV56f_TA&1MJ;K54z6i zG{1G@L5rb-Y`>5D9$a->N5O#6PN-Yt4zd|UbCSiVq};ft_U%$?s8K-#SkP= z4qb3TnCR51JA%U6v;YnFU}cVW?r-3hiNK^0%8+b!yaEB^R9zri@9fY|5WR;&ROzCj zW-nkmg#aGj`J6yNWJf+ChoSFx`D(YGQd`K%_Jus1I~STXiGr zPci5`OG(P%MPXd6^RJtZo~GM9jpLr@{#IT5#z)m2Qi4)1wZ|C$u~fCNzG>AWtD#(a zA3ze3siI|6DLltkVoA=NjjJtK-ttBBw~X_Bn~NNghiO&UO|l@fTBCFIR3izOhwDjF zL?uyd{;+C@0-_*Bc26k}4+Zx@iZ#G3Rc&?S=Kiv(o+wel`8fo@v`O{mCcAlc>x)mm z)o^kUn@Xjdw$a4oxxgitTBkHVvZSJz?e7(@>KwY+Tfc#~<$ls&UWby)nB1inWk=dXOHbUaFUzUCdPH8 z#d}cJxX=!9$R6{qYzo(v_1t`rXQMY=m7=t2&qyv zX*a(gszUaB4QT{;ywA$E{Z8;875in9_}~7w!i|DcIT)$}1_G+(mIfA<`_8syk_Wu1 znQz?pjk2}G%cd<&?iW7V($zoxXICrqq}7p+U&w3Qmxk;^vJt~|A;QMJT14D&>8f1g z=G-=gKF3@C2!6*302X*Id@s+KX8NrQJm?jg{cPdKS;y@}hWysR=X}BJC z?f{`)tI3HJB9U`obSEsYgJjJn-_i*@Fb!C1tJ2`{3?m&ei3UEQnKfmR8O)w8(Ld)} z#8s*~-0czb30U2(R_jnRa356jbGqH96y$u=&0n?S%*^+$)*G3470@q_cELA*Z*`Ww ztO9W5uW;RwuhDdWji*o}>u(2CJ1D9rbj=$PZ@IGT?T{ZY%agD?aO(g-~2Aa zDwwwEU&6T})l|G^e@S?!<4`{E)KY}@tLwS8yuD3r z&T?|V*B&@!eSa)ui3qru?O_6MmFcmP?*TJ$Y2FVlv!Uyq_r@adOEYz$MfPPU;rpMY z?I8zO<>7lVaP+Yu{b`%_0>+9c1U2)p>0fM1`QOGO(gXlH?~wKUd_Q;g(lohnXl~T~ zt-*qt^V#bEOceSvvP4YfbvGZqpPl}0Qwu$BpLEPbDbR98tNk*pjsP+8_Ky`?06{vA z@%G9YPwJ;|agpDa{BJ8dpwnMWzp!#D!hOoq{pilRmnN5$dJ(?{J$cIGlQC`wtKif= z$HgF%vAMbhm~_nCVR@-@6qfYyP`dOnJF=VQG^S8&|Zn8xL#=QZi}$@>G(S+69lcAP|U0LF)K_4|nj z1*+KnB^)Q4VXul3ZYLnuNq+lta>wLtSgu>SDfw~!^VTP!@9tmmnO2?xCV4>s@)tng zD_3Cg7Y;-rp{V(i;vhwx4?0O@zalDI+vI#D%C0+UEFPP^5Zj>*0`Bi7b-;DvS!yWC ziM(9q<=B6erwbEU9J?qb{bdHhmjr?YV$(5)_5m`XF|bdT-u9Xy_x-dxuCCv^P)HCT z_Kqbu{3p4KM|o@9k5zfgiTNE&sCRd2{}EbwbG#%pA~N1FuZCL)a+P6+;r#k^?yCb! z6`-Uemj5ojl#;HuzpE)q7`pF~w0#v((Op~PYS`D}#*ws1R|uiMQz+%_du>vs+2BJQ zwL_@ULenDo`Z^tGggRzEG}s>o?$?}ZNJmH5Eg!v-+9AM`1K0FXJ+74I;|D12jEyq_ z&UD9Jx^=C{zfdX}D#Fz0l;o>*7K|+qy%F+A)B(ua+ps6s z!g+l;#2QCh2x*2q-RPkqu0sLK8*QV44v>QK>CoEI$vEYX+Y*a&VxSNFy||gfU+w*C z1KcO0Exs-qgO*gKM&=8MhsD0e^dr|WbwW3r%*8O#+=sryEvP0b(!b8Ow;mQq7~v*=|b z4g2(KbhItxl}MSX9AN_E**v6Ep!@nag8oKd%?(V~b7(?V1aX0uQqOzObg~;;Je*n6 zM2&IViByvNdy_h8>n$qrVC0||=5qr#<@&O+M?qKfpCi}e_6O|I8S)Xm?BKfy(6StbO;dMuD<@P!;gk}K-}`S76Xh0FROkv?;U zhe&@1#A+cP>#DA@9!$znuScvzfsCXa)Y16DGMl*bp`+Dj^$G#Hst0oq`LL#w zhJ^w+NT^p{#wYQ)1LmpUKCJ3#KN5IQu%>5;WHB7TSiY?r2&HO5&w|RqNd0kqF&k_7 zR@~9qfT@1ee1hzvwti@K#TVw>{%+ZxC2OyF$FT7jC&=hx<3ndU)SbLyp1b;HOeYlT zuZj5uv3Iq82kc#f-_<~pHR{?N00Lu~a6rZqRDfoe4%-P-a_U$-WM`NT;Cus!@ZJC3 z>>6EOZDkzQ?8*|kXrx$X;Xgfzm=n#E%(tC&LGr$w7$Z!b9;p;u+NXJqlDgDESnl`L z*gEC@%?`v6QpIc-Z_MH0a53?nc6~d$;3^++>2z5!It|_qfzt3(zV?ZWLFJ^ zjg#4BtH(|O@@Jc(3_t$$L?1IubEHZEQpIzuXix)rK+k%6%xQYg-`i9|5P>f8I+ky&<=D_*2| zpK%G47q2gH>#*rh?USj& zI<+k-isz9)G~Qnp|I)?WBCu8U0MB1rU>Ia1%do+#hic%z`3dWyB38qt*F~=-_8~+l%_gf2O^+p|IM|{k?{yP%v=-b56O`{lUWtcjCKK?+-;C+&1_kQAZ z9mI57WATLw!B-CK4i?6J2@7UJ(s=HYs!Ygwm)xLoA znSS>0bn5zz)W0Ud$utd<3AZDrE~W07dc2i;7LBf~_Tzxuhz~l#X>`xthB4*fU{9he zobIS%xi`}8H7P0_O7s$=(#VS&Dq^SA9JrSqsZS=%R;~eN`j=(Wy#gm=;!ZQP+6^3Y zGpF0U^iMlSw*+doP~%SGyGUCW%-8!@W;kNCG_mZ}nbIC)Iw3Q`6E$x?jtcrDi1uD1 z#r6klPRD77ju&iLxCd%F1Vb=Ou!$Z5(ucs_Ne_5iARjmu7HIfYs5Ab8W`lbVE^-2 z;@I+q@?f2yCqg1gw5|t-K8$m=FSIWgw)m-xTb2fFm zCNTYepa(!+C?}EES0Qc+KJT_Q5k&oOE|F}Q*~m%62c-&D(&_g^E%{o&+5YqD{fcVj zh1?yvG+AvoMW;TMaZqw)I-kriYVI{Lg?19Yny1Q?0+4@IIj${K-9@GKM0FI6il#ETmE~vLu1yR&}a*2#k_=jo^=kb{lyT8pbi#~ z(84#kbVTxqZ`-Y0%RxsEUH`ZoczvqS(Y}Xl5?Vp()G{n2J5{P?_8o#OSt0ix_o&m? zUeg(=ws{{Gl6pKmRV~gT_w}-Qw|ny`y&Kw1M2+-)EE)0RV+tN|3OwDtX5xgEG_32=-q13MbA>W>Q72gXJkR5TcrunQNPUuZ6v>xbWq*G?k8v%LslA)O;MyU!UCdeM2$Vm-X{ zH$z#~deM!E*xxMu%+?*iJx;%_o;u3K#}4f62FY+3%j zEeMa$u3X#V&~+MZf9=e%OtJ*bVPE$M>m?jruH_gT;u@m6Y0kXww!*d7^9Ol_IbrE4 z0dEMd)=*PCv~|WrO{jtkHWH5nc$CwpR#b;q53YzG;^9M_ObA&Q46Lm+YfLnp1EVfn z@*mqWKPeLvn*xDNxlFF?6{w0|aV0p-)R=PHF{{nGq;rS|&wmvgj(mJpk(vze&nRP) zN|qx-qTDlh-3lvpWWj?89of04N1W7?bwn{$o=#^Ys3u%|t#yythC3#f1_fGgtT z<2+nRMA?2)sA?Jy`uD$D|yH!}U)&%w~wojsOkrdsPeG|K0|~pb$Hd?fq-}Pq_KZsEg~h2S`b` z|E2e@!;z4bJM{;5)V#p`g)sm+)siSFk!t(z+2`}(I0yuM58y0iahuh9Rj=_P%>Vvr zysJt_0i+WLSfI8U6({cG4r8=^S1{f3N3b5Ko-M>7k3Yjqh&4wm~X8h=9Qg@@RPp2StEdBVBB z+u})~qM_+sB^AlM3DxrVqbs#=u~f$Sdl28ovieUFk}bWy*{;Q!&NaZx+{4{hPFkxR(&0StM=&x1Jg<{PpxKqlLo2ySjj;#LyXyYda#T*a5iq|j zF<4^FWv3M0us&5k+Odr;xG-G@&XmGSuC2k}=RWWgl^h|r!#+#on_BuIf4;=H~TV$-Jh zz;#S8V$Q{@nS1$$%yHMJHJc3PII$pASn^c+%*l2ec(uLje$)#a_vKGoU%-MrZy1V0izRhC8 zZiks{{W50ed6ypZLjXpM{4K;0Gh7uM(z4iN@fliQQmDI}-X<6GKe@-sm~c9L+>#XP z>8JRPf-Jl$ExmCNz)O`kz4Ig;a)ja2J_GP=sFd;29u(*I(YH@lh&Uza!YmSW;K#ep zT@9TONI|JKmB7i=WXwKA-4*Q<>PIjKieA;Lp5lsu(1`AdPP}ofZ2#r($}wbmzJbOk z<0%E|vh>S-Q+USXhLQUs$WYp0{8&= z2`U-)`{XJ$MgOaCSZWu~SD1a=DG8c@1mgU=b-Ur)vyM1Q~%Sgk!6^;kQ=b3O1ulvd+B>Cw0 ztMN3Vq;}8$#h_NtIYuQOv;e(Tvy35_<=b=DWo>;Kr*fONY7}DqPhcJ}Yz>!F^1BzM z9{AKi9@Zv6xRiuhg2RdIXX`k-ZF7-Ttb={L7JPaG%8SAf)Q95o?H*b;0Ln0;4?_05 z?~{+T|FI&-&m7V)$$U}JsA){}UUBRnk3MC?&`~|R;!}!GDG1HECn;{y>lZuh|Ir(V zmV;3`uov17v^4bH=5ZL7VDTkkYLQ+%66Jwkt|#0pIzgHN8WFcc_Oy$YgQ-e)XBt(z z$FjB+LlvwMv`1aS<*$s-TYhuYgX3@nWyT=^(aEh5vZ<+6BNnoLpm~^3(&R13v_TJ}0K)UhveWfqH4hCzbY7x~mp9KO-@j`B2KFK`%rEf=K zDaBJQ-0_9YX_0M1vUFZ+2VR`oOt8@numE^^;{R~8&Vov;ppcWf=f0J?hPc}lIX_J< zJnh_}9Pd6YHk5?xiSxyv^iw_Ht!oaB|Ed%l-MHAR-h2qkkeCwhu8BJzD!rT`{px=p zb!Z2)OCDBPZ|xCf`Q7C4&S%(Ly)GHFgvVy=FXRjVEZg|p8)7aq)W7YHa^Ker9#$UZ zE{f^W@ruGZu1*G}`liMa?;^;im5BRR*`0(D7FspR1%M~+ostaeUJiE`AogkJXLmim zb~?xnsc|u+)ys2L$jd$mw7IuGxq^!*g}7y$#NV}pAMihPWrvQV3fvyQv3}t5VNK3> zO5g?kR0#bd2ak0Y8}{PO|z_Z`FVsdYbE z{9(JRYTL&BD0>Q9_SLxzmr)p%aD$SeFJuCCk!)!v#4Mpq(Wdm9JSubs(ftWwe^z_5 zCtGnAh}J4&EQqvonaenkivjyFy$$g)UZa(`%Q!W-#79>{*H)F$`TX{Roc=zNXArah zJi;>uOM47tA06eymb`Q;f%q5nSd>wFa~_A}##6JhCMfL}awp5=1m#+l-O^E)D&4$E zYFo7uhSy;sSxPzzGad4yEdahs7GMD&Vkh`Jmvae~ty7zj$mYzK7pAeI#0U!IQr#{k zFYZ|uqp~I!x}nIN(}-->se6zj6tPhKYg(#q7uaDuYM}=p_GoZEW@U|&vhMVCWXOr!((OT64WoP1 zKNlNS>#KQp{bHhD%Cgd9@{M3-$cxP!oc+8c(>E4jc@Ys6TN;*vp{EkFNqNFV7Ecx^ z6uJFE#aUs+f`sef+$i92A;_5F#Y0>e<-6NOTTxp$yc^npM_+d^Qx`zH3DC%YAD&YA5({-`Mel`mU z11sUk^(0Z5+O_kI#Kx&xaRX|^4h7s~Hsw+i63bAKm0?3iITs50yLTXq5F^4tdNs@S zHRRZ<|XzIC%$jdop!zRCaXQ`9kJ73Q#?bzX#IA)p846d)r42?&4#SMd++icxdT z2FT6Agyy1}6c%Y`fn`6^;hbdX?C=l`dGwXahGSAgFWW(NaP%*YQF(`e|B=EIpi zuEh2|+-{$15Z_MZ^|F9G;Ravzbe;rh2;mAvP^nR9(kx@jE`$? z>wgaz_i6?fPtj2Mz6iz8gnO(h+RT$&Ihb%fgzjb z=mm9@I#X~)d?v~gCl8@Y=UJgj>{F{YFN)~cJ=6=*eCV_Io9&^6U21OA*~Z*nS1gb^ zh!4&Y7EXOAZ(u)C)A7-ngz96yUhV#Ewo&P^;6$464)YWuEwP{)7?#Y12{hf`G5RTdjz#7bWZt z{pFo`vSH{J$xh=!&N=P@4LEwy9P#)GB0i-q3cVxRukeSi=G<;n-!YRBQl6Td3U8}# z1l!2Ena8M(E}M%ZPA>GGhIj7D8zwPYh>^u zBHS8c5}=}&pw)xT`B;otk4G?iCznhcwF|QL^IyU8@64fW$8M6cyt~V4aZ!m^ySL@& z1wiN^sBTW7c5407t&U$9%UWo&e%3AQU$8SU`s!yGw3)>(M<3O+V+`5~KQTEMn7Jx| z@yV;MuLfQyqBLG*v-^rRq2kn&nQ6NqmUsxt9aJhU-{VxU`2{h&Qbm;jdw1$@rZMfl z03sCi+}@63d9U=x%C~;V=_FnrhEo&|Vfg(OMZQnm{iUWlu$-GWEGL+PVeC2<;AZCe z&Z)UYs7?Ab%slPjtQ|YY6hUAI7yqZ`^*?Nvw7l?kqlUxf>O4-=t=Fd;q*&*emglpg zpnH9hEMGD3)9%bq5$^Ob)sl-qlpMrJ8q0%VX(*;BPahTUEuWr3cvoK@U4!t-_BXzUyMeWf5-`twIsXg>#0$^LJVLC|{^n z!gLdIT-qxAZu3xy*Mgj7-E!&$+&Uk@o#@^@Qlv9@ZJ?klyijU#8THForSc}`gAeAP zIYfqK4UB_Ycn=ifz;$fvq#u6^JD!!*)$Tm;U7q5pTsg?b9w#o; zm`7Yig1(~s6njSx0mGfFG~US$&<7Ms5WHtf`nkklf>Ua%Vp_wF%2wxMQx>h0f-h{V zN|`a|8OAT;8q8$WQU>v@sHXFo?C{JX(cir?Lkm+u2nM8~K@QqwYM)zNzR^s(iRokJp_x1*q^i!rV$P_#H756X z4?1drT;(WX=Pi{by-aLXn@`nO+|+c;tZ6Z6{=JS6a%9(svI7nd;+}$*k&nxQnW3-1 zRR5kJJffjwl!ugBPaNT$wcC&eCLt~mM{7K#R3T^QY7Vyl5%T)eO8h#OF5VG!GLs&f z9|ech3{VtC?<-XPleUDYnkxpyy><7=`9T#H=^^{y|;WBeamR&~9`vUJM9fd8S0 zsm8?=IUl3W;8SHvpWYrOFu^#}O>rmN?-m-(`wXU4s&vO8IabI~g(V$>UxoywRDDhj zyX-yE#+;qyH;2mUs=kKV57QVpTy$u^&UDw=R}_0)1BnL*XDZ`D)!{F|^w3}4O!|el z{#7|2F9HEtTuyn%eNIVyWH!v_AnUsGz1>oq=+hsb9fSJI-+P3gxq67wW{|i;whk(5 zf~}Z9=DG2SR~lrwjiqh@SBzjFt&pPVHEnd8c@otz`3(K1wDIr+$(2X+xv2h&SJ{1{ zo?q<(PM*2&F#Fgfhms}{mBJv(Fb-Pmz{S$%qv|SP%y37~^{5@YNp@-#TVNG zr8|||SNpQNjf;s8DR#L&vM!%7>}TJZd)=h0+i&Nj7pQZK$>Hr?R9|N3qrr@)kbiF9 zNy$=pQ7tkzb0@To;t>ZeoqChAOB*z8_9K2LBdJh;F9iWEz75z>#=6KPMlgjiAf(vE&UuT zdY&S^5(i^N`s0^IFF|F-0t>_Dhw9`M50@ztWEx$WjY>HI zL(0Fr6<2ZdG#!=Y|ZAayd&;8brC`9w>o87i8NVk}+&OE`n zOy5)DY#E3iWcJ7BvkTV|NB14^Q^YMG+C!g$G{kAu9>e}#{*6E7*bm&L&f!Ia{6UM- zthStBn$&>jEUnFM`lD*JKgO!IDWKr~SbAJsl@>Q01;Q>cvXZhE&oT#6?FKlgC8K|-@rmt(NdOdWzgN8cx+Mk`=^Srv zVvv86?M|G%`Fk5GJb#P96VO~WaS*2yU*pEQ>!K7}hlF7JMG@S*@Gk1D%U z&)fC(^}ok38BO$=eFN)X62Rk+jzrnW!cZB|-c!F{{Dh|;K2b1ewrUT}y3-9%k$4Ak zI^=}!;6o?&+!?44I!r5sSrh{R9fx`M697g*aMu&(7D)hXe)PX(9!|XaNqw0OTke0- zDSK7zaB=3pcRjfK^XrjMWO1>Dar$fRJNI@-K$gP~eiH4|Bg7uoAKW!|Pj5Tvwt%{i zEm6_|1w)i8p4{WHA)#scl_Dn@zNkJ28Zm86mC=K=?N4YeZXn`m^`tCIOgg!v;qPl8 z5*nJ`HZdzqsC$^ed1g*U%C4!pOqX5;=(`VpAiF65$*PDa$B-PN-O`0xFph{yR|D*8 zR40rdo>OKj@<$0gzKJBVQ)7-}-`}52$ev){*TPLt*()^?zOcn}$dnE^yqTXC-mG1if!qR$?A9Y| z-cyv3P$E}T{JQk=!^B6YMlhFP^cg)dGY_hK5@DjLV^NidkDCWj*;7#P3mKoH`AqW0 zx7SqbFhtuC_d?N;ToYVbA0EB_w(d*#Hk`pef3NYud$xT3E`i<0oY$ZNM1s`ew#{Ii z%34iQIpsEogEJ(!FGM3~L42Jd9}d&-ebMoPbL!(qmRNv38#nrZv z>*5GgP6Y8(gMMkl%WPMIL@3}YHuQR*@%l6Ui;S(mgD%TM^ZKluAbV2R(W_guz6TbC zMOt#&nS_5o?M;}Z?U3DXt_B zp<7_q%nJ`3?IV5iW{s>{aUY6L%IW#cQb-en(l=qvSMq9v+a%zya8ca2TUlK1;8qFFjScCUj>h3=pK-_Rlm*{AX#ZE@7t{jg9c zxz{E6w$!vUcZgKzM1!!(8_v7D11qOAQDp75XuLP*Q#C+?1b?a$*EamoM8OyDz3+t4 z7L!b`>M2Wo-toDnB{E#f#C=Qaw>n{J{fXA?ehmW z@DVCL>4&wFW2+x4tVntaOwy~If%t^5iTO{2C}%mv@EeiGrA;HWYU_4w(+WvxpdoBpd_JQm2W%*VIBX~6?|O6l zNbs$M^G~I~gt$G5jbEq8`;yq<-(s&c?lZX&#ga*ly$v{Y?+qPG-q`~}xmJ>nBoQI@Ao#_%rIw&ZHAe9j@-xGw}>RkXO4taNOCtLoBJ$BV$P6+ zR4AJJOh{6n(wrd`rPBHN?fd%=_IPZM_uh}!>-l;@>7dL}G8}E!R zg)rwkjXxd_zc{Q@;ubz9a7#hhzOL0O#;JIQ350bdXgjK=WZf(L=Rr&oe?+Su1G6U0 znUjFr>*gt({wf1yMdwt#GV<#D;W@R9pwK8h>`t-nL$#M6v?ILy-leZse%0i%Fvs6^ zS(@Bd@$`TeJrd;=(Cr}&5=jp{0XG#=$^t!i^hYAa_?B(<>J{(iYO{RFYd7;&7epxN zLus8ab!#@=!ROpV52alkQmjJrZeDSbV1x??r7p|xu+E(sJLWq#l)E`<7Mu4blwyA_ zIT{J0F$J(kbry4Cns8n1I>!4b;J5S<$$zELZsyy7Jp_K+c&2H5Fi|i{P-RYTs`FP3Q&b1 zY%EZhR63d^Z9bX2w55($r2uG<7-QVbA>ABK;ek1hN^C5<%tK08vfH^7j8s#ajQOk# z-<8VLnt3T>E|8HHG zRe#zrcm+j#w=HW;Q5yA7qdVy@ee2ua(L9~1m`5^x=jr$!I27yw+@6X9KVt{`=92~a>uw4YdfE^nA9@5)yWtVEMD4H>H9WeADns$E3#tZvml z)cO&mVHj)UTkP*i4-8k}A-4nuS*Ha4ZEVrq9wk)6!PK~>eEH6mxOuo9bU9MZvLa0Z z@21vo-iSPu8FzCW;*lTw6gmk0 zQKqf>w>RW-XD^_j82Ui(ok{HXegg6IJSjJnUBw-aue$=svo*89H9_ODf2F};=?UTw zww7T!MHZ6*_$_12SO3kO*Gv9e+PAIc4+965pAY0{`~9T5#aV+}#%y6g39Wf$kdUc` zqlgBj_!tGSZ~4z3<_MPpWL9XZ)Y9@*yfKtT{&##mW`=5<{1-f{%GESNa#OJmv(nt@ zylVAD$R3qLpm2mCc%A2c`w*G{j>k!6dz~0SGCQ?O?7sk~vs`UEovaLr%XvDhQO`q? zh%2o(EcNZuk zj(8~0DYo*7@6(>s#Z`GJ2J$_y%tuO&=M=$j+~#A4s<@Rfm~kb-2;EOqG5`4Goy|$I6aMSIu^BUV}7{9s479t)z$G{lrgMM$g!}Tt_m*sXwKK z*cjetSvzrRS$7#_B}ab>FZl1m>>WFOvsy}aN(HX!h^RR^a+w(4_nRg=z)!Q_>SI5U z@Hdd{Sj|+Nv%XAyJp}OKp}DmAZ4~xx+@M(8PC4gPwH#n2YB{0P+v44lXL|MK;uWjG zhsqnWBpqdY_3FD)I0ZIE#lm210jwX@MdW-N+B0qpi}bJM3MLN<3dpp)RK)x6P>#SF zX3a9al&>t5i1apAt>2b?mCn`)OPMuL*-C;?H@@s#k~?S3{S2ex**Utnpb;feh}N)f zOQDo?sx)vehguW$!Gel=zXdQl@Hg)(UxDb4U~MgRZ7dQF1*f?z@11~1-vT7uH}7Ku zTCEQ6tlb+ns_|a~BwUtJ^>jNGVkw{Oyo}vdESuPlhfBk^jX5Y7K!J{}pRD@*N8=jT zf5{`KY(6w+i!_kuK2vQM3Tj60xy%JaAG(fAVrd4>Lo5iPGa=Oln>tC{b`~5GkR5o$ z9%z=eAGIV%wG8cL7yQM__R=&PAXh3Vs@3kb9`-4^@`TA3<{R}KSZssMrm#Bk*(70x zjU^RfA-bU7I<{(0ohHzWmx@ehU%KUy8W5cRK)X+ImL=NwfW;APrKv)DYSHNcB^ z3=Bz+9C-C4USkhIo{aqdTl-NtU=P3x;4SI>jP0M(bKk3}{~$gdN{y1gvY8MRsUL?i;V#y$?|zIo4m3aCLZY!^1v1itwz1Q1#7!C)ic-f&f%}{*=_+Ft5si z`^&*;1RF?do!-e)sqPk!!xi&v;X%Y|IVa^7ms9aM=fgb)#90FdSXuUtmTE~MlH*sW;wQ*)21-}kD$$QS6w zk;K6id>Cm8o_3D{za`i3#=<=lLWGZ!U+XVzu>8|-vR&#~;ye@=Sfs0>^;Nyk8R>_w zK^>cT0M{>&JQ)k}rKM%)-m87<*N6J27Z3cFUnWxJBRs@^;)DLPBZ?fU#+X%odtjgq z3%E_OAC)UKPX2^TKS~@kfY>Y7Yp!E@?Z>X87<)S4GS=w$pqdOozx(<>0d*)-p zbT0%(UmPw8$xO9&{d3%gP)U`71l2n)E!O~|+i|nl2RVv49i~&&-To*x2Wdc)%n2#i zSq=hW#M}cVTB&EMPK{%kJ4Jl$BtYo6MFvi?9vsD9d4aV&`_z0RCf-3jcceo}Ftr@g zgs)k!Wn&Cz;=Q$MC2agT^DT%x6uq%}V2Lil6?jvbNLo_wwoQlwLR^(tmPr7nEpFAt zx$Ffk2jhQN4`QjrzrLF4!W8J0r{U& ztFzn=#}R6kZF%%xi%Dt21FsQkxif7}nkMt!!wd8dMdff;WeGi{Q71w~&JbF!#@8k# zNRa~Zll`bPl=q5cW9(nA2$}yvkn|&9{!KxW`#y)!q;7-rHvummmbdW(f-yKJV?JrL zaw%0k2dA@fBl#PNdpXM@)K!a*tN1#m4_s(Ir=k-2;qVrdB5<%FpR1EBrKv(`I*?`f zbQ(+(soT`ukzz>-cvR~SBL-W~>ITcVFgi~Ddq@oN=0u9}lj*4-aLba)TXptY9zi(g zXc-~M8@oHLoEiwALva(TxYrwC$9X~UmCV-qu{~etV9J8*qA@@)C|2*G0ri6peSzNh z9KDSF!-m4Vl>3FE?i@Z}D}8W67*9cE;YrjFuY3=0$zP%s2QFY!l7NTE57|8vi2EO` z^U9$T+UEy}xqU+`erKyz7Z>Wu^XmV}iUM3_UqWAt0OWN+J+o z5Ri75@$k*hzua>lAefE3+xr#Y<4ZGm_SuL4?Pp)0;$fg= z(t^t29sXz@i_6J0b~pwJ`ITr|MKOFM@F4#35G`D9Wo_pxu=at*7w}s`fXBr5JVkAg zhp*p4gF-6&?)7sVls)_;&x0gh6~v;R$-erv81Q_5%tw1eUKpu+-FdyX+*MH+n#}p0 z+4nXxO!q`PK%NXD!y(CWBa0d%E%Bx*Y{_9XkI&^LH7~N&U#UOw=E>AN-#L}cMMVvF z2Ug{X-+UDA76}HG<&XqYapSwcuhSHt1t#H6FVip6nxQLj9CBv+S2Ere!-akPx8ADL zz;CG}m9D)6`NN|aIJUXz9QfefPgr8xlZSIaF^#2(Pky$ z6FLw@SqM7i7CuS_A@9;zZ5JjFF~3tmgxHXi_Y>5v@o)j*T_UW#k{wLqr?I@S7o7u&5BVlC zr-8`woBZKvod8N5GK+X6-qrWp*teUEcRmmudhPDwq`unE$i4>~@4YV5I7i4|EfKF{ zo>{!x{G@k>6N3V94t?*6lHaTUz6_pRsgI&<-0+>Po=fq%tVIfy7&MQo;UA_^O~^2J z+bg*Oz`d!j!|z@+wW!jMnlev;9~saNw!rSe0 zieIk(bS7#m!IfuvqUL_|QHSXdG6OvrWeO3NF2xta6O&Za5d$!)f=#LNzj7n0b<)@( z5WM~YI{V0$0B;M9N`ljBqs=(6zRKhBR|N9sj1XMC9zYWW+g43Z82ExTV|ayl)lmr=&CWgbs(XR?hm6PHZlegF zADQ7-<%ty%OlBJ(>^ne?71Fw&o#fMWKr%%?REZ{x0H!5QvVcFppntp&3639Fy{CUI z!|WQU3j|EbS|3#& zOWn4N7zIlp#oC)zw_!TMdQXzu;2~HW1(M%AUVG zY1G)LzBdi1QH3ZS%8N*y#Dz8OtxPZ?@`q5I3xU7}zx=Aj8CgXWE^9ZW5#VhH~ zOr9rC4$Z%_+r1cXM@_l|jiL&a>{_P!iBv^=u{fL#Gl8S;5v%sC-;FE!UYVh)E{pN8 zDW9-%tCw>9e)9ll^l<}Rpte=w(lB*GavgxCQka4_IDFJ|o!K=j2{Q+m*(cO>Jqb~> z@16!j^|EM?vFh;eo5psyLs#c=Ka)<3O!vwYUpT5fE?1t69>^vF+TGS=(l@M3PP+ zCfH;f;Gu?<)1nrabM(hKrC!jC6lpnjJkiGu-6VUXkf)=xLw; zZ;jeYCXgC+B)WWkS3=k)BB|fH!N12(+NW^yC2*|f&tG08Pe0 zXzY<$T5wX$@=uTC-NkpA)%rMS$%UMfRMUfb;t-ZS2k`NM(8BqRwXXg+;Hf(7Jj*>y z88fQB1v`-=a|#FGuhy0Qes*+u24t)DNfPAfo}hGz*x1sxEl zX}&*raPEMm9f{}p2ra|mPleUWDgcB|f+K$*3a26SzRL_E>y|n0#neCeTjMZVY3ks| z7=Wy~t`FaMdoU#{63pYeeruDS>dg9GSM`CsbxwEGIj*W1tbM`Z*@fbfsrxmg>Tstn zhVPNk*cZhoPO=j(sAKR~%!_5hMh0!bnr5yNHdqT zYo!*_JF5w}a8m?rc61hy8X~!U8nNA)F<(6?Q$$Dr*RL;OoAtX4=Bms2TI>%8wFM6e z->-J1OVL;WPX!w7`&4r4;=qnKALv?Tn{~#gs#`fMkIAn*eNLV*@#s(~^THm@^8hTRgdWRy+6-E_FmU8XRsO%YQU0=~;5%an!Mc2W;|kIDpeT*^*v(ftScy^l2~m7)*|wR@%SS~p`{=CPM5 zKNBC}%DE_M{*6ag_Enqp;2Twhp!%UPKJ&m_?-Ti}G)l_*xq8<`UJ=bY*6_V*8)oPA z%<0EM8Ltu5F9gWQ+=j2bWB=Sq#|Rqe<+}dp>CEHn&M269*R*7qO@%QZLd_zDfea}$ zEB+bd_y@Qy=@jal5-FFjBoTwW$PG&70vLvL~IKeJXl?5j}zj8 zm=d`KUy{VbFUfMI8f1Cyzhv+=qRYIhcq6KXr(dGOZ)du80!lY-lU`tdjAijb5gztB zed^h>u_E?5!cyO}f^VP}dareL_1JZjB(ricw=?=QizR)s^DdNlA4YWJXtSrYL_X!Z z|GcME_dwDTF-FeV((Ha2+^UsxYqz&B)il=)#n|Bk`bgq2VL9w`^{a9;j!-gy5u6n? zpOr-eFtxJ0?Br6K{g14Oc~Rao*Gcrem6J4cg1UYl?-Ev7Yuww0Wy7N-mo1jm#ey%1H6YL%NTvO# zL;f}uU6ck*jI@DGOWSyH=agnd7Ly#S98*kiIF^2}O^C^TX>A(*B8SMJ<3>A~?z;yX zm^BgD?9Or<{1--RFc2{l#dSXl1@&HKr>x+v0avh^iZ**_dLB6`r21->yEnvz-B^c#iF zB*U>%+Kv!Nj{2XMwB!=P!d*4;AC=Cm8{tr{=@zjQ&xpT;xUL3-kBN=KbJCpv9|GdS ze>i*dVx>3f-s*WXhfth7p-q08!~AU|5?~@3cCi3>lEGz`3o+!xojB|xUyR@S0s^s*n6MpI&AH-UpGG9q^*O@f$U7#fO z0CE9gcYzTh%@w`^3w&sauDZKBfXF%{7AuQKFdViOsg-<^cJkdWgs|tlefp|9Oue1A zWwrPCy1jFQflPufZ*ZnW>0lx4{(+)+OzS_P-79U=O4Qw1yGL) z6Py5)?oDz}!Lzuo)|ldI7R@aaZ69E^Qzb=W3vCOIhv(cA>dFls>hF^)ojryO&bvl| zI_W1em~n{AlV#QIkAFS9JsOj-0no~XG468!=s6{;aYV@i(FUM6Rdy7}-S@bHtw5`t z0c(RUKBWe}(1d1YhV3Xzc*Yrc%KlWK?)W13PBC$Ld;y5Zn9k*iFXK; z5C(;WNBsDPcd=%l)iS1k>B!wHqz@HxhD$*a-aakExF0u2*J+q|Ov8}$t3!G6VQKKGIl^GCOx0pj$BgX9o#25 zh>I=V%~r9??i^~?pQ*NEFSJ7K;?vF=1Uk1S_Qij5-b8?-SB);DLWgMIgf&T$O;U zsF#BGgGm^X=ar@W zd{@+vnqgT6FA&cj(i~(MaodO#Wm;+wP+R#JGTIkAiIzl`TzHw;N5qtNAsU5vgJHZZ z1nZ@*wkF4LPeH$?AF`R4SZVj?7~ABUx=sO$ydTRT$5W zz0zsYh)RjF)<+RXH*ywtakrUp+PzZ@eFQ)tWoG*EAFV?Mrwa!6<0KN9SxPh#lEy;I zaCi`{v5e%F%qtCy46Hu+0&vE#oyF&5cb0oEA&QSr#$bSr&T3Xm87o`RLcTbpHqSfd zSZEruPEIr3ye5Djxe>)>pj$CF5G6@@Aup@R5CJ9ZkpvhA3iZz0z=ycGbi%-ZZGGF79F=2c@qQ4M|O8EUlw~AcpxRRBK#%6 z5-J}&c>g`CAOkHmI)@njlJD1|dU9*#VBEFQavIq!mE*v?(N;FyZ`A9+eCdp+eox>$ z95X*_$~-6GbrGb9fD$O<@x$sJY8bDXjES3fgYzjFi1cSiM9R+@R%tStudHfAg&XLY zw$JQEB*wf8_2WF6JJ{@Oe-g6OFA=B7Mxh^G%7s?$w7ihCyI%oT32pPkF;X$_nJ6cdwCl!}%-=h0&qT8=yf@5)nbP?UcpjQk z%t4FXGutfE)e|)MX>l6tYU}yet#xTR#oWac$c*MpyhB`T1zl?} zb79^6E1Em>qhDqULoCD>Dw~jH0NsFx}a;m9Fw)i9Jn8zj_CxnVlEnW!hjM!fHr{I zjV$Ez3wAHgkl4p+jg3iLu{8xm*7!2JPG@NiHwK();I#y}M=xd3yzM7yr{C};q;%VG zN29|51kd9qW5hX?1k2f`g-ju+8G!j9IUCOk=30D(k|oN36BeKJV~^L})M37@>+co{ zhp24HAF3`E!o%E`q4~2qyPV-X_;+RqDtp__u_2f5OD*1-2Xp0q=E4Ye|BaCAh%@ig z+UWttpu^hM%gh;Ll`lXw>uruy{J6`%cUzxRvbH3id1Zl_iXnRZ*6EG9j*Rl(%svaT zjoB>zK;}LVcUjKJyEusqhc8s}Cde)B#0dv1U;iqkw`4Go@f>5ZuGJH~Gn0!Y-?%7g zJRa$V2#@DW-06;qUFEgMbtZ7nMe++G5i`308HKugo-yx)_<6CSw`3$FEK4furBh3x z-H41m7S*QJ3*u<5<%k`$=GZ_vuMdM10e??ESbkUCpmes`u$c8-&FGfM!CiYv@MZJ2 ze1GL~XM;QO_k{6D19@Y5`poA)!JZE%p1wMkJ_@HX(PA&@jFOAjC_K#}`HXVDjvuo? zc%r4&jmP^xikMuQ84W}{a*vBfq;Wdbj^&khcu!w9IiAl<=AH1npVxFOOTb*oNnN`w z>z4VVVB^KsvBdYREf-qc6Fiu{51n=Q$$s<;E9J1O1xLhkzj%JL1$cgv7ekC(O@;%H zW1B;;`yro-khh&^k8&vCmU$Qr*l-qs@8CuT3z)|7YVh)o-%=V8NI7te)KVLQ&GxV1 z_2S7~mg4hUDQiRg{xRKV*Ph4UO|)32>>@qgm)r4o89nJN)iI6miQ?lvNBy)k-VmzN zWd%CVOH!j{DZ)#^XdP0#TiXz>B;7VZG~dJgo3JhB>?cGggR?9z=O~&f`!o+8SJc*k z=#$ATH7uCXx5ei$XBzmv&8uw9Fn%7^4o1+Xc02GffNZfs*Klipbl7I1=?;?#{R#V( zXhvg&%XKY&LO{(~u6VJJ-{L_En<6dq7rgwqk^|Vub9Me^IKkpPl-8f5$179}34j5> zFI8!1?(ka0_V<)qIO zo?wE_oyK64MNtMmIYDR4s|DdH@Bz2Nh~DK`V_!M*hDky33*FM39j29td7|lU&wU#I zFCG{qS?I+|->VM~Xt>t7C1f{*9;PpZ+C-nW-7KUzHR zs?hBX;S#hoK>F$zacC6VZuf65K!qVM;}{!gCYI5-{jLwt7vAL7M7FX>j51RoSwKZP zQDNlEHWbIdWi?D>T=&@n)bB1si2}l2mwQ{Kku|ud8>mF~RM+RR-f<+5)B70}+9<~X zkVudd=apEA=-QR6RQZfb0x4eDm&uCx>z6F-Hh)31N$LBAq%D6kK%A;cO$Jn!_S?B> z^KZp+4ZD}DG@FeGU{f$>u4tM~m{OSd{B*RFayLjU^UX-b!GEGF$Jy)KQi5_?VE+umsbb#)6 zu?rV10LSKpe~W)kTz*82*lJR?-M}KiXOEVX%7VJuAzGwxEN>O3RhhR8-o@qx*>`&Urota+UHTK2WFmIMcxkeM#>=04RCGCE9`PZgR9j_YKMSxe zU5&9iJtvX?h~Iy%*B+CyGuflUy8|ZkX7rYg0m>y1TK6C;?q6o7z@3^=VKRgw^h#|) z{bNGjPeBr*f?{NU_cEHw!xUigMfqjgY576`?U6X-3hcb?N}@~3W*;pw$IO=c zQHCwg!|fA4$cSrF$hfVAAz(7|WIeEX%pM@6;iRjUE$(b7C@h@%Vx9#8DGP~$(I3sm zFEE|0N%ye*pG5z4%fZoO9Mb_I%)}DHGFV1X>8fv8o~*h)Te=LpApE=HwV*yrx?1q+ zqa%!2WnHSI)-9pGexfTG`nH=&rFn3uWP~7=l;Vn3)ufF8 zW8UV7w!^?cQItSihi=-&S8UDe1CVKt?h*W|^#3f4yQ?OMGAIyA60M{Gy_rQ+WdNNk zgNJ*2ZmFxSqw7U<2ICo3lECRao|2_+rx^X$LALp{q?RJec~{vzwad9;cZ-%y;wz93 z+wRhxyF680ZGz5ADwC}*8d)$!uvT*g`}<9g@Oi0@K0o%Lb}o{4-~*n6i4}BPO{8e{ zSPmv~&)r9_vr$dw1Fe2Om9IKjQKp`d=EXcvt*+0&aC67ocW3U7z$kf`D{?PI1?}ju zf>P0hl;_ruWu2Bn{7~w zG?7s}A$@F$4tg{GtjSe-+XAvB+DeTV3+I45yH=hc&Dae2jb}$G1{>PyAC-g{X}Kb- zKcQ4(p7FjZgONjGWGcT_QTvkri6a#TUp-R(^?Uuzvuzlp`0ynMpiM`;KDkmg@B;6_K zYL4PqbFWOqS0|JqLba~nzG-6Eb~<0;ERVu60l=KM9kk>I1;bQcFs(H3e*q4)2S7%d zX!eN7eF=Og?D0#QZDHO4{dz^lu%7v8>7YJK>|fJx7?QmquJm!|VSoOX(Mb6F;*~Y9 z^pJ$j*uzriB8cg@&hyi}#D8pucJbw_%X@6|U5)Hbz59W2KEj%+o}Zn*ief}BPIVmf z$qCCY)e1g;0d0s~={+EHb+}$UQZKGuX`Q%HpGX;%ghp6R2x>ns;cr-TvU>vPvylJP zjtZF8QxkKA%Oj=M_#?^FqcBo3VM}X6?sGe8{gS#Wv%Chhb+JDehphC*vEnj|kb@R#uLle%2mHXx#%!9O#ocG*YvKS#5N~WO1?R9KB%3yyAFGVfK*rz_lah59FGEd z6u7C_U(<9~uqyqJnD=Z2IA+j;Pxb#hJI)s=qGZz`qx$X+Rq(tm?bA7>aQ@_0_4ndG z)E_`!zrR!UG4Un_;HLbvtS@F z>zaP%SKO6WAlGen@TI7^8F@CB_CP$&cKpr*D)^(z&6YOtf{bYVk{nMpA ztl!=)8$Fggu9Q40BRii}vkab}I?agWz>hqv8BScTI5Ghoh4pK|IC^7qj zVj&ICE4jRbtfcB97EgE4P`eT-$9Y+kcg=M`!CUi*Ke5_3+P2nEpae%(zt4tO5eZHYE;nljTFhPzo6m zSOm7F?ZQ6FHRnY58+$tHyC_(wEYmFN^u6Vy<63R7u$EtZp^s9AL4Oj~-&=9xk==H= z=9BO_dYI|Bzq0(e%i!>P#D)fmMwp1n9*lBX`5+F%%kM~NlcImNS&(45Lt%z4a!A}e zC#^eO0+3#SC9S{uIfE$rC8IJY76UwC7T!bg4H( zUM79(l3;-(9RpDGp%is{0Iu|bfv@FN52a?TBq$N0z(G3hP8l}ei&9I!N|W$v+x}`P zCcC^Jx3swIw+&_MLRu1J9M^-`qF~==Y}IS1Kn~DAbCUgOcMhsu;GJsclgm63k`mOp zA&fh{iiHk?yubKRFdzE9jNdHdX2(&xRFJP7!t~J;8FrHU0AWT~oUUhBz$bPyND3K& zR)fw;I|O0zus$y0BO+oY>`8?js@gs^C908{E6`^rQl+BqSa1T0-i2)(*>p0f^_NSf z7zX;&NIBX|^Gv(|ROK$;T66h8Cq8)}OtD+3@sSyANm<@Y<-td?b~l5FXw}`*azs5;Ms6> zM7zxDGHzwG@pQIJzp+ekoC*g>p^=X-eKhG?-REH4YhTMX5w-DX{ZR{NyM87A;6IAu zc3&vj0Szs+{n=Mcan^e{Ib&%K5kixP(hQ*%N_<(}KkMR}`U|w6S?ZI>-{-O%lR557 zzZ2OwxgsZsVyDK6s$-_NhT>n+j(Gmoijm7v+;WveXq@!YLswQX565>6y3x@XY)i5z%tPz_#VVc5navu$9a$75PjlHXSM`+PBh1u_tBSKoY#;k0K zkr~a}iaGdNjDl5tH9fEsf54+^QOd7gihYEK>gYz%bUKxG)G^d!>2G!Dd$V`&qgT>S zs_IyNKW)_y_i%ljSUZ<-YWzG4VFPEI`Y%8r>o;neTKrMKR>nm-SxL#l#folmwRMbO z0s50|3CE8NjVo5|kNABC*>Y~<@>to|jTSNqilU%J7*6r-*#R_3*-w$0l!xAt6e9~~5qit})ydIIf;1`og`6=(qS^zP#ts3bX?iU! zj4u8Cd`cV^RS)uL5* z(p(;7YB(W(*g2ox84f2AN1AyYiWZ$bb}Uv{an+^;at`2-uSWksnhil|JiED z<74ajpkmR%*9raQTy_6;ALpN?Efydc9XNXQV~93v+%OL(?EWb2UTXZ#`s}VV%08EfUkR2rARNNgnqiv#sNEW@e1c8dx=c!A%RjYupC%iuYy-$6 zIKsbbbp3x`SmF9cWw<;dhoVdZN|`}7bLms# z=r7zmt?LLjamZe5{~W6>IDxRvf}k>Ae2i;SJ{4w4`hqd7eNVC6m^`BucxJyvhY_{R zT`jx0IhWqe5ot`fe5}=(eL#CSj!*lwoIU&EZ6qVUl+j;u>#@nI9 zV@|f_BOR$N;K4K~f6GO1`5Hy|)NPd9&fa0@bY%SlK4`OgTGLDW$uj{e#!9LtrviLq z?B)v%=(iJsb1^)3Lg^PE!UP`eRO3j4|0N(_Pr6K zZ*=|lb1m&t7g+U)aNIbCgN7}^r)_cu#+?^qG7 z0!94=BeX83BIk?xdd((=*2gQIj2~Dn<5!{yLsnj} zmr(FE)`H|P(tFr^1ENbI9vSww3nvkLy^v`j8Jfp4PpnHbDp;jiCMX3W(rf8SvWvP^ z^CZ4kzzd<5ZrOzluaB**9#^`rLvjcq-^}HQBHUd57+pKJwJyI**RRR4%^?0!%$m5@ zPagc^#1h~3hPlYPipuJ3eJ1r>dqgRSQ>=%}j5X8YHy;>aWo$i6c$iv^)2C^qM|S55 zMy3WuoJ!OdFSWuzp{xoyN}&Y}fV+29+&V5pQ@96pJK_N^`Qn=W)2XmAkHo1XUm%~XeQL?17W=h5 zL$1`Himf%@dLo$HfV7(7@%lI`{?A&#)>(hz6cPJK>Q8{Dbj_c{fH~uhEtcY~izHdb zkgD7zt2;TR)wW`+b+K@*Tmiw>AqxNn(Aei~ua5$ME^`N>w)^1k{RET6!-@^k0=zu* zK8*+eZvF*95TM$wtbK)nG~oRAJ!MepTIqzf2PaCy{Dmrrj;=i>o-5S z{ihucULP-X_VLs%p5>*ZDvF}8H4eo0Eq=NLA=0FEdj2y>m?Z(KJ{h?%2ymK$c=I=1 z?hgIt9sA!!NO+q`&G+9)M>2TEz3*v^UbcdvvpwFPKRxkk|4%*;&AuIjS(0gPvYAn* zO1)0Rjc_1rS|buD091CrU2RcD`L1(U!w{}9(pb7iovM|3qk)|#kEl3Zx^cNyDRwVk z?TokRwh^9SoCIP%H$e%f8zd0myRNOc%F_>DLmDO?>A;fl7T%X1qWy{S_c1@4+Hg$` zsL4JD4DuR26k?Ust`wPZx%-2=UFpE49R4AVBt3zZwfnjM#4PO05lAO3nCqLw!Q^&2k!Ch2uB}D!dQH ze*u-o=fU2Q{=bQ}gCzzG3JAWz~D@MAu;|`sE5BZO_ zndsA@s9J)cfFolc<21Jls8^i$-2Ota?_R!#kN_3w1me3bUAUR;7gGMz(ML;&VZ2CC zkL*myUV0zRXZC$1q7@<707!kDY8X2j$0AZ(F-bT+)IV-!qmy`0zaXkCo_lIOeeuSj zkiSiDY=3-Azb#haU7#4YC2K(HyrqcH+fCDdGw<>D?s<^x7m`$72IVrnS(JiMfKI?sIs-Cqqrz%8=SdBvk(&n&^1Jf`jtm6KxZbxnz*#B^goi zf%vUYac^di>Am3}2|09ng2bvFCF&08Fl?jBWP` zXCrYrm!4#gq+=~p2RjP=`^_Z&<iO?Bl~a)*cTfYa|9|(`$8D(mVxie-jx^_6am(Vu6C!;{!kDwNQam z$1`L6K3DeV0!T zY~quNa5F^7H>~yR%hv(XV8M{c|BW;>3*BL_8ZT(B>=V?Yf2u(PKGwM>n~}mexzTnp@*1gGEkopH4*p7D|cW#TD2k^s_`` z4xgEiPjf0ebm6U*cWt#*ZSx+6Enp=U{wG0bO`||tedyF6hrTumY0%tQ%}=+{8XHZ! zqh;#N=T@j{xii5EJaK^chpp+rcA8%Q-izswYGYpcC&Kj@6GqmYUb;jAW>5FEh-8-h zd3c~x9DSP6_&Z(%dj4)Fs>{R{T8Q(-!GsnxTd$xbDpTW3o`zcxSIEDCjcIqYk7Rclu3v)f4U2br-VV7#%Hf$r|PhPQS()V)#g#4^A% zEt==BoYsKY*fV=J{+;j(tXsC0oAJcSMS=W96I;xh%#{t0Tlqq;-TSbg?W<~(#Z9gi z=46WU>WKLLhd`Np$E^m!hK7Vo%69mzVXm>NemkdwBc5ELz|sZli=1!I{*tGl(;5m= zgB%PbfPsy<94^s3j{zZgEBJ$vgI27};r2By26sSxc4YFo{N1?;c@Dbl&LduTr0KSd zJkj_G2`S6gNj~5p8kW9A_iX|ow03Q5q4Ft(wf|uEJtfZxNVyzl$+n2VVw196e_2~j zX49IFTeDT~sR>UO9D$=l{X+ccmV3+cMdJ?}W(x1vnakgur8!o)Ld$AiinVbd2{gI7 zHplSGgYIac)~#N_Auh1gagc#-jJYj%@dnFCx|K=(cF{5h%^md}9ZAjOq1K8J>qmsn z+kG?HBl@UyU9#XiBZ~X951sKahF}|maco)Bg5x3dj563=@s@xZ6{kSYU&lrJ6C4Yz z*NYspuUgrh`gvR4!{n`O>w-N!SkM?X4}=UFZUyHO7rd@bt8cz>h=FQ$1m1GXgAQ1( zvMWezm+^fB7r;&IAxm~2XZ^Tiv&)$UVE+>{NT!fOpsu0lJ`4dm&=D=L)Tw6+aRyPY z@X6S`0Q78&$sh)(VPQfPuA(lbuStxDoSGonY`SY0V2=^926EfOY~8$Sj;E=XSNPeI zU|JaNl|LI-)ZFuirtuhD0)vjBYhyf@~ZQ}hWJbr?vYyJu)POWE8(Mm7*zj{$@ zOw!gaj`iSSj`CokotJKK-_LFT;aadTtH9aR$chUA7Ai@;OCqm6t+8_tG(4s_&Q@YE6ZO2$lO53kxk4aGN$1G4W7mKe;l3rKa>6A$FCjO z0W-(uv;%V%b4bq3A4;jE3PXXSo;19P*QbIEaPNBo8{EnzCEJB%`(8 zQ?o;;BZKI+OR4T~P3})7wYG>OBHtmgH8Jjj7-uzIr~n9#KqS*anh;e)GdPh9Vm<-2Dls?A=Er4Xd1LLRd zR;SfPWDfw^8uut2$wM)z2i*{jl9jmo+3clq_pUCX?uy7V!KN~M((X|n;2~ zdetQbmF%qKZQu?yfs5M|@~q$*Ov1^~+A9mej8bLtIKrEUVxshy=Q}3zg&k@zkb&T3 z(5P`JZX_cr(c1kH1NzTH01Hfs=apPzgAmRX3}5q~{4o_dkX!B*Pq}#8luS4Fab#W% zOUag}2IsVNmiGl?9&T?`jXlxCF<7+W`gTxi~a6muMn zPDXHIngAiKDB6hYLQIE%SQN-b>d~(&xJS!EbyLjUv9vO&5J3w2`ZLtd4l10D8$`_L zE4KBa+E&ZKSOZyitdo38>4g--v&Lbn2Rll>iErZ*jb8WT~3@0S!#y-beo&gOUGkJ#hImyXPDG?0JHVI{!hDyE!;)}w;^g?;Y=x7R?;zFLE<$m-JMOwNG669L1L<+V z)rd^&xD;*xIS98+qiZoC@1I-m^C_m{^Su@$HN zB(Vc>E4iwJh%!&>`{B17-8bG8!rB#2F%`oxJvSe3iPu>%P|Klc$|$Sk3D)P;p&=vA z#`Px&yOK*_+2itc2_Gb>?5vyC67)pop-dccA;w9YwzsIiV)y(Pk@L z)lCA%K%zl5GH(*G%N?6P-IzU=t8*?``b)$3V3(QuydICyHS|d?>Un*W*PiCR%w9!< zIv0-bwRV*!D z=JNj3AEvjv)l2;>)7S#Z@JJaM`P^%YsmSM;M!L>y{_-)}3S+BgLlCz?NVt`O_6C@XBKh3)g+T?ko4q4TAhwO?w z&&_}13v__=wDjzJB)hb5{+iOqdtz9oMA&^!aL&WA+Iy_uH;MZbD~_eygJ{@|I$ZmJ z3yVoFFm4db&em2y`oXHGTiQ;aj;B3CDX&&0o0PDN?@#FOX)7O&JIo}TR)%c#3txD0 z-gyDHbt2eV{DHlkwxs1(xn|cOL}>_A`QG+LWp||CAgUyEUE6CgjXGH-$f~xZ7^;i7JoRcJi({u-5ftJ*?mYzx$aPhGj z#-6gu0i8I;t>;7A-^9)$Bu$TYR3|gu{l3i;VdhNo`}NS~I#TR6pxJb?&NzU2Bz7mH zA$-^u8wXa4p|{d$f_Q7YS%g<^{bGyQnpx&~V{S0l!{iATK2S&JiE10>UJSyyNsQqshr;VRdf8@aKkaJ7xPCd<$Cg>;xeM)03^L4lL&-9 zw0{=`y7#_ONM~|x1E}oOXqU&>k+ET#1noM4D&*0{Rf7F+N_;0t6lc&n01oS?m}tnll-1xOz|#}Ntnk}ET!fsH*V7BgYr8aPMP3itS;K9614GY zb~;WmG$+#860`@8PdwJnQ&;KG7IvhbsUOZ9OJ_yuhPxV%ywZ$N!O&flvIF+I3t8`mu zCM(+JjoG5lHnbABV(x|PpiVK`qS9a;9J4Mh?0cN7lGkRtf)+~}cTF!laN?l(u8#I< zbF2G3_>8Hg{=R)1r4)*_k!cdz00}a6={g z%(}vyj}VR>RAEo!-j4#(tf`Vl1TR6Oq~TOsH4r>p{^~g5!6sO==k8`&YIW;+L%T2d z0FQjIU|aWe+O~qf5MoeTwPV>`igZ#2=4V<0Qz(aKF`t9df;y1*$Q{yV zg;LF1lyN#PS&9%2oBsj0ocIzP=cb&`aaOHpmNN|L^K*BcvV>c@r9$~bWPHlYB)PEi zHg7*hMc|gLW}B@fYp9>O4L1tZ^lx0x47#6YzRLV6jVsev96vUWY!_RYLH+zF?)6Y% ztY03XijA~VYW~pD_UMw+U&=)-b?oiP`4m?Bzli2tm`W#*dfr>>T+&pSSsP{y#Fz%t zZAEO&y;zyuz685PGP{2_@D-D3_&xeb-b}mtg_C+QT6Zhr!+Giql7KWVzV7$%Q+KKc>1cGw!sf=6qQoK(<1M!h2s0iia)h z+M88Z=e=x$rxLH6P;$96^9iJh3K?{U>rH9OHGS-V2gO+j0!8hepu(6L)GX+v0mO!Y+0i0*1!?= zzkOilNx_7Pj_#85Zvgn{1CdOgUck;DOwMc2O=#EZDlVsgGw9&Ih&YXZS#2t!F-k40 z8fPj#nQwTd&Z%sdbYE`%oU4TT&?7DOM8=pk_EPq@b#7jq+h(ea?-07?Tm$D36D-ZY zFnet7{vK z8vs~BC(4SVV2}?PwAzxacqL(aAAkRfd7}8aYEcM) zN;5xXyqPjn6w1~?N^tWw0855YiRQfm5&c-3;zPSfT~Xo!w2v-(SV*-TRUQ;*; z55Oi!szhJZr;uZP;-6?%Pbdr)A0m_$h?a|TR!CBO{h3u?raM6ju|dQl+RoH{s|(D< zA<}J%FSM>+?%#}l9L(e1xHY*Nd6KuyXFI53A#v0LKb{%>gu}uw#^7K6#*0({W}<~P zAwKAv&1WX?NyUTzYr2Cz&ani<#BoS5(-&7KjDWkZ0V4?xzqB(_gi){&4_s?8QF=eD zAC(FdE&a4o_N+Oz5B>5!D7DdwUsdh9Nf;fI7J)eRIDR$;+(oNPSwACc^yx~jkdA$m z7O^HgV~ZOEN-gbi8Qoo8M3t&2eX}&n(@_*sa;dMenCSXKyg0b5^MlFY6b34r_(SUs z&w17;c6g$%l|^P{}jO{b)CGYquq2KM%Q4tQ+^c2-w%6Q$qco#zY8woT_;Kpkr(nTG97tCd zPayWOVY5dS<6+0I^aMn!?cCH!B?uAuz>21vs5+3wLK^Bb3jW zFI~mw;`F}9W0%)E-DqAC#&MuKmO)^(5icM6bgGCAkrtpoIRPG@3-z5-Dt+;*Qd=|k z{-+3V+Sj-g?dN2{{ctFxcD<3X%7$*ndL4P^O7`v@d&fdv7oPnTHyedN zHz;2Oq=#W*w&+w@_+wsb>-9Ri%5X|?(88C>GAdatyy)TWE)gruGHC#^`-EwF`Ap5G z{lE|W?vzIHu1R0dA?{CN-^R=QrO^|#tKM;YOI5i&Qlg-7yRA*aXa;8afyhj>h>W?RpR3jDlJCZT2c}T>e zHKW`WGQxx6&t2C9slqcxp&^G=I#!;LYm*iIRAaCrOY+up=(7#LXJNMXPExGvVcs`g z0Qaac>e3OOlqd5!2Zo*SKQh>(K-%j7Emq&Wj@*Q)R$e!d+3K;T2~axEr^c)ObKMYA z;s#5>#0<}L=(DCvdSe0Li~ccz4tN0uAh^Jd6(_xREtg{D}W$(lqPL3bO@ zNd7Rh9r}fN(J)4m! zjW-~=li8~F4-cU^z-}GecH#ta#z#sb|5*?s4j{r-D0A10I+F%rtux6;6g^js#S&?Kqjpa?xjYKQYzXBWdz&uWvH z3YmGx4l|*YnhsF<_31~px9(N9S7qkDLZ10qr2*ql+wW*PHWvIgw8pDCw=62_%y_6B zU~!M&pZnopCWR8tS{PU<^cb-_UuWs5=XK-0NHKZ;0eo!(?3a&J=Z-kCj36fC;8HbJ##%KC$Lot6kEE2Z#s?5 z>WZmO#Qdw=%ZY?gHLi_zV+g&I`IyWpOBV4jOjuN^)v!7z)*I)3cQon2nN3L6^cBAdn3^ckb9HswHJZm_&=rGlB-Rq-6V)0dY76RN* z`7-+ZR=H*H;dZ_=Pb$MUI}jdL06OSiO4xDO!tzKZ3iT361b^3-;LQR*@}dq#HbVszG;ImoO~&=~icM z1=J{uHbWM?72?zZ8V{0vJe)8Qr)QqX@7_W7t7CrKWj+8#ImoNdikTO98gJi_u}e6< zMbgs{Idj0T;{0bntcaU<*ha+(6CnL{lAD9Z4Ed|5{d$}}2O~%x%$l-!xh>N5g(P2{ zQ^a~Hp-&Amt-7^=bVm$XzKooj;g~3qu+!+^O3%uycZ)|y)$T=COkI(b>w3jwV*r5z zEF4*2u$6viNmH*B@0%-d`^U>?@R<*Q4wFYOrS;A#Y{c)qxUMZG`g{K=1!$;2_ zf*puyzTLC`^U2_&rd26ds7H2(r5dWNqC&8_$$dh>Hs-0BQP`blevL~;JDFPr2%o!;fPSN44QR2cxaYW3`@7r~nlP(4$5lE@QF49{DO-X8rZA${&ABxzxP|%o2sL{&x!$6! zqU4;mh9#UrVAj40G}6+zH&w=syLtNX(}~ENi-*%OVLMHyUo34ew0>SOVp4n^=TGSL z`M#<+@1hsP?(b{Ua;8=X5f-0A{9Xqowh)9`LB7qs(n7_!dKw=OqiaEGm(0-0r7y-D zQ^i-i|GKEg5_%$o^_FZ>+igN(!uE=Xm5E;)@zjU6P@l*66GitE6`7`lYKMF)15Zt0fSKGxHcu*&Oo}6FCV*BZFeH9Nrk=kKiVlV z$86s9K#wm_F@LTMR3sHC+V&~?jlxIF;Nn##Vwmw^PwoO2{J2=Q)>58SMowKnL5q*9 z*f6*oITuou(O+Rt`X==`Oao?;s0BB;OI8VwI7?Nwc0i|Set%-%>v5BZ{}cw{t3s+r z@cTB4`$GJ6&-+&8s>N%V?)y#H*98f11sK1<4OS#nJSkDpjT{@dKlhU8+U@$bzp4V` z{d(o<6i7w-?HV-jv`G1rBYw?&I$}*DZeC?>kuNf!`>6|9n1#Xw1ip-6LXla`hWbFz zHS~&pVBjtX@7?o6-QcUML3XO~vNmc_+GlHR<7*$4Gd29y3mD(y96ePhFvrJO&J6NT z^%c^mLERwdy@Sv_(E0*@9EB2Uo{YBpcA5AnVtmwdy zlSp=3y-g%zCMGoKh3aBdnbCkm5$SX*q=X19(ZJizt32()--SW~kUiwn#)CN-m?du6 z*jTL*S%7J@laf!=@(qYMyinyO_#4xEO?T0C$X+A)5dYy>*MS6NrSn+Er<6yZ%%HIM zCJoY0Plb8(^J92W(@U}tP%8#7!9%8$*SRVyJQ6$E9({yuUuN&`OS-$+9mvy!vV@N{ zfppWz^!f9$iWEa{%YEtiaPN~J&-c*f=^m~w30%?uhNgbH(~i$HS(_d#Guvs!uAr#z z#i~`{{QWhe5-hsrHn!jf_El>@nJi%+m)s}r=oS_k8f1LG?7SGtdgQxz#CMW*gg%C5 z6Ss9_Ztaj7mqFUV-+W!-Pj@A)ou#WrR`y?r*SQhc^V>e=jq2jRe7JpC2t}<3;;IEn zkjIm~K9kmml0@Oztx(d8a_K`)zxVrjxP28x)VsULA;3jOh+Pf02&#u4;_p`N-l?i% zASy7a^*B+X)#i|5mf(6om8L2RAB~R^3M^Gp_v=54s6Dk}d}dUKi=>rlJcoU!0@Cqz zu8~z0tx0PHk9rl`NtIXQdUNf{kip+XM>u_t8(sbsM9`Zu=BBgi5t2_zMjxKvziU8( zPTPEy5Czy5F+P9S?JLSS{G61O1#GQ>|HN8QwobXAP3J9!b^0Cc$bi94U%QI?R zUtRnCz^T`D0dVb8eH!OdJY_a4BWV}o%Vzvdiqu+#3&#MBix zJnTQ}VmG|3HR-eIp}5>9QsO1D10DZO4;Ug-G`&lEmRc&ENxR)Uq1=|ei#LpPRBii} z<3@wx_|P?$Hec4KLfqc53xCSji%zyFn<7-SM^_!jFedf)UQ(`%R0e5q&_xkvtti#h+&fO}t%h)o-DU-gb3`TRa~u)6s^XhyN#1Hldg3nSp6K{u0;eFD>Ya zQOCk}u45xr{Sx~^jH`np{r;*5C6WI|ohgxq@lByGFz0B0w1w%vSk$=DS5HCO6plIE~Jv2F_aA`q1 zdjHTvlt@;6Pwu^PvrjasBa49}d%f=PkYOTg@hOFxG6YnBZ^uJ-2xwkgwzZ=)76vPh4{Ihy1<4+?HDbG*CI32tA`-!p+PnR-?03NcS zh+5g*-6xbu*MLqM(yIzdOEy)LRP>f!V2h?(Zh0mrL*Q~(@?T1TwP=F7>9FUsGLme- z>3~uJzSYAHkb{%-rTwI}`O5w@qklA;jx)#p?LBMHlvNX9ACNHVk6W`Z(<3b99S-yV z_H2zHT~8LI>jf-sk*f@{D{ViC>dc2$MZVw7GlCsVB5Ba^iK>tn&phK=mHgU|kFubL z@XDpb%Dws!-VqVumDkt;UpL4kI}&PMtNFL6sUOR(s<+p{2S+0zTPt`cR=nLx86d7C zw3ga(nl>$AxA%D`gZit3doD}cJ|xaCL=UWm>1ljEz4vuS_mdKX!C?(A<^C2(V!sH{ z1Kwl-gGt2($p#0)|2vo8Z}F#_#q>t>2fhe{+IAlG*@h{7hiUv1^N8GuXw@{(^u9-( zTR0u*meG0ogi86^9&NJTQhlW6Xu+*})GGN~uW`5EoF)eb$9Ws>74-D<)xYl+P+LNw zdJ;Xo7FJC|+KywEr+-=A8?JvkyC1;E@6=1W1Fg5;*qe;>X$->8M?xGn${8W5Evn!A zrK5u;*n90DyDmQ6!GefJIZa<8t~wuu_xwDiMO^IeR0||PMwRC#?$FI)7j~YX_tUdC zYEa!I-Rrd3_bzRIviQivl~1FQ>UuFR)8C*{@OML?()ZRJ`VWX0sTuw}@bQF>Kdsl_ zLQC?s7P;zr+3wC$8PiX-3eH&cmM>T*Y!0yhp1J$Ra_#|_XC)*^gHBf_-jiR$P*chy z^&7%wf&_;bi*z4un$^KAX*~@*VnFF4zC1Abm!oRL_kGZIRforxI>Y6vEQ(#IOAVab zS30IK5i_t0<6oar$*%SH-Nl&IS4vO!dT}uQuRvdS_eD`kh}%P)p5358-yb|&e#i23 z>wavj3TafiBIL;#W(e6=C2Hh6UoxyJi;%XXSPd@F=+hzV%-ocU^!K4_59yk9>S%~q zCK7!r0&n*n-T`?N8%RDz+GrwuJVn>B9(b+F^<9L^AA&|v?R+2J(a`L{9+L=TJP&dv z;~ee69DDY=R0L}-hF!sYIH!+&@8VFdJNWNEF($jLOa?+|X^Wvf^?nR@%WM6Wn*FtO zskNTdX+wM<)j76D{_eSN2YP0wM~(hnZ1|+AY*$-Yd9pwPy68$;Iv-h@<<#gPha>E( z-J_OgkFl~X$dIes(sgy)U%H*4+C>C-mRq7gto8eUcoZ@QBaABDfB5#@);0j}Kq3G@ zp%90Y2X}0UV?>47rbaI=y2ef$024Pn22_$e9U28VV7&MLcpFI}{_b8jGsX@^H7LSAS#zxw&}I#~Qd zuz}8lv%J7ep4gY~f1z=J(TrXc5|+_boDp2Dffr_<0I3oR68WbX2*3YuWNE)B)R|zR z^?8Sp&`w$&9)^?qv*+IDGjHy&rJWJCyPJ4;xlfnfZh#N@R*@75v-;JogC$Du&&G?! zcNY@HR_^=3tj|X;D?j+B29^Lh7Mk$!Gfo5uki0uGffxIH^i+X&`H!`~qDG+e|0vH! z0TfcwD}4<-GtGxX0H^KRo->By!{g9S36JgK_zGYi1;B40vYwpIuzzx%+*6uax zl&-`A8slvjitj#}mx0G&6<39+_r4B-o;{R#cdc1}kN|oqiW(02b6J{HE%-IwUBlN` zYCnBVym4nB`XkwnzHK29&*!SnJa&`O7b#tF+IZ7?En*U^#ja-JKyiuG+I9T;x&6<}s6?y?B)!l5 z4M8*d{pDvtbZl-pCczcZ(_Xov%rJaD4L0&^c*O&?TJQlL z6*EK7Ikr^|(oboO6A*E;k&logit}W??r;q7*~02GaA{%qTAc7zMXBNRD*4(2x}Do$ z)#oziqM8|?=u*XU%F@-^CUjD5F?SpN>%Lazcc6xErMjXk)=qm{*Ad}gtBriWQ?fMd zm&bMdK;tI#F4`si@4>LExZZX~*Gp;jlyd*kR?VN>s@gQ`qN3VP8*-Y?V7tXjpdfgw zm;_qX{{c}o8!R33kOyv^v?V}f^UMhH*#a|FLL$0`}J8T0eIyN?4!6TStB!oX@Dh>rp)JESl+NCXJ z&R0LixW7{>2T^x7q;E_vxJRsVmZj;~803$`=Jvl+GD@p=^^f<#h`wk^e=T>OmI93G z$pC~?Fhr);iNrG5jMI7$;9!AH!eYm6xkVSJ_(}qHt4XE=Gq?`?# zcadEKUVe{ZJOXc~Y?alO)gMwJ4N}%yZsbUl_XExaguur`8Q%gSN~9Y7#Rt!CzeK)V zFibYB=mYYPrnvJ+2>qwQC$d%Z&q~xb13}jQ+}`wiWpf%NKIu|=INu6Uf`{=gSIM-X zQ;sXF>f8TL?Ak>WjBdbUc%De5c@xV;rmzQPQd8;o-9~O@>!@QPtFUZySpwp(Rw0M7 z8?f_a{zyz?!-1TnmKes+4-Y`!ptvW5F(Or{RuPyX%v1$t1P_|^Gh;fNsSqmUwh2P( zWxCVY*#W*hlsi3hJr6?J zEj{wNl@$hIkps<^R2nS(oVDQ1$L!a_Il2|N^E*p(#TWRxv!Voa0pJPbyre8!ec21`Q`)E&n7&$G!#qS^W4+X7MoQDpuFc>XKRfYrcTrHlKNQrdo(L-Y!Itv>GU}fxSSEokP#=eV~ z%o*Q-f(qS3F}c$+_Y!zfQjkx!&^)cs*-$#d678mmA@!Ish#!?V-7#@=JrQTNh|&Uh zfi+iV(oIo=({rTbcUPP1W5wL~Y-#Ahv34R&95O&JX)|21Mi2hyRH9ceS-N61&~YWd zAwT@NdYryb_t>r__pMt;W*l)>jg5HeU=?N%qJ*5~`&FaWt{$0kRuccV!6HK>fQ1mFYUy zbIY1zkD={woaJySjsWVg@lLr!?av(Of8P4yq@LzTzFC=ZOMRH({es2c1El8T;yf*} zTUCJ&;?@xtSFK+Su$dPRpRQYnZ$YkRE2rb)WA;4z;;u%SAr%JFY`wpb9ZxSAWj2>o zAN`(U5$szv;JV+dVBuGFv|ew2HTQ7(L;*SKy1%i=k-eXwPs8_`^bgzqwh3NN3rf87 zA~ZMcyCzngCBQ{o(I3psb6zci9W9Rxy)KIVz5FoR$8aG=dh=p8=S%U zMz9~dDtTzkY4CTXca&>?rH3W8g>>5?V)`Vn+21R^6=Ws#0jwyRFe1&`#vzI?|(>xE|i zZOl2@twF8ksQ0bMkxTm)q(BNBo=5wW$bO_)7{Y&CCK47ZH=akVcsl>!6DERD^^3 zD@(+BhsNb39@NcR#Wx`%z5hhApS6!S{AJ;*vjWMX;||EUw&0oxL$FHW^WcNIfyv9t{_o$O#j^ptEaeF8I{vHkkQp=-f0nJWVS?# zb{U}C_{2H6@FKmvMj_q35U|x{RQFT0yK&57EXhZT_I(F86Qm+QKChL1jo~~3`pZk> zZh}ra`L@SNz%}HAuI93SD)%}l{O8I2qDd(LZGBAHbzOpVMQVoh!9!A%4~k!{@P0Bz z$DX0gporusGBX-X#)5HsGNzgkgDYy>1yDgKgG@&qd|uPc%?nOe;=jGci)1jP8A9;o z5~5J*8lz_sLyPasMp%iJ^rdcBQ%!f&ofUK-6moT7>A} zIR;V&Lcv0)vJj*3q_8tdDI=g61{f2U)Kdh5L<~z(QXer;)JmdEMv8W|gq4zpdp@Im zeJAi-<)Tq?aw~JHR8H&*GC5L%pH@zrdXm`&9vp4+dnHr7C{Z(6qwqL=Tu_4YMNE&e z$ER4>H{x39MCYT*gDZ&Y-?rW-THEG!(*gOqV;OPT3_dHFnj|)TjnQF^;N;#lGH$c= zQfYkBAcc_z-?G~37%Ks{x^IBA6|JZn>On{?nQ!gwjY$6l%(1${p!a!$S0tih)K@o~ zXya+b>avpB$739p;e9Pd70g(zus?n~IaQgPE_-l?G?*iXPIc0jVA`X_scBDt9u#ks zK?_7c9m7Gh-0p+ph#x+PNlkI>6`ibG$}{Bz8cX3~rFfH)wqGzeyKtv;c8%cMt_~QW z^MuuQJqvX*{m^fu;097SSQOJrE;yN-{6=yd4Ol$Hacc`*?wMWnPQL0}Yp7HC=yKb* zxyqp{rqOh4=14bvDnskKf)@fw>9{p6M~u|sj5B&9fjk-zG?fEp zrR6_nb?c*p8fa$Ia-7Fy-9u@~Zq1F7w@4+)HE*$f5BBI36GYfP-P*rYRV`yxX z#w#hH)+km()%=Q-+TIrM)AYT#wufe=NMxMCB5Bzi-8O{SzKWP`1L+7B@(rUpD!C1i zwEv2oLoxk;G+c^8=8oiR47sTn;<`2IA-;tLbtt_o#?u|G(ty(RX#NPRlKBSRt_fPb zzRej;Vb9@|L<+XAmL1b&JXXl3S7YpcAgYBC=XE7D5oYO*9c5?bIx~_JSH%WDroP>i zGWO)27e}QfYotdk{UuUtW~=$-4SgEg!aFu)*^|-xTg1yFajZc_ZCQ#~%bxF7SmmRm zKK6|F+~)U|Z-qWU-c2{F#MW*jhN^Z#j-kGwQxG(dBn#LJx#laLt$8EJ5#GM&b$`F45 z90sVNqEqL=1y1)(qU2iiFq?imKAD$>~G^z7G)b10(#G$i?Zju#3~$`CzaK&?W*#iL$5=(URaK z&i}lLHUbH7OdRB6fYlp}5){Zr<*L$z*l{I&qCd-L-%}SfdowfVL8@BPkp)88BaU46 z`?MctaE%y=Ii1EdU1oQE%IH50GA0G)MT)~q3^_mW%g;yAMf>v9ZM;p&$Isw>-?*_7 zjY$(4SqWN7O4i7{{Gsx_^B2X>t`rX6y7ls$vLFY|DM`V>^_U3n2iiLthlkF(cR5=i zR$gQYZZLx5AN(l+GJU)h%<n2%H1sWac^O)i&#{#|ve*ObjAaqhn*#yFKN_*|`QcT!R&L{8#S+xsw){VKT9 z#{5*EfU$fSQ}QNd=+jXk9PGQU$i>!iCh*A#8w+Ee?p(V!Kjhdq|~zv zZ8E@Y9R+O9M7a({V8-rGpBhi&!?@$mo@VD;lbfOq+ zW`|0EtK883rl99$vZS=Id%F@>Q)ZvA%w}^{J}FgRLV-^|_&maS@7II<0DJa)C&95Hux%tnoBM*3P8?tyVn zM6`u7v@TiVFoXs4v$B=t`#FBT-qnR%~zik_P z6>GXLShT^Lyq4vRol@^q&IX6Jg`9ZsV_uy2o3#PtSHln`MVcJZobFIdaww8r15k>r zA;+~N;xbL%VC-_l79OWrazN}A8Q`3#Agtyh>nRoP;D7iCGDpkoHkfujm2=f@JO_hMLTAHSz zUTUNSAC@xvm?d?X?hxRlbL;q}U!dwaHSSA)vlpROP*%xW+2|9}=@m8i+MJ;9X6rjZ z`}0T3D`?+8)wXY>&Ck^={<xCoIlPDSf~6|26! zpPZf+weZ+{tV?W4oU~ug>K)17r^$tTSI5%e*gssKaFly8+Rs2b|F#&~tBmtpd%5m; zRMzORMLGSa6YY8~;EP>9VjhD z*5U)VXyz9C#+zU0UB~xi_`RQ;8qnj4JhnEebbwqoyQ4xK$@%?;G}-&le88<+P}KIT zXMdfs^pq~=JsR9@OC|eK`lb1e%c-794%)(ug#$zf1Li%J@#+@eiWdKRzQ8+*SE}afoXAKmz?QB13mau+#dc9nNE zo8N5O(Dr1?S4%?i2oQt@?q6zRj?DLLl?7EOIiGA$N{ZP*Q^!p=&Ic5m0TxdCwP<-| zy^-h#tHoe+(qO3Qm`of+`qvoh&gvn{sW*2)5s|~L8&<*cA7IJU62`Y&`*F=ZIT@%! z?%Au{58irCbT+d7l9pKWdQAXEUcIyGpzJP9$u{msId&Zgy)6|aIHq-p z$%BF`&e_LF61q2}*u`MDQ!noqavECdGr>I(Xx&Sl{BqHh)|X6h8ycHlt;k@FA9XyQZ z_O&isdWrq#-@us`MLL&8^f#2Z!QVfI!;9eKpxq^RJKp`P5(^a`OIR9P?aSxqP?WEpz25C8!w8&$Hc9Fii;-DFYsVL{=xv@B%dg= zD*GQ`!=n>*H>LEh0aPzneRiOuK4aycTZM7jsO|s27gI!Jd^l6}f>Qr@>$w7uql)Y& z`omX2?Y!UDiy33+L4XRtZ&04;LK*b{ENB48Itx!C&=y4BSv5j_z95N1&F<+_Y2xoG z;#}DjH$Zzuh->ypZ$7FA<*Xij`t2T7bhZNyFU!D+CK763J)gRWN>N+R;udXCQiC@> zrPb+>5d<`uELykxtXDJ%>SA#*7I&j(qg3}x`=<_VDvhSrtsne*zTmF3UCd3n8C5uG zp!fT_OG8$-Zo5vq;x*FUQ5w91IsQk!j41#HKrl)f;gnkIb$xO)^Ivm8S3H1$bC-(Sc#EIE%2aaXt2qX7t*S@3@?aNF2X(CF%~tZ}1$9w_zfbe_GO^-X+qm zJx|O^FH~ zazcrlaZ=>T49Y(plK_}+c|#UgdASdxiG+)v{n4yivd zfuv6hx)63isHN<6<-6t+lL_FM(dc8=jW>P~5d~5~9rcAQ3&-InIi!zXp~#AR#=}Qd z-s(7jvhBF9p7sc@WffT8b>#(pI7r!slu!`Z#*N4_#tGywxuW&vGE1b~>1(5Cn zz3hwWrCnwS9RiFODj~!5{ujaAz-wM5bXFppMv;)qj-4X|9+Yu$dn>X44v}s1ubN4r zAKI7mCiCg~MXJdke8AK-Z0W{%h4GUS@WMZ)%dW4n$fvjkD-HnC#cXX^IsLppSyfTz z(iR+&6V27|X6wn43yIDs%0Qd65rBS_Nn4+uP`b&>@^JZM$utLgzD6ZruD&&_h>olH z+BLnyRxvfnoFyH;`44cAMAqa9G7R5aS>u+7?slbZ?P+>tGUJqKt_lKRmMCA{S}ZS1Vu)NJqlOt zNN3ab5@ckVX{4sZFZ^%Hg`qHaxPMJ0?_Ik6!zwzkXMofzxRy^;Zq-rBF7!D4Jmclc z(J7hhHfi5xaYK|z!ZEyQJuya_=Zpk?JOc#$bD8#qf-Dm2aInJ8GHCtUfl!E7m1?Tu zTit!)dUw5&e4j~v*U1J^B9MAwMaGftOK-j{kkEQx3j2rsCKPi>XA=9R`uUeU3h2qr zv(UUVRcquw{M}El8$M_ULsev)Rcb3PrI*eY9;E(&f}Ute+eNFp+uLv=h=uTt;LEr;wrg~oE#2>1Yjb2 z*X<>x9gjL)pWjt6beGHU3INQXsiAPGAJji&@0&T=9Cq8{-~c|xa|#l;EAS1@({+XF z@#;XL2^XMXTqT)se1Wp)4&%1MeQgWM3HifuV`ie>2XDHFZD-(QX-8B3dWA6WkTSlT zJEdhBceM)91?Fj|fn^E&+K;l%0*%+Y)f0+pUYpR36X-Gi*Gtd#ngHS6+I_3Gr4E<( z)>jDVQcP(oPu*P7WYHS^D^Ru1=3S^}nd3`^48pJN7@IGXA|Ow0C)JvtZTk5X<4cA1 zP4VqLH@`r3s>L4(RKszb`z>!Bkbyj{byqlhDdZgO-yFU>8bU6KsK{R>=sNnEed7n4 zp9}T>yuP**w^=+;Dx?PsFJYP!(Q!0&^@MjS5_7G)g_2tsAC!TD4pzfSXN)#&n~DXo zw?@yY1c-e@9z`$j`PW?xhFA6*n;U74!>YlFPWX-{UF};%*FKCNW&v+HEf}YzRTg-t zIHFbtm>PFLyDT={u+J=Ma7u|bCIfYM-7D*djEFFZ)UI0yXC+HoQE|CVkTvVeACbH6 z%lZ4i-l$rcyB*=+4wv*>v}U-ks+`&ol>sC*EL7yx(nWK>iJMvtM8xV+10R4r`g>Z< zHZ4E05T$Rb*LB`HY6nwh4!1yWjRrcmskVOu#Pj@?ywxVCFunOQ{RN43%D%SU_My8B zat&F~`s#HJ*zf!HM+m2KuAU2dtDZx!(*gX$AVG`A6YL^H;2LCV^WtB8oyI1{JqAX{ zug24%+Ymp&aqxdMkFo8ra$Mh^K(i3_`BKfW-ANHEODW5rstCR7ffDBlz55}mIP%9X zT7`}_Pu8LL2muBarqvyFODsP{K@z4MK+Ns=GQ8SfU|s_PS@9gIQl=6RARfY3G)d@* zS^`W(UK8oiB7cj^Lo-9Le2T!`oq>#WyhlFu-lW3D4u%UV2MjA%hGM3)u^jVwdHfe6 z?`Q3Y66S&KS(Ul@`0fdq0cOu9)sA4=5K3>CW|dEWztvv2!zYvHY6Q6kBKfq@m6Tz7 z+nIOq%7m1VMtg_Hc4na^$VQQ|+sXT5oJ4oqpV)nK-Rg9Fh$xoaKP!yRcRGU>sQngt z`S_*8AMiGc>OF|)?3J)ENZhcB-~4{R@5S{{Bc3Xx(S%_8{#roU!8n2PvsN7*Ceexb z@F2@(-NSqpg;LXxDp7_6f+Vv0%)rcUd#D}^t4fu%{6Z#`|4y@S-f>F*(C|-F=LjG) zpFsYLKgEUE#oGu~XU}}k1lshUPP}tB#v?%wV0fN9Jw`}batd)MmQ2DYOjraaC6)!6 zmtYO5?KGcitIXq!$|s7eEJ|U{xxyktla7@dItB^djj#*4Nioc-A7Pg4CQsggy;MIN zzvr3rNMEjb-1q&u^I`VlS^;FBhuqY?v3((SUy0UEy0YeSXF*k>emwKIe=Z4*zKYWS zKaS2kkm>*NLc~3-@d;;_s{mnuJ`--dOV+xN3hQ7`r;!&JHLn`b`|h16<6%Gu(D8+S1?qUQYaT z@K%GWnx@&l29;SQ*ZH!N4RIO(d)H*jW=-Uw6eQfMGAZc7z@w`AsW_|=Wb@cJDzof^ z6c=+;3Wsn_yDY`qAg{^7J$cXH$9h+eOo0$mG=2nXW~pzuR7~hghphUj^>%#h-8jS? zfC7?Gwj!iYa`TsYa-6^ER5ih1LeV#wt-yIlkF!N=q|C#6DnV&GB63 z@(SMpjn#)TcdFvzl$2am;;SFkO;Y5!GcfOey|}DqL$>us zTQ2SdBGZsfCGO<|5V?953BS8ss`Tmvsp8t%innr$(YN5YEXVwYh9`{WX#X@8kpUqH zn}nyY$W&;tim5@@V*)%vO`i-V7v>$vTzh zJ}Q-bQp<`x2~^Ydg)#Lu4_`A~y95OrQiEK0Y0b>=_ioMQ%)gf!kJn@$oc~Q>;cBgS zwH6MWSziyhjn4d>de(DWa=u-veFDnTfI&&|-AAcrv9gZ|QS)d7Tzux~&+8ax5 z*@}iWC?tLM{-lYVO9+jH`OgVO}b1T-!ZMvU=Nrtflve_l;AM zWUJ&XdF8*sf1J^qei;OT3UQSy?*Cm_`L_n5*wU&eXNQlA2~mRu_wMK@6xzTH9j(nx zFZ{kf%nCvG^;Qm9h)n;PE-4d3w^v*~)IGiKryp`Z1LXb0j7ZyDR zb@Wpr2gHd7SGdG;BxMnOj*hBUiSYV`Zaw<;jYYMaia-Rsi)V5AcwF*BJIeyuC283K z=|m@)O;gwlAGqG8qFtk?ELB);%adQfZXsEFpt{mFGBN4KWkgT#f#z2I*!8|@Jcil8 z#ti_b))bP{KodZ{MXH$5gm#`0J&Efxkr^!6)yGfZrog+|WB7<@%2dK1zsB#d>Vhv{mDL|gZNy|UKv~z66j_aBa zK?3sRyjOtJsWOTA!V6E7IXJB~2}QYbRmj3n5Q}>)%qTxE)3K*bgeonnYD#?1Q6lf* z0_r*Zr*}M*Q?_~%6GM{+oc*?rl5|ap()FGT|C^PqoQ888;bCFW8jHVG7|I-2Xgy^T`e#wV6tQlgiKiV#`(Sb8jiqkvlX8GLPV+oL}qFfDF z8?8>Ls-u`>lQt0Lrt-XLR;_+@w`7(wJ*&z!8;%r|alV_4Koi1YN^AF*8;z@pu6?_{ z@aH-4#c~e{qQ%VkPkRvTsk1@Ta*g&(6!Z86yqV<=#B1$pf98K)qAgmor@knuW^d5#TRQ6{KfvaCsRp_VI}UngEc(tH%m{>b*_B!oAf z7bPcV7T*>B`#^RdN+Z~?VC3UF2?!lR?$+@Tz?qq=>y0;Tndpf>7m6sBLl-=U$yZYQ z&Wmk(mkUZ%tG>)!!#8h2UKBVD6je4?U$cQK&41!kioU93dBkqc^K;`aS1hjn8}9?0 z?qi?7J>{R#eP+Y|B^;^x-F)StM6)$bFNj+)FkB% zuZ^p&UWb%T;URx==J#RjL-N7Wcm;a8{soy7=!-8qPJ@~Dmz3QS&mDH&k}PYK^0Py7 zt{_3#rg}JDA}ye)#}W}@0vofuy=2tKKB6DpSnhtlT+29_!{S96RMj`diQ@&vpcBkc z?mKOPwdYw?N%N_&%J3OaR}A_Qgk0ikx=oJ4O@fmG z^8N;XL9y2?kL4QeDWSTOJU2fL;0ZNH?RN%>|J^X}z9YFRbDl(k_~+qM!mU;pyfZDZq5rNL8<>;cl9m(Gqbte$K{aY}s=z;s z8VYOEcAGl*YWaQcRiR#_iQ|NQKP^jT%^&u4j8C};>V856D{T1A&*3dBP;t}0l%h|@uaHf`TD@ZN zpC8sWo>QZU*szJ`WXEM>r|y)kl4v5(p2ZZ+u*ft;!pH?kJl6B~*qZm2$wuTt+urN3 zlIQKvnZDS6ExO;;R$G14klGuuFk6FD%wc)kFw5y$^WOWd+)laV1KH1EkiJ7K@e82F z?NHBXI&BneUa^D6#4_7QpF zvAAa2hjcq>=kaW`7X)+`0Br12Le`B(lOlXblaB(c_V*V4#`N^jaiF{y&&{V5L95$v zBqZ9DaOhO-Bn}0Knau+@91IUY>9kqx0UQ#}1x#tM|9+al*dOoTe)Rg!f0+Of^zhpz zmYauyz=2m^zn_Xd24s!7+U_G@^z&LazkUP%gHS;y8F}FMO}C3DIS84J{{RqV5k>QN z;4r#6fVo?Pg2h7a-%5=s8A8OE`mt!t1XIZvBM(Q0cWVeLvggBBkOGGSF;CC44$fjx z_0dn|0Tb^Z^1mQ)5aQ*}rum_7fCpJ)_qHnki!oj0DF0~VldaqIe(@hD+zjhFV(?<0 zDf(Bl>P_7#rH{o(1T^m7yP)t^ixj|Nzo_{)STDw&SSr}S}{6WK7;?BRsXP%RQydlFLGiARs9KoGW@S02UuSw>S$0m{ECAr4)0QYLm}rXb&rb z4^A`^YUXA;>TMS{qVZc%P9;jo`>`4KC}!NkdUaPva2>%pXroU;>S+&hKyBUCrLa z#j|ILNczR>l?bI~KP0SS90Q*(eU`>MNKksY6-A)gPsBi2n)?uNbYXx4+*@!%_Z&0W z3CAnNRlg=&90Tj?ZBrLwO6`}TS5+K)ma>Q$AUvaKbrSlZzR{SEr%q|pbyefoTx>mE z(3J`t7KK)Cs%M_wuIy2Py1)n`W3>g(h%_8RH*7qtKr^#X|EBrsvneRuDM0U&E^6Vh z3!sy|9Y?sd4bLrk#)R_5vGb^Z0nEa5J^6*f?>EM)YeMNj2bVTCl-Qw zxfxx-;T1wOU0gK1UQd)i2RA=K(tk>B9V>o2f3JTEN}jUl>9EY)ss7xl8|nnmgEuCC ziC2@jQB#b{_Cw(4?vIA2!{4PN&V%|w$hY-lH0U#3^Vd9t)v>VxAo=HC?Gl=uKaBEe z7DAlQi9rJFx(9KmizkG7RbT>D> zN~tcvAq%LR0T6W1bt3#hs)wxsz;WW|HvElUdli&Dx4A)J%o3nSyCo%#+6J5d?GSy(9vu7Z^`E@zeN1XSNIPHh*kE-}1YTip*f|ZNvX{c| z1qX!ImEGr^`L2G<;9q0>jNEifO->RiJ^$+5Pb(BMHX!rU$tyx+E)(< zx7O$meLo}CckVJ{ag|^(9VOuH5`ZzPjRe(TwaS1CF8hchHG3z^E3*egbH(YCmou`v zA5rSWAd9tOnM~q3$QFmbSc>HD!#^C}R!io8`A+9VK~T!qi^eHFk8%#HrLno;->297 zKs)s+ugYLxfG?}qNAdXZR}(#6^slVx0;8nukJ48%ga8}`#h#T5f-MMHlcCo=LiK^k zYYtiQ9+B_g{xKTZy$xEYHx<6MRJZEMDi(8nAlln6S9Ld9RBptSRv1fpp8ix+9(U$w zi=#~qdr^327ILCD^{|j_4d~?uJs}-MU);+FY8B5N>k%Ntdjw_-IPgG-q%gJ#XuHTU z9U7UFnh1o^+4@MH>?lCt$8jlWu_-87MogcC2|>QV#yp9-2;*9zoN9>YPM4FgQ)!bf z{3jp}!LR7QA(r=qJ}W+;F1#!y{5tj+n@2@Sp)owmc}*XMUV>ZGxM>XO0h;*7FxW2c zspq62%1wd+jEKi0<&99mUkS)|Uho_81nSlBpo3Fyso$qk36FN31}sDvq_YAyyrUaml z6$}>UE=T`X(L#5%yYaCHSm3*;R_*B*5pa5Z=XC)Qchg>z;SP!ctR`9hkB>i0_tGur zd>fB*Y4gX6m0VYP+T6;rpeUb2R{cI&0U- z)z25g9>JTIX7`&|GbZvIPip#Z(vRohRF~HIA6xr-99?QsjnAK`CA~j4 z&ia+&WE}I#iFDfL9xTRTWcgGNlzM*T+rj?-kYKR1d1~*Fe-$qJ$+z^~kwdC&cuqN{H{=QD+uuHKL}fnkkuMs(XM+Q6ZD&(7UV#` z*135MJ(4KXX)AA9ArUhD5G}rEV^r1T@f*H(z{Gn6m)-{4`8w|r#FKntCGoot3w
  • Lj#q$LQ^G1&NTe@h-&~>ECSQ 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 (cdIx*(2Mwr ze;DMv#=2-T_FW2w&)Zw}vbp}*rbw>z&cb+IHmMRCJ0X8>TZ?B{FIcenwMy#GU{~Wt~yj@;cH^#0?$nVkbg7mOkQ3Y zrSzan<6|%=Oj-vv2srq=dLZ=9?km=hQ+b{cHdkb!{L0Vqotz#J6nej-9lDvLB25TP zkCs05zyY<1g9$w)Ifc}{gZxRFMyO1kEG8n$=YKf$QbjJ`S+wynC8YBzZ&ps68I1Z% zWv&(E2+fev@te3mEySw>I?(LN51us&d9t=20qDR{Vo+II5uE4XZMJE-XP1m>tL!pf zb&ruQGyO{2!i^&^O8*yAEP2ANCgF|dYVwns^jB$FGjRNnVGNX(TIv+_n}CdX zA=4KRJHh&44M_u~HlZBH~#0cvKHUX0Yzs5#)$J!wNE01xrb+WD8fpW zoE;Jk2=J)0(n>++hFW)90Ht!Uy)!VBXrlQ^m;}ZM8O_^IS3Xo1VC6S7gTQ}D zKIdIX6gyM+6JI^;_O7U9-{A0E0LDh8mt02i|o*3>s>^G#enn6Bk&9l=zPU z6Hf!)9(0?~bk8Jm3+{K?R<-S-4Z5XTtw}B!u4@n{9PS(L>UP6%Ug2#zs<{@?rqtf! z&>m*ymGG#a4$)_+=#bq-HJ&DN4I*DMzS6Pyj1QeH0}hH`CBz`F6dy&8GMh*C$tR{| zz0wF9@PsW1@O?Q!PG!|&-_4c>eTD|+p*feUSJDG z)@|YV8xXpn;NEpm#UG|#y(tp0sP4Caw~v5`sZyR;t8OQLRjap447&Zb4DFQ2wE&1#> z_&v+K5sTc>a6(T}PEuecU(U-N@!w+G<34v#d0S+dxptYiZ6Nt{eK@6D~wu*3piulc( zc##=E29Gd!A#ig+%7ns_UmGzcHXCOE%e(+U1^`Oz018c%2jfHW0{fT$ap1{i4k56I1lIDLU3e-KCs5rHO+DrSlpzoy~b zx3ICQAj20C-3bW4p)j?V0Sk!xa4(2>nK%Z3*bRWekC#}Lz@Tr3Df^757lCjUANUIn zka!e;hO@wni7H^QfVKb$HIG1!3Lpd*Q}Uq^2#IKwfGD3TDe#Bl?g|no4q*caz{ZIw z2*0`LlzY7g@O=ycUI(DSfc#XQs>7-(G7Q>ph+z*9TYNY$f;5w1i+BK#nAZoX7>B@m zK?$pX0mFy!0wbXGqT0I=V0yE#6@f4k4v=`HV09Hr!z&;afj|*}&LXc0?$j2zUY=r~nn9d#hjvkYNBGNQI1ruzY*0y@j`@(=j13vkwrVCD+o zeHDm#p)_4adr2cPGLry{$*HQ50fHvshlnVp2Z7$I!DWd&Bc}<)jA)CDah{lSd^Zt^ zoH4?di9s;kBTs$LTN%`9=@gM4D5Q39?NGhzbCKqcM1w64I8Z z@V?8se1Jg;8pzUz!hgiedk65clCYjID8da0eTi}l01#~k&~J)7QlJ>DfgsiZN_-cP zl@$4K3jv3UU;~Lcc^z4bsiC|c%RZNw|1B928o;m&0D>1-u*2(hCMq`#QLK>h2#Gmy zhxm7unnVYSx`w!JhZ2(j!DImui?5J&hd6TwQ!D_$2)5|Q8FUaJ!fpnDXoj=72dMa- zJm81g0f13MfYJ$}GMpBO(jQ=jqg$P=1kji{iML>|3S|6%9E1qa0DxhWpqPo7xc0EH z2$m{(j7R}5h<1=Le5=3+hnvd>ka`Eu2{z~ifN%-Bka&Pu2DnhivROzSt9qc33Cys9 zpxSbZ;ZKrKuSU?169MX*$hnN!pPMy06W{`@v6lzi)e9)>3n;gZP>`z7pNHs?08zOL z`81Sc6Q0P=2l%qHk(iA76F4jIfC+r3h_RV~w-QpV6-@iP7<#0mtep4*2f9}pt6hl+ zQ5yJl61dz4Q4@~f-3{9+3zQs*$xR6;bPd4*8EZTU2mk;80{{V_ r0{{U4000310007@1ONd500004000A^1ONd5000040000000000WlO%I literal 0 HcmV?d00001 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/HMD_d.png.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Textures/Concrete_Albedo.tif.meta similarity index 92% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/HMD_d.png.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Textures/Concrete_Albedo.tif.meta index 62f21eae..b4eb7538 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/UI/HeadDevice/HMD_d.png.meta +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Textures/Concrete_Albedo.tif.meta @@ -1,12 +1,12 @@ fileFormatVersion: 2 -guid: 177f60e6b21ff774093004ca330b2241 +guid: 5a327724a94a9674a8a93e6b4e9a6eee TextureImporter: internalIDToNameTable: [] externalObjects: {} serializedVersion: 12 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -36,13 +36,13 @@ TextureImporter: filterMode: 1 aniso: 1 mipBias: 0 - wrapU: 1 - wrapV: 1 + wrapU: 0 + wrapV: 0 wrapW: 0 - nPOTScale: 0 + nPOTScale: 1 lightmap: 0 compressionQuality: 50 - spriteMode: 1 + spriteMode: 0 spriteExtrude: 1 spriteMeshType: 1 alignment: 0 @@ -51,9 +51,9 @@ TextureImporter: spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 - alphaIsTransparency: 1 + alphaIsTransparency: 0 spriteTessellationDetail: -1 - textureType: 8 + textureType: 0 textureShape: 1 singleChannelComponent: 0 flipbookRows: 1 @@ -63,7 +63,7 @@ TextureImporter: textureFormatSet: 0 ignorePngGamma: 0 applyGammaDecoding: 0 - cookieLightType: 1 + cookieLightType: 0 platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform @@ -90,7 +90,7 @@ TextureImporter: androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 - buildTarget: Android + buildTarget: Server maxTextureSize: 2048 resizeAlgorithm: 0 textureFormat: -1 @@ -102,7 +102,7 @@ TextureImporter: androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 - buildTarget: Server + buildTarget: Android maxTextureSize: 2048 resizeAlgorithm: 0 textureFormat: -1 @@ -119,7 +119,7 @@ TextureImporter: outline: [] physicsShape: [] bones: [] - spriteID: 5e97eb03825dee720800000000000000 + spriteID: internalID: 0 vertices: [] indices: diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Textures/Concrete_Metallic.tif b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Textures/Concrete_Metallic.tif new file mode 100644 index 0000000000000000000000000000000000000000..48d0434a2742fb1727b0679e67dca0291b5c105d GIT binary patch literal 651864 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

    ~Y<<+F>ip0naW`buESBOkzz>pvSe`fzt{z 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%0Dbh*I2Y96cck{n=Nxuf`WSkbmdXEEH(Pn$d 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

    ?pv>-cdXUu=A10@eC+=c{Lnw$jAU711_TL@wm+S zxtu&J6LiY){i=L^wM!<$q4f`}r8Nt*!NQwMEfdR{?VFSILHf~1EMs6)eawbTz& zEjXcM=OL`~E%9nf@v=#@-N>}rMLHHtjVV#{#KR;v$}3?=xpq=}tg{;7$Ygt~+(+ zm(mq7iYqkqp3&()PLPMnJJd&#$T!LX!O{vyW75OZgBQ$Lj-vTgTTijtAf632%e1qj znyjvxj7v=SDZ^r+`T__L#d@L2*jz(Gx#1n z>%HolN>xD}{a{MPRJ4VNP^`aBx-YKH1S{QYnb@!$sHIM|9k;Bq&^uW_vUf%-KMMt9 z(*e*{tVLA=4%p3YGXkkqqyt2R(8^*A%pyR;lom(=7A#X#E%k`2B+0QehSKU0$o#(z z6TK#^tj4`Ll}#L{wA%_}*hs^;#no{ax&+$|S-v=yNFrys{1heX`b!C-&NE?>qKC&# zR7<@6TO;4ZHG;~bmr?@ducTwS;rJ%v9jilAEOH_|ZC66&ITX!kKWaQ&BA6WdNmx^0 zS)qHzlV{P)<<87o&f8?zB6wNjan!Yvyww;F0t7UCkuZxbtMe5vX;>gj6e}RS*OV|& ze9%jMb2}>@y%ZKaDdAVbiL48Nza%7F%yn9AyBdRhD@*)Aec?d#zS0C8vgv9>@kOf@ zCrjL8)jWpJvpcYRPS$k#O+}PC)$CZrDzcb+j5U%)F)NMw0$lwC z%l%DX3w*;A{aOvDQVnNF>G(kSD_SqfNtZZ7^ z8w6540%0m?$W(UP`%pm5_t5-}&lWgBDs^{3>JaMp40J|5|6+X;yw*~_B*@*aWM%z5 z*5j|tu0J~?S7S7TIbwHByeU59h*PO-rDk3Tb#KKae`0JU-W9yqZF0af>bu1gu`FFz zw6%HXffd8UQ0HM zXHzs7W$h7L<wj5ez#h^SWpoiawVuN&0=TMq(p^ZnawNliJJ-&Q-OQZkzIn;hXW7dp;}&6} zB%#K(BwGSPPhNOY{-fa~XXfS%sl{rbb9bWUHQHpQlB;af?Z~t4i&kc`t0d>d{J`hL zw_aSnVLlCD4FgdwdSBK7QZm4olYrFbkYRnJXU4l+HO3f2;K$TFYNUHRHBxB3)mdF~ zTTH*j%>e85M9vNeI|Afot#%|L_RCeYEDijC1f$<+t|Vl-RIHhR1gW?5>)MvC>kWM@ zo9cTPB|0_9Nb7`d+0&HE^<7ekU5_ zu4v8D=2DkSNrqX4NxQ}{&e7pImcia;m*ozz=+5lw^giEBR^Z--yT+8B9!2P;w_X5gABg|f6}mQe%T|w#1B%5ipE8X;6rfqt#iu*Ox7vE11%kyB(jy_-ZGvsOEVvV&JMU9l@ z)(T|rw7$LNEDDra+Lw|{vS_7BJ-o=C_0=wM2_+o&?AHff-iA)(uwB<5 zYUVC7DZLZxHf7U%S>=DKwO(=`4YBQ+>I+C&)UW8zIwb};z;5^Q6A4fkB+h2Qr=7)g z8@xoknqM8E00cjcT8HAAzn7HV*%H5C*8?>)4@oo@EZ)5FTaV?L>)zZXsNV$T0F<*f z>RAKaM(r={1l_P>w6W3ytM9yKGZIhFY&U3ja<_C2z~mOXroOv%$zDBF(cL)u;a^-cyb6rKk7riOmDzI>s%tBS+}- z8SjODm%E_1e8$z1?ua(r)|~LNQz`2tbP)!2+DlC@1gXmkyJO0_<<9}PPk3~dA?&ih znI4EnC6!nXoZpooOu9nAhXycKB&xOg%M(ZECl7D_sB{Z=h;iGyu77GC^iJN8VZ}_d z1<>pJraNXgbiFZKUt7lyOVCM;QN1i(ZSGu-Oz z%QwG&)ekT6t8!;u&BzpFTkZ(o2Rzgt#b5mMr$#T84*c|`So>R%w~)t3ma=x9jq)t5 zYQHRcQ+(%_9LDFwXrEO3Z#mu7@;Cl_;fR)AzNas&lGx^2<@HhhFF7JfXDZH3uYNc8u4w&L!iWF@1p@#8;BVMG3xfx)4G z2!sk37lK8A09YI5B@ux?q>+dmngtGxN#lSCPy$&fm(4&CxunWd6pO}Y@yVR}X9Sqd zpi}9^3Qq{0$0yK0B<_zq090hMc=PTPSE<)$Ga3xKIZ2bwB67Jsf}IMgOzbmhjN*+9 zq0y(;8)c&PFsetT_geH4-!+-XrZXB!#dY0zyh@Dux$hQ@-@lx8rUF4az_R>$$SwX#ZQ~8pGb^+da9$5d-{PNNeqUn zClS-|=l~LX84S8|JB<@1@-xTpZhdEfTs>4%HO=z-Z*x6{wQb4(29s{N|iM&Lhb~!^*-r z8d4Es*vLAtqo$li^E^cGLT)uLQ^1m{2N$sKTK2}o$n+N#!p!Y&P*N|ASy-=j3Oz1V zYW0I;yis~*2DQ-5V zYYoiM#L*=y(#4fjQFeS+14xyuL13F=B3p=!1(j`pxxY7!|k6k-vkCEt>&l2g$7WF@xUAV;Eu(%t(Kcer^g6*&1 zcueB==?{G?ImnzQ^NG2TvR_~%_QoWeN{}-ezaV%AM>@-M|0^O~R|f@C^E<|`WZB)- zB6p+3LHlzz{98$OPF`>m(?d{zrvajSgW zD);(M91C1H=ykk2=1@(X0}oX274*CkYWv(<%PNV%2enurrXd6jE9%M3nezJ%8B0uB zrBQ4>wnXNL8$fh0slz98Y@89|Wpn8fd$(tJt=&R+dFu)5Lp8jI)@e&mQB9pdm>TDs zkplrGQQSU5@SG8P4Kb@?G_+C(gGs{xTM=2Sljpug*rUXY?i7w1=<@$o9As(;nmj|* z#8e8S?Ix^sDM+R)@!m6&X_1MBLTCWRoy*f;jy@a2_js%kGSQMHc_K*%DHWt#J(SE6 zRKa!Xq+hI|FpKRhwKwE&9kfnoaSmUdI6UeRyt0O^>4iJEY%0f zYp~WUJmThSokW#VG3kZ58HE{~PyimNk|M*{_NHeU?{F)TAwo#Vc%|$il=41FoW+Xo zBs&(Gk%dOhQ(V}NGXQO~#s9*C;<%o4R*5ryMz)rc(WTVEgWv*Uqa%R+$P^=z^YUX# zxM3Yn;uG6Mc@pgkP-2FL3e>V+q}qh4&}Sb*UWLFbvl{R z{wzTF%PJ?i;#LphYr=WT-5jjZa!@VMPPSK7-}4BYtd>bUC#gN7l1Y`5mRX{;u`OsE zmTvR@mbwYN|JX!{sxYbHpK@ZH3d~A;r{Ir4qpKWfqyDbdF1a=eRBfU(wVVWAK~H+- z)#L2_F-++RKr#eKo2?g_kM>YViny#Le14;~aa-9NPT%Eo`KR;Un!rgo_@GpqROmFA zumXIX5c~6N5%z^ZiGdDUTc%O4qNgay+X`Z`bElOZqSo72E$wAkcyUFj!&>H9s{}TK zjV?}{#{%juP1d$*4hhMsdY>(-;zbpj7^tg(R1oc=!v{|vUYk1ZPmT?`c4|zU>ML(xJsNsew!7H&0-ot*hPY4~<yeoUcgas7!5DbfFY3*DRMeHFHu#x=rIMLX6dy zv?1g{uMZ<=B_d4YI!>vyBFx)bznmUMImmgL{}Vg0RWzduTu?}h>Qk*b$Puz=tN~7B zNlR^P`PG)B#|1f8OAk`C#GJWL57*>Z2U`WstC`-;>v|&*9CfwXb3)?YqNs^)f~VE> zCChGVktHaeS*cXklTKT?sh92fE79ICQ)z7nvODpxt=~Md34JPwuAFtciqlJNQhVZ~ zmy=gxWV~7P4X!mVd)LO7-P#khZ#FSc+*+C5{9@pBmmJ+YqN;CbkB=)F62O+bfU103 zMqH_Ls*1U=5KIRerp~C%3>B~~jqy_Ih&8NiR2W&ggg1PbHN$+V}tr{?)h&^g`RcQ;}kB zDaMvbF}oTe-p*bP*6tJVUVk~*nboALj%=U|+ODqV$!A{wsJzrBY;PT4NrPKZ3mDu6^MoYssv0jhAO>~3je8cq*@=V^S- zNi5P$i03HOt55WTE_lz5ESpe*<7<}l%%0v52K~z1jZiw|&`_eM?q^Tlu@CI*AOHc$ z(jZNE01J402?F3sNVEgkSTB-BZ_wf}!v7FlGb0+-Y*bW+g3h8iU=P05E+%P@0H@A- z0?w-Vrbu9rNG0cDtFXwRFc!J3*3Yl%B;mp>d;E#2N+w-Nd=G4E^#6} zL_YY+$i9!+4-OixDM0(I$cD=D!cU_CE!4v10!I)OV31m|4*JL*8Y08C< zlq2vA_3lb>a8}RjM+$1j{4Weuu?-1qVz+Q{0m!aH@5p%#K8L9ss)^RNEDV!RO$*`# zN|A!MN~Tb)BNwVJ^~(yl!*?%$AoA1~7pXgu%A=0U3ZI;7xW z0r1F%PQu7kZfeGZ%{1vT*0F4^U@pLoPE!ss{IBr%&BFF=ZmA)vD$2`k3aEPv&i3NZ zs{W7w;>j?Ot{67Q&c4n}+fkD0kvk$PM19c!Cb90YuRw1Met8mDX^{mLr#9v1Any+( zPLaJI@QDt{OBL_-_6#NNp&d)CcETrVo_M!u-xDZl2lAQH2M&R#`95T(2KuKlk1$Y(WuwUGZh;2U%vRAVbp#~AkgmS&sLF<*cm|;5 zOu$YOy*K4B@C;iPYOuH<_Yx@O(qe269{xjJHnGD259qt%_dYQY&~j>s^c=LX3hq-!F)y&mF)Wr40t1FRvB|QnaY7pwt5J@WQH)sQau-5i+K3 zC2tCh)LgF!g7My|P27s^7U44IByr~qsLQF*G>I(fgYZqRLlUxOB(3zf!UWeu8ttt) zBlNz+FxXiqYON2cLhM&Fe|KR}QcL zFg3GKTGk&s@);Ry z+ar-#Bvh>F)Nr;{c($t2#dRuolQmaP>e^21t@1M(@haX8;Kiq$q3h;&2(4D)7>|Z2$p>p%Z80n zRX;0{0Py8!P}y&F(!8tbT9TMo)cEJwNlynj&C2A)xZ(go+M=um8 z+13u`vnsQ+l_YD&40mxcm8AnvqJUEjaw>OKuXA2{8@ki(Y0eB;%~t zR1yFc2Q)Bte$9n;$Y@csx+v4=!Evh&(AHh+6rV(roni<|mn7G=B9_tWzm%^$44XPc zRePxVw+YKet+^OXg$y)6)35}=)7(iY=T|5D7R~zpl_!38KM%($`fEC-XOB;o*CN*D zm&|v8;x7iR(Pyg1Xg5?k(tPHSGcxSKI`(%8^FZVk+gUe_9}{rN0Y|M z^P^ZoeOTCR{xL&^YLyPwqd>A#Jhfo&HGc`u;{`@6oozWq6ETDZ-Bm2k^DXsn7ioI) zEMa7+D+I41QuBT@i?{E`6Ox9h$_ZI^r??B7f$SFDVd;7lIGfrt9ljF3e;Cr6#IjCEUhzu zuJ(%s_u&{Pff>&*Yr&wU8#tqevOXaBydyuzErYvJivWbl{DGzqfSa`v0Nr5Ad38%%U zkeB~dDTYN_Ud6iF4Z+#L#zFaF}Tx}0H;lXc-0hBMq3thgB5cO|YLyu(#LcL!^ZAS7uILfxy z<7`TYouQDn+4mcGm5Gqh@uSe1=k)oVIr*lXv7dKOmlWTTGwLCPsO_=ms?mPp(#s!J z*t560lP&eU8plBD&!lseS`=VE5wXq3k)G1Hlld?(PnXAbqx zCD8Fz5gS8Sa-ga2%ycw$87_>MHF?CX9!cq>(J^@A2WU@Hnr*z2t_0`@EEC=KCd zNvgXCP;e<7sp1d-y>_^I3}Ub{&slGfX=N*{k%ddMXq>vYZynVfm;gn6r_CGElT=L2N!Nh&<;@gb z1ld&TdH_=#*gqJj6ilPi+bMZx7ahAsCo+AU*`*yhWXicotoNj8dvV}BjSsT>NIo;t z9vj{pv0VJ%?6F0Q>`L=%4~sF~#yGBq*5Q$lnUtE*jxV$3RtF}GpLB6e;1idJ_8$rw zXX4Rfu6u8ylb;qi`JY{%eq>Zeo>LC}G5XW$-K3uA`+N39->hO;F(=*#+A5b|JeL^WoujtaMHbkWQayWo z9y+i7)mH|J#>CsN`{3Yl(YV%4x;5TdI8x0{X?B@MTJRSR(@U;;(pfa4!CDPLk>%g| zc%Jf&hpRnVT2SU!j%o+H-JAQ(vk|;eZ?$7=vC*rDG&`q#IO~4A`cKd%JMmE7T;*wiF^e$aF?W9*VzXk*Or66&Hz2WU`PXz9%P%#^pc>)ZPgCgTbM&c$Bh> z6`n-EbBb6Nhenu9B@@_`>X#vd(&M#?l_p0sgV&=q_!PorW`$WNHfX$Fi9U`}Eb^O8 zR_jxV$R`&2>>lY7u|X-YKs4gxYqMf()p$M@FaWw&DbtKR_XB{KV61uD#&Ua*rNpQJ z41@1H00hDH7FaGm%=w&1v^PA|6H5}M2C47kkWhvpC+> zG}zt0SDR+t>S0w21up3d7X$V3kW9=Iya2fKGCfLNFUdW&dq5u@D~_e8 zN(xN0I_{&W;i7JGwAVhXR38SXP191|w}|8U1Hi5d!1^?9<0^tb5F>Ddz(4~^g)WcF zB-lO4YTTSIi}W_U!Hdj1p1$o$*#t%~{9L<2k$iI)FA?mF&BSl(%OEl?iu94eax4^@ zr)k6`Dxpmitgs`fytfd_4pV0-wvvkeyhKQ%a<%!3#Sx4IL^k41?c7)(Dd!GfO`%4X-M&$Y#QHR4#yzU^F8RJ%FG)%4{C zp;y*NSmil3A5tb31No6&30-?VqONpYizkRsTTWp+r7B&!X1eqy7me$>WeJ>N(nf=zR=b+pqj9W)b--^NEc}Ts zG>;_*EEZlHqEDRu&8}e_4z#dZdgPBW!Kz;UjBl+?r6odmErD-sQgy`sMRo<5f~}Kw z_r~h8KF_tzb-t-8^^^x$$hrN_Yi#Y(Y;EUWZWYL|bCZHQi{p?UNpS2qE9uUncg;IL z0Tf%4uxNizh4WyoD*k=I0TVhk_|V%K6LAC)r6tAo&XW^tYR)<5yHfJj9^xP}D*^1l zck>3AW9)duaapyq=t7Y*OD`qG6hB99^;f~yc1JniIb(X-V1ao)Cv@w;wo2EVtPDdi zM2@IKsSy-hMlS~*3qU5&mQ729R?v{^s(4DG%_-no2f%}_2V|fk3&L@ZT~el$e+3{S zUR|-34ytDp58#UKfy7m^r#Jxcm83O#N(mcB2%N|sgW6H;-ITg0%Db5RDSI&9Fu--( zzMfg=icZ=WIX5u`q8eqB2sMP4hmjy4oQ981enZ1}s|CqQD~xXmVv~d7iI^ipfRSLs z5Op~E)AV&B=9IcT=YqYXWRy^h@%O%YLhsaB@gEHN)*VI6V%8L8S1H0&B%_X94;vkH z$;|#T_FSQvQ813J*q)aeI?CK?`h}zsxj%@q04A(kVNB(rO?lKu7h1}iMB)>ns3`&G zG!1L*2&u(+o=;*`1%RtsEl2hvCmIxZp_8<_Ka!T*h?M(%QX(Ho<=q$EQ?Ore!O@YWMgAv;mB`uLr zt&hkSlB+F7 zb23#v%@PRxpb928wT;)c!}gvkan~*}%_h0D@gr1O9afa#qFAcuM$?R-j#eJMpqf_& zW+Z=u(owxt*a-~eRbh`PHW@(2#avS{rLazwKQJpM>M1>nc~D}L#J8;Y;~{u|^JzKR znLK@|Ozo&|mc6sOZAj`wA9ChGyCrFc;iGE%v(th>83N*b=A>npbRwV3>x5<=^aVLD z?d+qf7U&^)V7jy*<6X!m^Dbl=NiJ4RnG)$)Epk(Eb-Inw)Ri>ZY=5y(tr`~-;$$nu zaGUT1okFX%8lR)VypFZc!=#%RjZ0A=hbI0~3l)a&OT%%o7SP+&t20n-^-dCY#yi-6 zj_yVIKTt6qTW8vzj!embFJ`PwnE!N??x4^49846ZF}C=UH#(W1oDca2#}F3r zHJdEs>6=?lIIbSx1giexh3}!Zs;Vc8=UQN+)3n(dK_h8N6J!jM%XHNs=Q~v@Y*Q$o z_xhA$+oh6XTwlI<9Fd>G=mAIwfB+y&$PfYj1pvWd@E|l5`2~N$Ku}N|LKOu9L1R%E z6ZSP9fkMC$I23X}BmhaJQUC;2LkNsT;gIN*74hlV6o^E?sr6|Rp@dm9d55I08{0bD+CIUNu*gUGguWyH2JMn&jW zX4Rxh3{NGXulNA7whe?B!$*>QqV%>58!Z;eN*kLlJ}xvvH^c9Pc{@k)M12an?{rqH zxRD(E`9<$UUZF>`d}7QxDFV+6fDPI-<;v7V%+FJim1#MoHrOLNG-_F%#Ce(C?w4@R~*KW^Q5cOt&L+~wTo4MiL`SR zD?2{+^>0>9wRS;oTbA@83fk268u?!nRyAxl4RajJEcR+YnzxYsRN1u6g(-q$8O~hR zUfJ}a7vr@ZFD@?2Rr>>L+{SI%OMeh;iTwU=YaZgPRdOb=;X94jmE=9sPyQb5|*H=u+ zkFoM_0B4}9gw45X8NNNy%Qg1@&usHPxlqy?Og7_ll5M z4Q8t~$cie@V{Okxr9sj>&GB5q(%V-_ae3Ama70n-cGaxlN()G0_h#L&?7YvHgJ%|+ zP}nLzX58|}x3hL0R&*=I%V9getGK(L|BDGE$v!2DXps7$VQ$6xpC#=486r6~Y#}Yj$a>gcykARjB&05c zXB(Hf?=sDCy`N`fWTX29k1>uMMYok3)#L?K>BbSr_L#_FdZ0-~ov9XBsA!FQlyYgA z&^$R*_8*#Tl#Ws&BcfRxom*~~CgC^A_3tZRo9B#DMifD&%-2a|X@*M@Vl?uij%Dlf zYmf}tJ;e&x!RA!r7foo|E(a9(gO$}sbhtNiQ!#Cp)T%;bCliHjqx^TUzBlD-_ zmO--E&kQ1cPB)I`MM8Gw!D9tWiWNZFk|}`qQiI^6#j1bBx%)(B{AYk}3TMJ+0Zi(> zQ6vksX|o7xTwIhEoTZ zA(Vj4Cd`tay~wLin!@k0aLRf=CZ15?(Hb7lB$gU!l>{s0TC_>UVWJxdH9b7sd7{$&ta}xRvceq8piPl@_SSetg5ce!yN*A1CI#XHHUnS6-?7N!0 zXT}>+g`a(CgmqLhPL2L;zP%$1w%&~1bV}w-8u24FE^nPV>Iq)@&tB<#64g1;K~J1R zz+;`Uw%1nxX39e3cLx;8(Du({S{6{{ZW%21bCec&+ln!=R>&>ejq#c%g1AOgZP4k| zF&xv8%Pq^HC*P{{GBl(O+eFv&V6ZM?1ecB2^oREj&AK~2x0e}^Jq;V2Qhq0#7nLd8 zc=8uIWSPR`vr|iZ4?p#1#Md>108G&H3MB^DizSj)tgy+8O&kpNH98?hM8a?sjX(|9y}Lo|nuPQu#D{A>pJ&Jn#<0v|4h__hnn_p z?*uG*dQW&?1{U1z0P!URk7ShN3mn`IzUS{syRIVI&zyFv2C7f30i)2CZ4%K7J}pMp z(}*#J`>}X0N{BBH_&+=`~gx~G+1m|$k4^$vZI5Ne=$uNj$ z?5PjPde#cv5UOy^CdlwC%E_$C%C3ap$;jkO^ldCB5bALDZAe~Z%(c!`Hf%5`sam(r z>g!Bu(=Yagsj5m%5I*o{2dL_=U=}E-9BJat@`$$ru*`A8?yU{lNkdHH$V7+gxY{SM ze}tfr%n&HB0ST-!_N;~=pc?-G03NScpA7oj&V=3X06%b<8xUm?O{P`r{ISTEgo9M` z<9c<@V#eo35@$ml?{^fXLW1u$_`<;!ZmjDps;Ny1#w+maE%1l%kmtuo2u#w*CKC_v z@HY<9Nk$hC(In-IO4jhrACQQ>j@}@yx&R1x%1|1Os!b3roXl^j8>A}BPv*MhyA)`6 z?5Xzy33|Qfe7y=t@bUce2NpGGbS&&M0jSEkLo77Tn8K;*bY#3X2^`z&od%L1j4kNY zL_;46`1Wmp=*%@L&z5rx%JN8W1*(EF2z3)s&Q8!Yi;U37(NyT~ezYbd5)d%OsYcqz zpB!$A%&*$_3_SUZXuu8rmaR!A4JyK?#J24EsV*HH3odW)rpu91Uo28oijb}X%J^`3 z2@hr?Mu{)0cQB=3>dhY5?t2ApM$|AMl`ZIib1-S}K+n-%F2;JVN=)#o^9|{14yuaJ zr*$Hy>`6zgG)ywB&eqV#X3~PoDi0jv%B+UzhQ3Xt{mWXH^Fd-&vu_l!GaG7E zEl|EVvL^=Y=9RJ83KL#?5F#?milH$owg`k&jV(J9s?TJgKd&(4OFr0=*!^yYGc5X` zX*j4-DC#bN!m|lA)F(Vodj1C?3osJ-5XT1aPN%YC7qE!|a`P1qtT%G9$Vx{VQ;fd} z;&LZwVon;q^dm!%-2u~ELy`|U;*lWImk4p6s6O0JOJ>=N$Lu$p7AEcR?+ zKrRNmFwItnM%-o=HWH5-N%ba&T?-Nd-j*jsZLcyQ<#n1N<@)dfHJ4`^FqgaQ8IoFo~8aF|m*`)!z1YAkz`*$0(4w z^ip+{X!BJlm$i#3F~@ASsWecr z3vkUP?puEKV@*W$DYwxYwnIDhVQbJxtyRl&Hgx1|^Ey^XAgqr$&NPw}9MkwEWf#d@ z5YYzd`jcv(N^t>klAPd&Gi6nYQj6XsM7%8S?ML^^>Z(<>P>!>5I7a?AUR)zZOk-xuQrjhGMm84THJGzVw-Z#)c`Q@j zla;RKgZh=Uc`DT3Z1uH^RS`!^9J`jRWR!6LM*fh`A2XIS zo{-TI5Kl>wZ0>Pp7nV38GfroPkcv30=aTZpV(h;hSQk7hb$+MnBS{4eOiNgHgo2NKd{xC;G?>2y?FktU|J5x9*u3cjaauXh z-cXT6vP8&HetqP7M-NGBGgqNTxn`B8bkG$bPUoOW#|`pJo^-T_;-gvb*oMaKWtsBb zE}-h>*B+z$NVzX6Q5|e{vF)_x}$Ay;yz{*2p-HJ_jHUC9M zgiFGPTCw|~O1YJo--TulcvVkg%>gbjO)U?vsW@DR`GI1!GV0NXoW-?c7k@dI;P!aI zr!h;RxGIhhS8`LhPB=4_l;M2#=%^S&3Ht=`R8q%`qR|dRZ%h?jS#N<@4RCku9krWL zmBW=cEtHszMfwj?>7BG!&0pEq2I!%hJ06C3n-EmFGpvL|lt96GAs~001Pr)(OX9lEmziqZ!$cpO-T5&+N+Zd zI9gu}<7Im4@lofn%0zQGnHs=N>Bj2$Xp$wY_Km$LIX1M*z`Hp6SEnq|;JZXa7ROB0 z^zQvL8r#&QOvaCBx|aCu;#-$XS(E=}2%)XJjU9Fw5wp7{8P4A;$V%DtJurlPRo`S6 z0{2l9ehvkMPm8wuXNLC(N4bD%hbZcUMO~X2l}h(Od|Lx1X|mZWl*USOl#0&Gs%$cC zTf122Iy9#m9)@}QuGkv+y@ehOt2emyh_16wd`~rbfzX@LRHh@beGPsX27)fgcul+{ z+HjmQZ#_7#B+CDdbj0TN^Tc{fk}w-neW$fUc<^(eUj46Kq6-?A#O(K;okFjt6qiRF zt+pL?yz)M%bW^<49a*vKPY`*0viWrw>$??Wm6=$il!DDPgL0Fl+xrnibUm~An=)G# zpu7o*T#v2$)WJxg<}Kr)Q0cVVd~fFk0>r$tSi@i#hK>7E((bQ+-FmB$TY$SvKf0lE zv_zs$X0V#IWTwEQ{!5`2Q1tB$g@xa_Ltc=(#2PHf24aSdgY#axVETVCwkKT;yG-w$0xYv-Rk8KWR$oq2ONF@gnb$v6*XJ?xk4fJ{ z(z4%^y@tO(Cd8*5Ks0BF?Y-_9$RGd+5DEkUfY zVhRL;fn$&$G!^>=en>zPSQIW-1&2i@5xCUM0TuvDCh|#y+HE+DfBbfOtQn^x;Knv_l*O{hfdR{M=k9|EjH zW-}{H;(0K>U#E506%Kz%!AfoRip2h{HJDHAaZ5HH-4x2i=k#24e${Wh$6&HNmA&zL zv{2?Z{I&uGXam7tdk8L`<$Av7F}ffF>t$TJYO{8jbpCO}-r93ijQ!@@DBxNwx2(M5 zi?hSlCl-z-9?`ne;PCp5wZ2~{x!g0?sAp5v>DA3WeJOK^KhdOkyhbb3 zMBu~G>fX&El42~UZ{vQ%dC*Z8BSjzN@$ zFMiD_jg2qC>rHP>%6L{{n>Sa@ZF)g?l^IK1P6F3QSv7ohAWvBwHniQ@-U)bIc4E^r zp_J9o%f!;eyNtLry`IG2RNEVBYWMrd(9!sOrLkjMJYSS-&`T+BRe2t3OWcumR^Q}! zE_H0;*|e1_C;HPl5Y0I((I`my{xNG(n!Y_Z*AXSi`&#-7Iibq0?S)+Iko-x#piI*m zrE8kJt(ZmI&CkTGXmfSJ-TbzT%wZ|BHL%Ove`C(LHb)J<=_{;rFzsyoCslJi1yA3~ z-A4IvL6;@7?l=qZN_+9B-cUd)$o`*;2Sg(DS$*OEClUJ-YL6Sn<~B%*&C~ zU4vvX=6lX~Fbi~{mvY{2j;VA^?Wn?8*xkND!1%OD216G7u`|D*)aDL|Uue%_u~irC_O_F{NPaKR3q4 zANhxLO$rdL)E3AgW8h=#vByA?VDX`wc#4Wu#3q=UhgrlUToFm=#f8NJoP)uK?$N$R zBvAt2ToZ*%#Th{d_RJi+9VP`}-3-%?sgXlQhE5h2zUMZk%R}0B00CK_l+ufnf>$|d z0L?UpzKr3K_I(az>a^&S7~D)WkP21iE+(v&AA99x&jj5`Cz1`+-`hNT3JbGIGRyg19$Fx;Ke5bZr1~gNlOw! zr-#)F=m-F7&weGy$8^>r3+J43zB4g+vR+KQ0yyw7?@NdH{aa*hl2fdlJ7}EKVJkI| ziqXb2W=}#;4Hl)4N$*GID4fyMl!`KCd@d=5n%{~#n8d}_&q&KbCtIe82;jz;(epu` z1JjlCMk~by&qP|CI*yYnHpltw%qLXbbP%0$#`K`H;xZ_zRD~Q6ve)_ZKSqX_O`D z7Q_mm@6ZiQtd)&5E_a($YE@vMa}rob`$=P69bF(sHgr7rinrb+1Bvxs+07}N6DhSB zp)*R9wJ2R~%UsZti)rK_xg7ptI-7i}?d2;ugi0z24pwoZlQ5R+MN$+&dGhLk&&L&P z7&Ra|Q2t=3aHRbN~qOMNnJogfu@j}C-^T^5k%pF{%?6KX=#`@=i161+ioc*VJsboUAx z&dI5zl}|z(ehYg~!7w%(Vyd)`sEgpUqzPK3ia}jn@~NKliiGBwSB~IyX1}eaOQ0DB zy4+&Mn)PLhOp+#Rh$@|5S0cAGg0QVXR(fev3g4s$rF!lIxJg*K?y#4r+H}rLq6Qtm znrYWc?8Cp(+C9wOX;rvw%+;02K|~Bqmz2|DY=Z-@g~L6cJoWK9pN=Dv@%N^rn)hQ)1u@rBFn6i zt*Kloyl0OCt!&?eaz_hAuS(M0oeM9r%p&kF-0q|K75HSMu3os+R?~cSM)X>nOQ#Ar zSluS~LYs?Qx~sjGnbV_9_xEqP-nE1Kb^F&0i9^mr@E}Q^MaaJ2XY6(9Xvn(8q?veT zNGh|)4*^4R_grzzYPH2rr)85)A0qsGyu|muVrmPNkW_&%)r!&%dY(5MYXE;NWEvfdF!vn3^hCXTFvtsWF`KYHlb(N`d z0Aiht;H*5$^E*M~v}xe2ies8u5jQdSx01%X+E_C?k2jITwd%&V^4Tmq)jgUHu%Jxj5mUrL7X5glA#NudbE=3F=I-#0ScFDpgpUXzFNmWqMRsP z1*O=AK*9na+sQce1vw)fuLCVYLGD5e*DovdKLi{&ThT&;*)MB>8H>^sx*0#gz6)60 z2x6eU+QdV2JHLbwF*2n=y8|{FSV3|Wv;wWdO3)!ooVS8#L!;KCVzeQ$xQL^vr>XtA zBSO8KVL2-Y!;0m>!Z|$ypb11j!@B<)(ssIh2aG#7JZe|0gj&Ku_n^~lHVX2@j9#*< z<~!6BLgNa;k)}6u5U3hzCdxL$J8`z7*QI{Ue!ayy(+uKArTBOsA8jEmEK!b7zzJb=5=)x}J0Kq^?f z^m?n>F}#}8o>YEBOQW+=lr1itVm+X%h$*O}!{3@~(iViWL_&cScuVlQz5i_}x zRlF+;!D=|OAp1aUWz1YRvb=l6TUsuv=}J+tl-hJBnJ7G4AB;Ezi9;?vb4WKNy%&s0 zq!Q0X6uB*=0x%1oN3=K+0i+=;O1hNTMpP_G33IHfUq6fhwVGZ##FddEDJ}UHNWz24 z3Wm7EU!{zx!O0X7!zaM}X11GOlaS-5LwPdFdMzUSMVrz&%Q3SQEvQMT%Grvn%s0Ih zp3A#X$+O|kgvY3pbqHgC&m+8+GASQR&OHot&V0_Kxg)H&kqLyR!Q7ilvw^-z;H@(l z!L$yne6ll{6iR#8&x}Gi8LYXi;=pu`5MiqeMGLm#HbJ|p&>PqUSjN z1jS7sOv+DF157X)AdUpiCA^zQ`;Wq1D=brVM6-?(Iz=4K5+n}>iQ#9vB>R?M$ouuMFlEc`zTH3Elsgi<{sEO`Ki#0LaqPttXxoOOb z#4R4;WOCGFG96f%?(7xr7M~{%R{Y!!Xcv!Y%l-=!n|d5#EZZ#^r<`; zf`_1#E`-*I5vYp6Gs+yi)-3bR12$Laffbv(P4pxkI;ByQSU?kj(t?4?#GKR}4XPQw zP@|Hh;%Zf;p-7c@yWFJL8$igMXt3otPbHI|eOWO|SF>YquqAbfVslx^6vFIOR>`YG z{Jhf5@s13nA9`!HO)3GJo7W`?y;p^$C|^mv`o(}#M>B}QXCvNlpn@D zXx7Wa$fYJm{QSeI!n^!@$Tbkm(}|ZvPt{R*Trx$mt6K@A@5v|t2eWln!;>eqp{aEo zQQe@Xyf#)dm(tQ*#l4c*n`%dtxKQhx*rn&m?Qbt(t1;U1#sMf$Rk9JCKH7q6OlxC9 zTd*(WyEj8+P3v<=L{i1U-KfR$y5;BIXqck)H6?>KQ|&TZY`DwIizS1Hty$8p4BN`f zAk{n!yb9gW4a+)Ey+<3l5prWWTv^P~V_rqex^nPd)mv2KjkU#HTvf-y#p$YDiLSE1 zs|sf$VcxDu@RvIVt=gJNt@gT#T)!NhStMfBM5@0Uy-Bk$(;fXLt0XcVb0g%7O*?hV z70%BEI^Zg_+AR7QSsh?=HsQ^Z(AF==MaLWUYGqT8L{wy8 z4a71FI5YtuUiKP0Vc(=goy9%ttkkQ+6JQ9PH{s=JK~^{zO{`f;SD}$vr$Z`H25BsH z<0h^j=CgKNRymrSlB@NUgx0uh)l|$c7HQ5=OTcl5|ebc!HPNf-Q z%RXWnY}kMR-4(5u5kaJ9-Eh=hVq-yI$`(bTlY6OFD@VO(Ms;aH{r=lN1VW41+km=S z<>BQ{Y`0`>QdL-}-I!&I9hMB$U?kwz_7u53G7HenV#4zqO{1R89Y#(X;#Nbx%hH-{ z{@t}q=fU>G#!%CoALrTsSAEP{B{|KU$Xq62+gya?>U@tnbPQndzp>?GK7wJDY2sc? zuEtHX>S-eF|}Ag}%`xi*&NW6R`KUT2;# zYU1!zb;p#xkYZl8s5{$8@h^~MS@;FP%E6fB~m0pEEjO)H`m21z2ea-F_fvV&)ocgyfwj?xg7HR{=O? zgJkW1)~?hoP^yvApu7Zv;Jn-wQQpeI^r!;z5>|O~19(v8xomBbjm+b-Ro6t< zBFX+>D?0IG;qWFlf9^j&B!+xNEeX(uYQRqS=SHQcmqXzhHmLTRsCG|pXFoM&%yIeP z!IlyjN-12#Na|D3U6X^re@J1tG9;A?2q$w^y zb`J}=Mv&{796z0R&oaYUv~!~#3P{M<} zigKLG!n5OO_SA6FF8}p3?&v(V>HPtBCIarnfGc$wvs}JauBhH6v{Z_OM3jPfWLfi{ zpYgRq=y3V=gsxXH_Ma|agl%CF4vYN$k*iw{UK+pmfB%5M0h-Uo6(7>ahHU z?YD78Z2sxtvg&S~Yu?AG9?U?$|q)b#$GV`#~Oa zH~<=mhFP_$*%v%0O)AD0d_Wq!L@ciDGa+yXVQTk?^QqwFCNYRC)Q(&VdQ+2Pt7>Y8 zGAE~mvw;&px0Ct#_K`Qn2rm|BuGee&OiP^Ivy*4nr*y-;z*c`ECSNC*#uJ_cht}SN zdSm_1uUE432^nT_>wfLs>w(U@BkQK^XFVmy-z3x`rEk-D2xsN`C&I)K-6b$5VmTp*0N`@y+=?R%fy&~5NE`A~ADToW;0Xj$U;vX!;S>0zVu>S} zLgdqk6%KzZl2c?7Y5fjCTbj=371-?b00ySY=ipd$4eMY4R3(yl#8OR4lTc}}icN}z zY?DyoG^^Fd#dxtvuQnQu^3xNHQD9(uzBZXL#$|99Tnq|z5Ub{C*enKL7jMH@tOkl? zj|yg%qY-nO>P3;8Jl@AqLVVt$kaQIaDG`Jv6|&L%PU^@J6cE#(XWJ(2K?+i`)=BDW zhU&lQ6ri3s(nJ>*xG}0A?x0ZQa?d{C020xkFnS>_pnBe1g&0W7C2l@CKmGF*2=NmOe;FG-ZNRUXguoWDI%F3g7@qzaO)8#vHv#SlYN z8^Iv2sZ~u+%T{#Fha1*mq5retp7}~ z4y-3+U-C;m4A0P|@pRUbj3-4`%XCV=pi^ogH`mEDjL>ovW!Mo&s;(JRki z-E_13f#Z>E0iVzI#lq|-?MiU5RL({Qmg`pQZrkodoa>7UinM#dVN2$XEQGIbMShO)e~xX`_!*M`M)Xv0f-*u z5X89Rrz=v^mi>fN&YgR4E$RFxrqBB>lCsXLrya?2 zaE#YAsCV`Se|eVVq|o@h1Iviq*cYo}X%y45dwM@7f!GJ&>x0sL=Wm$V`hxhy49ThRtrK> z%Y@XSHL!_KTi{V}EyXl)AZk$?IAtjk5vYhZQ&z#%dW?bW!nF*G=_?A_8mZ#R_vGbZhbLk9K4h&_8^>r zSIoTc#zdmSi+jalPB{RT3v8wCtq30YdP09IvGSf*-7zj7-iKycHcOA@s0>)8+Lb zS=S3!jF5xnu)W2n9Q2!Hr6&Y9P(OxwyQPB`F?&&29o3RY2rk3ZgASvABpLIT^ zNov_bp5mK=(y*^ThYx7vJIsEu-jvz;@nC4RWt>%(l`k3LW+>%DWfXSSlsH*4oy*Tw zGMhFi0>mpbxurqdq*i+cc@gOm(r?vFXcHZ%d|sZ*Cu&J8TP@| ztLLKVdT7|$u{r8pF0gaPK}A{?SEEXGW>NtR+qsb2=FID3(r#H^6hCDU*}Zv|q02^8 zD^ZISe^rGlM%||b^Cz_9aC8~_t!W1VuT6ScbrO~#S0NdzyMk3%N-A3$$356mmYTC9 zm6q#tqAgtWKN4vKV>jGyYvGGGims1_0`U)8!LSEt%8Hwl6GgSUw7|* zW-GwfiD!k;G-=C75H>xQ;kL`Pu;C2jEa@N?qBo|6u{m!l1r><}NV%Ebs@a)I zQ#a|B$5>{EG0AJG9L_yG8+5=+t2L(c&TPzFLQBdy+b-i4nR$4%*<6#>YIt=xx9`t| z<86kkGRE_V7m@k5;Sq$IP``x0aJ1;+hc=RhGDzxFY#noQK7n zo0om4Q$|%gsVXFD&d_+W6rpl|qC7q|&eVUdmMVNmAlEsv7;km#h$-f>oVBQI^C3ff1S2ioI<2=H+l`k88<9BaH?yq;fb%CA z*7dLe_B5A2jb~#oc6*Z5ZTF)@Hw8b-{3%^9?4{{jo~+@i551N2J$zIHmFy|e;`$Zd z_MT&^%v_JqNXC`x?R@o$V%!V*rLE3o!$!^|w757&zf8Dt&*tQ=cHIi7xU1aFCC>kDOw5U@_l%arDGL4P>~O0LJM0dQCy{ed~JY; zhtl&4TLLbg-h>deNmSH~Dj{v) zQ43!6qHZaz;_1qmo)siUzare0a^U4w%dD^6c=0NQa8KFtGZ} zEY}G}{BB76%|PgGZv3TG(Zn*It{&}++RSiM6DL%MC@Uo8eIrq_`7hEx4Yst8KP>Xa z9jwtJC{~9OEWPKj=h4``mYHBPw5n>#WN^|@3QEQN;3he=)>tY{wYx?YRJM8XCDo57$;*IQvm|P*mEP+ zB98{iQV}un6hiP>CU7e@rAw&Gbna2CcRHDIK|BJ%hWBy z)};+)HgM=xG3vI_eE5kDSa2sSBv0`Mk&_)s@fdN= zmyEYC=Z!jXytaoz-wQ(U^X|SYTPcjxbJ2|8@oIj?ICZd>J&{K2B@syS$VW@S;M2aO z2%MqN;{;J6Aq3?w^FJw65|j-CER5|f5eFd)PLWLPLgUtB%6#l;*BB2^9xY8A2~h9? zhc<9X?CLnYQp)7?gh_KpDg;8Si$3j74^6{*>&&B4RSx$_UdNNb|E0{|j#~&X&iS#{ zv++<|d8!(2yiGMkWc;Ym(-YqWMcw_;tEMwN6qn?9WtF3=SUsl~!oarA<-sGiY%`PI%yT zMD_*cEHZffuKh+10T`n~|HSa@1mhdc3iPBy335bnq%!(cj$g;IMbhP2aMw!nuz0o~ z1m&G2&EFL$i#x8D1+~Rxf77(<@XohfK*3e@?3k ziA4ufB^mKroo1rpq@!ZS$WE$ky;IIG6&&p5*x~dV!Erh)MmXGZcRAD2?}^ni4s!}} z=%^NDT=kt4QdYh2lNePi9TnXnv-dzLS5xk&fUGel7TE7m=AU-AQT3rv%q?wozEk3V zTH*#jWi4ThJ|%EE^{zBGw0C1M)ne{X9<JdI^)5<^31iygvDJ!4l^@=73K=Ds#vK@KHPP0MT%IM6nKS0`gM@~v!z zWLzt+5K5T}#DZ!m{PvF~BNaC*7ktP5_IEypr5^6Bjpb!e4-kWSYYc%jGZa@Z7H}g)23mnudSBjY%0#?z>XEoK7@aFctM!2)( z2}xBCij(yUw90t1=D1j1@T0LH$LMLui#^V`b2o`*P?|0H&URQ1!(z`Y)`^DF7&JEt zl5K5hv-?q!Taos2D%WXR4V3g0tm*W6K?X%%PoOMA*7-B*d8w|NWQi&5+BdTPq_ze- zIZSFY4Lj9*{?+Xg7zYtqi8z<}4>x-%?jo)8#gne?tk|_Z7UnziSqyircTPhY%igSu zYZzB^W^b6Et$#(>cBvvwmIdS}cg&S?{z7@Sz}cr&N0?(6@o6_lo7Pb!H-BZ31v$Dc z1o-D2=&fJi0SzJqW7Rumg;}G|F@v!eYKOE=veqON|Ald@YSXe(%;G(4-T)WTHAzjG z)MX}+GGr*%du%+=DMxQQS6!n*Ra0kdM`MX-t(DE61?w3WAOWXGv7{zT1|zX8d8=GE zRZx|aBy=pmt4NoZn8#x*^QQleROaVL8p{Jyknm%4=Qm(jxk-31)oS+fWJ@5*eNU3} zIdZ{s&Oof15o$WeXxfo{OviTTjRLsCG1N~~sl7MR6Q|kDC~>$m*(+6WmuBZTMHJD6 zshMj@Bc8dRsKOTPLp>zKD^Bq}vSZ7KyD+U6csn%jptfzQv1Mg;?+exu2KR8o@d>C3 zu*c3o_w^2!@WjA+I;+RakWk-jIpY0WL3&r9w37cdIqW#vO@I^^a_QGd_~RN8geUO- z6KjWY zCgB=uxeB7a_&I8_j=b@woE!CvtGAdNPVgJQpf$9|8}Am-t~6i<_0 zHZ~6M`}?#KeWtrTQYdjix}?HyJ(&3YmiXz1(7TiFvx8UVuT@no!vOFRqq%C&gcDUD z(O&-fthKJIq{0vZ>lM%!BShJ{LX#HNY`=p$OqjUAY}ta`upgq3M<2<-0m;|DHMNY? zR~dQXSCGfhdV>x~i&@;Kp0Vn9xN@01q}Tb3Td4tQ2&rmLdwhs~{Zxe8?PbJz)IybK zg^8DBa`BIR6m_*1g7xVboRBaNDJUdQ${a%{uw!HkJHrqwwc{-j4t+}*9fri0t)ky> z+i)_$-$m*%dJ44J={ z&y^F0Hk(u2%7kDPMZA}GgPZXJjZHN&4e_5E%}vL!o8rRb)(3A zkNN9rSB<_|gs5sU6Azd~dh<3nOLn&);!2q$N#Q<{?2cLGrKBn2%Sn>-u}iiYYu-0>Y; zRZwlD6N5^J$+%SG%C=V*Z_&wc5t2F|^F3i>S!p#YKnqv`!2+hsDU!;4nokP5)asNA z#q$Aus9!Ai+kLjB1iH@Y(#%#m|1+?_!7w&-4f6xB&oCIcEK-S(kih4+x}FaGa?Mxh z@vSbCVFCkIwv%hk_Zw)~!E`#Uv86RW?;aFe-@rVYzZ zjV4aZjFvs%0@|7;OKS?mv`=f4iaxIMmjXi!>NK{2&zJyvAaHX`wzF*72>7k3lIE(T zPwXuLL6M6X^*K&@VHdXOB52L0ue=hLJTS`b0<>-$%EBd%lOFv>4dinRzD`sQ(>ahd zK7}W+a-@nas@MPnvXV=dpRo;GbuCJ;8tE;{@v>tYMo_fd4l*f}D*Z|i*Z~JM2qYlL zr>ydRnKN@7cC4(9b8gU0Y~nuRH*?%ZiY8O^{S`Hoq&+Cn@w=G9%1NyeJWg~p?3dB3 z6z0??sgfwlp;Hd!`r&Z05)7Ygqc8d6(zA`)c zI9M$7B-d3_jg=`&G_8oju&5)(+qmBALNm_1O zHwQhOLFw+X~?`I0zZ$mOnhAcaG&8wMNf!blf)p+qeV| zh*&wlA^=D@X6I4l+6;%Lb*miMTpz6F=RWY|WVIW3*uw`15ZWpQ7_ zcNK$n#BU7Bo#?OEainwb19!hIH(QtEs(Y;RzI(qW@l;vM?t^o5-u|O)@&B6p@~uc2 zp4#s+n*&a1;QyY+2*_Vr&n6Cd02SgD0+0FObV%{oKlU`F4cdcz4EhT&1Cafk0Rnpj z6*0lpu%BHb^j`$kszBGq(chC7W2SBfC-bg;j@oBI%ISd|(gb*1(z{_R)y_iJz_;6z zIy#2!ilSvapWSkwUu4n+HpTeq;!CwArWMJt)#7wnnyz52ss9twr232uE_f{_ET=XU zl}W1HeaHSTDP+$NqGI?=Zt=MJ`RGdMZaRdmuiw|n};r1r6}7v<`i^r$)WzdHT5r|45W=Nsy(Xb zbj#dCwKT?}0zr6Cq`+M?GGZLMAp&Q@Rg}|h_N=D+IcSuu zO|AMWJ{p8!pX|nvR8nEZS|=qI6re+I)*-iQtiC4lf1GUUluTH~A60|$W3y$kGuocJ z<1)#mbX7l=^A3nA3dW@`QL2~OYe-^((59vpeNp$BMe763s;p7@F`3%3<6Ky2D)g8r zxQMHnR4}j8<~i150SHr4uAvlWiB}sO*OvORhjpzgxJhDPT`K^1XQAI5t2Ga4to@Mn z!OWQ!GZ}20MOu+6Qom+8&*~bcUd?RNM%KS=WW5TqB*3Xc5t|cjqWhoA1~Zu%;Su5E zn{Vt!PChHeNTcLmof2YpS{3&^EgK$?2l@6l7++OlrA=~79uv?SnS2=C1e9<1pU0dN zISJh-zm9_F&HLvIF14?K*FpqQCThpSpQY0`2{aq-e^o@`jDLpJBd}9t5j1W!o z(3{lbF&u~o0B44*n^HAhbGH9g5&L1ic7rAcOPdtNS##6>)*ehcV4*tzl2_&0&mN0Muj6QM1^_DZ5mspC_zS8}*!eU#sxD4#K<#l*WH*T?*%y)wm zT}_{sO?j6;c&#V`y_^CJ-#k$;0 zcaNv;HAJOLI#DEQXzm)nsoz!qf_IqdbG0R_U5>a*SKl`24Xusbp;F z;~T@1hJAr~S}p2@lOFrJP8T#ctNm4dUIFXzimB9Qqs)Dum%Is{V|NMjdpT_J_FP|6 zlT*V^%=NC25DkY(&AEC_mzmE!ON-pp&Vs%qV~MZpk+vwks_q}W#7Vn~EJ>1vt0u(m zX%S*}caa4N`+1flvW{a*x&!VsaH+X^uC3XztTS4&vxT_hi$6O{soDoJ>iv(RCb{Cj zrLg8U!H`^8hqM%QIT85Oe!BD%d z%pV#O(jN0KH6cH!I`T9NlR-i#Km$x5n#GqK4vv#Tqj8QadjcF;WiByS4BQbAvyQ3r z;|b|8yIEy9>kY3vaw)3)LF&4va)CgL_@_H0z*D~|x%W8{eY0rOKEx`tV$VS0s5Scu zwkoZtTGg{V;hn4mqe6JHx+)m!DYxrGtLhLFIQY6;Hoe=^h$y#->PfnE1SV@w5gFM( zI#fzh#DrAbV-Jz=ZxFO-O)1onB{-w(SLyP3QyQa2N zz`J7BMmqU1f+(r-5Vy$(ItZVz`BcPf^D7_)4Y+y|q#HOiS3B%wKyJ5+`>{BM|BE2dJpHpf=3_nN#^1UQuAM=Ah3V=ZDImQU_6p*Po zx_FRW9JM>>z&d+AL?F={z>fd%66j!?VE%6O}_5Nj)*) zvit)mlmxs|`a;T$pOUT0DY44iIwE>!NZEiG>|8Dii$}|+tH~fd%S^(HCp8p?^}G{V*JyEv&a0+FHq*uDxV5Es?(_OvSeN_Zo8a zKjOVFymLq)lO4q18R05VRL9PgAWHngzj3j&yEQlb$*rnd&a303ixni~Ccbftw1e_P zl>fCA97kmd8x%gh{ToFLEWI3kM_W|VIQx8sPsKm@o$^=?TD=WU4chEGO zy%iTc^J18}PRt|sswGMu96C{(MMVoM&CFEJ#MRTw$5f<7v^(cgl#WJ&{*MUL5;)4D{vOo8tq(`KX%H%V+lx9hZ@aL+<)ht6{rvm?k>ywI5aW2tGn zR>f}3bTmpyojd}dNi2z&`7yP7)GWd%5OmnHv++f(dpFD%INRs7qoTBIwbOlsO`}Q4 zBT=WimLvkop_rb<+U!d)ey+_O8C+AUJJTneFTqWE!l2YlI*Lol)ro@&*Tg~M4eT^?1^DtPlG_vJ1r;uJh3sf zO3TE&C1XvwsLI2i851+sZB$D9$ui3-)D)bsOTbkvO2qyfRb)DPULDp}*Yz0m`{tzOe* z#o8<)*?N;8GrcHq_{8zYRQ!fpoje%Ke?i0Jy4(m^r4%x}aMu#H%3-cjq~1E5kIZWG zCf!21p~T2s%Pp-$F>0;H9R*gjowx*-Oo{tP^gP<_!dT%8M8K|_#B0uEMjA=PDI~2% z`7^L&CB}21Rf8U&G2z=hWUBNiO{AV$-J4%!n%|V))TOvnZFo9(o~TUp~SHLPn;4=(}vqa`Ib{H*2yYYZNI0B zIiiIPTs(rTbZ}qodQC)xQhnmlm08Dr1Iw-7N0pXW(h11^PJ>wG6!wfQm*Qb% zM!r7Z!`TmJW6gO#kBshDzB@en>9sLDoYv3$z3Kh;wlhzZ8bgkWF6&5B*fr~ zoGcth(o;yfetPNs8nL~}-3qV6riS9&I%w3<&uzymo+4-oBI8Vb-ioZpTX`3qaAmDI zw#b=XQbt_n`NA59Q<8ZY{PtCIH&1l_$3CQ3g{5LT>7bkeVXn6?j(;~1m1lCp>mp>j z4Ge8Of8cDFy{WNArITx`aa7`E=)3spD?{aZeK8J)AM(7;R@S7}!KZkG4TMTq%Yz6A`3i38BJhX)m(Zo}#ti2BA zWn5k6o_E%F4j~AFLo4k|QTyxj(3mkBw5~$>O#zMuf8qZ zg~V(kWX%KQ5|tJ2OQfBx#calg){e&--gAlh2Som`606B#quD{Wd#I$v$=2CHB%W-J z)Kc=A-P5*P-YGjBi}T$;@AheK4FEM;>s5=tOCC&P9NOf1_}NOK?TV_whL20V{b)R+ z-km~WD^N1L8$+V1K+1gOT38?Ox5Fs|^=Ae4?-{DkI&eIxWyQ5~k`FLWebirG&bG*F zB|6dW5?Lhr2_?%2(3 z!ZF+Fvq(?3D=}@^=OjHNy7WQbP3tb^XWr^2PPKPOq)zS~Tqa4hyKJngmmil%00Pc& z+Y#;h1#EvZYeLM7ACtnaQ-rG( z!Vo^eM@vy|Pjji|gx5!n9II4W?`wPJP#+ypWjAo(cJdoXr(U;^$?G{;4&!Znz+QH7t_?EBR6|zu{u0B6Kv&YtMtB`t+8sy9u;Wa2= z38dAf5#v8@SNEz{8(LTjn?FD8J?+-_%{lWYHtkKCe!uH>9uP?{6aF9K?Q1r57E&MX zZd1kv`9eu$?asPpXScwB03bj(6cz*mg25orC;S!>3jjZ0ujniC3IT^fVX!Eq3Napt z03kpK+(suMk-?%+c|5W~42;Yr@)#7X0Uw*pWYah_K65mePrwmqgyM+{pFyOuS?ne? z6@txxvKhp7Ng#b&9rHFm~IN&oz(D;W4x9{dYx!xI*cg z9Nv~`h0Nn=upm9?0esL%t&?d^9%ppROu-v%zykf4vruHVPE78FrJQLtRZ5Ms4G`ea ztNH2Hz6;E{?XrE2ovT^q^W!|5m^J4U-?nl99_(-etoF)zblaS*vS_*|%CfT9rf#|x zqrC3pP{y?`+!CHY%L)vUq^djy^eG7o7kl{D|$>lr=p!&4fwkWzsDrg99W4m(fN z)cVJAQs~9YO>9vazRk00ff>jv0D&*g%p9CeuB@E+$ugw5989Q$DACC zx(a-|uw;_i(+di$@H$H5fc-_TbPVWDw7qEnF{-tJCd)FE9Pl{wn%PD?bIf4}KrCy) zBq%i_j&izm|Y_StU zSDWg)Qtm70t3uV4BT}d-^bs;zuRk9JbWBvSc%r%~fr#+g>lNaNAq8{uL!Owl(uS zP3+xQ58c=VF{Z=r&5xxlIXq#lTiX7lpvRNKOP^1W^Z45*8)cA@+j^pPvRe{Ttlnwz z#obzOHY6cQAbOkEl<1O{J31?oQp1@jcjU=0)v$HCgJ?6teL>8c{YH?^G~*!X&mAJU zXjU!zZ9yQiKMhmbPnQ7%=vnUXicOiTbFnYZF3*YW(S^jY%=VTa3~$uGA-eH4`njt2 zD&r-m-wn<0*YVazO|j!^^8A}Pv$uarOm94~J1^YE)zZk-ZMe(eRL_{8eEgCjcYeNn z$>?z&cA%145k6}ysQQ=UaQIxAVSq;1(!YfI;{XF8aF6++E`u7~8?)wZEe-z?I56;6 zbK5wrkpnhHJaa%vA!kfAjlk!k@rz;LEM(~7u;L1S8$;`53x$fGqv*R5OL9K2eaOG3 zRS}=+tYK?KcPc{Z1)LgFSTEd=ymh>{VpFg@1s()N7cSGM(#L9WQstFIjMe31}`QUcBB&YQ#DWRjl;&%1y9j7 zK7%#Zs@G*2n2TU=?d1Qp*v}SVTF7{Dk(szsg9#Ve0);XB07AIx+RWPRFfFzIp!q{9 z-0YrDPym!d(sdqP($g`pn1aVgrbHs>08x^`E6B)@_S+N1Y((N$Mfi^YoTOqX2pRdD z37sP5yU8~t_>ri`XB7@>zkey-WD}(_#iZIFS~6a6%a#_n`8_4_G~bdIDB+LNniUQH#s%cYM6b5Cg# z1nK2AN-EYsJxUz&XYAHmPI`;E3B>FQvW#vqxSs&|DnN&trihP-$US(*@QY$UjH_mc z$J&5)VVx8?(cSHnX89@TU0;52rVUN0Av|Rfkc$YuAXEp(Mb83^hwZ{dQZ;o)se!p= zvd*j-wCqV;3a%(DxX4brqeYF)Ua?aC&smpYVH+)1lS@j8G|2q~UxGBQbY?>oD@j#X zkr0iN(ibfvX&_%L!gw$8Zy-|}Xl_KLq!l5MRA&zB4r-pN5-GgPc1BQcjQ)?4-ZQ1T z+-oAqp`Ww$eME`Ytrm)hoAeFsq|whT*(xU zu%)G&@Jc%57I!u0`rWOUItkvJdxGyJn!Adc#@whoU~WtAFmtX+5Lqc+up)E7211it ziA$04rLx5@^D5)#ZbT>wE_t-27so1@Eh5~yy%x7MM2y95>eaBDGy$Y4+e4dil|WXS zMr*s}FMTvykI$CNP|=Lh8}8f4j1WT<&b$=;ukE#P^(Ipl&B}AneyuHubg~oupS?d77~3Y{_-S0>JoOArOy{Ae zs|(ImQC}9u#hy>DF0PiRQ>xW_#;b*$Fm$Qw6RyW5VG5rhuNNb8&4HBcSwYK$?AqH)pkr@U-pUVbU`_7%i3-N1HbKi&`6@ojNSbp)Y%j#p{>%FY z?~?RsGJ9`E>}h10=J3Gmz)uc&18RcOLPlAx*55?7@Gi=GNf4+^o~TJW+^S;iYb+sd z0?)(hK8S1}OpG-o;Fv6oh=(9kt(v^)GUP&phOKaN0&IA#O$sMAQsg$4kf_^9{-CXz z%FYfpirV>PU{Qx$s0)6-i_Y=S7~RScu`V|1f@r1civ{bZkxtOQ>0G=dw)zSd!cb!m z%3^X4Tsg0zjSyCuuD+tLxV@+;01x^%Cdg8oYZ(d`3vH0a>h%fm_%_hK{wfCw?@HV);=gd@*6QBXry(F`R$x!S^>7N% zjNqzJw8m(96F{rH^LLmDu7{kk+RkB?0$6hAR zw{=|zfaXFLUl3)-7>5D25kU-ZIt+IqUo~~m6DXrh|ajN!2Lzt zFRtGrvHIeQDpM$kwhY>+Qr5(YSal52>PalM%#!z|T7Ya4q);C121=ojteWL$&7>Y| z#Z3~+Zl4QYV{*jPNFOwF7WgY~9)gZ9!JilMeHbr?2yRg=bGIbZLmCeABJimtN1F2L z^)o^XKnilQ>fauT)akI8@b5;j^RW3-JwWe4K@a~Ck%XowWTGw{vW=fPb4eNuev^WA zK$9U3iCB(~`hpI4#WIZ}Gmwt7O!>}RLNLU4?o~Qcodja7ASM?nuVWf8OxDwE<7c*? z@P#C9P*`))Mh0%E2a7TSM?iv)1TpN*#J4q0sYCPg4>2NxbR7VuzdTa@(6eau4pdZ= zdh_I^0!w!LXdw(U_eck};|w7lkjpi(p2dTl)v(}=%vRQf@gVZ|3{d46lYJvbP?qhF zMeIQXsnU&9V;2keFRf38%nO#dORaVu1NBFezE%tb8nXn`xGBkA=T(*D$uXD5<4X)`4xrqa>K z>o7ueVB*6@DhPe4SqtmVQI6F4#X`9*Z7Forn`H28iauQI&a9L%6k@_EP&}D3Nmg#C z>}%xhl@hi^dWzKJFR^6`ljvm?`#j`fMltD2P`bAB5Mgq21ZS&A3LzWS(Lz;raP#d; z$kjh6vdfPay;BH{RSjOnrCYN4>}jq#& zyJf>t@UqcEvf^h6SiCh=JCB;j@pMx5N;7fr(d`t2j{hr=n-%aB(oe+z6v-(tl%JMy zD$)QaMHw@6-A0DKdv!e`G>F|*JxnSVh)DHk(Q0-J!!`2QKDEt5kRfjHY`3&SEivl` z6Msl4zahrcEoaF7?0aX_b|A2KK&N2Vs-0--mVycP$aSM#QmV;OTLjF16qD4nbq^iZ zDL`_lj?P(EHQ1_D`ABZ!f75XZ69GL4mr&@12g;^9Fa}^&p<(nNR#tB>Q_S}3XKOD*9UdhuW+@zjn~?uv>QILPiPepSE}`Wl#qF?r93hJYEaPh3ce@I zjN49C0JP%(jhkULW@q!^Ze`tDw}nczkiRt?(sN+kWXRR7@L*L19O^K>>?du?;{ggP ziqw3O7#RUH&^%Y9VhGhz)-P{|w{m5@dzVcuw2yE1yM9!~a4%}z2(qKN2;4X0eu=+! zl=WeC86|9f|BZVr@C#>BV`36HgzVgDG}6!&=A!g}h%!XI)elBzVF)i?{tfb|i0eDA zJwHvMSQv`Gk2g?nIBZ6vF*u2g)tv{eXBt*hfY1|H5j89KGk*7ATh|D=E8?lv^DL7o z7ngC4wi}HM9>|O#I`B(RQ)g~(RgsV>D=HUSmYR*ZH0L5_i;X;u*dcbSWiJI0=9Z34knGop*$ER?p%LzNeon`e%pp>k zU29iEJ}dcS_pp)Xc;`<`_Z_*|sQE+#pQvbeNJ^1bjBk8gTQ<_6z3KS`ijkyF8HStB|XvP1ZJ8_@v6xHp&=R@Jk;a`jhr&>GM63XRzI;6+;uIFO4~ zu#T|zmoylrH(NiM1Emt&!5Q+|SYtBLU6fB{k!5L4F#DdFu0!m(Xjo;i z2%=Z3*J%Pm$kQ{9FY3+efoGGSr1-g2@BN<_bu1cnHd6DgP)BxjRT|REnL5(Aq#cyn z0g*bbL3P1@?@1?gWcjkMkk|KW7S*2-Bx9PTviDa7HlSO&-Kp;&xFei6uF#+BHwTu8 zh4fm91pN5+<(f8NK=|XHSpP^&%VXJ;rFnxq+SZ#+?~Zo=PgR2MXfF{J7cUw4yY^q8 z&yQR4wV9^%gL7RYjeMf2@seYkenaH#5kZMs(}R-XU)dp)c^6(lXO|5jtsD=kKLywi@C0-oLHr@RJfW&Ljf4A0TiXY7E6&PNK1;KAb=PTJHSbcqKb&!~lwwk57yx~LJGuYFUdx`HhF0_gHZa$)(Go;bdssswai)j(G(v~@7307 zfa`2WYno{_i~~C~@x9$aIrgeBZU(8+)>I0*ilb}+rCJ_M!yCIj#eHffaM__8eFMu* zN&~@xIIXU>sgjPn)3Kp|v*&rY{akj<)f;^R*lX6_C$80n&Z`Xr(F5Z5Bh>q7+fAcT zd!(vaLt(jV+L;yQj&;(mo4mbwPE;pCv_ZA3^uLKwywHCiQtw8cA%7-NG&d8~T<3Fl z;JG^qylrs+QE7u@9=z`SqWrG{ZlSZN?^%mw5){Vu2=C161=i8CCjGC3ly5PfK@rYT zd5WcbyEQGRYsZy!v)dnJ`WuBCVPUM>$uOY`S5@KMtnASZOZd@C%DIn1!Y5cSoB&&;F|=eoxz+LvOnw1bqKfJm|I@ z3Bfv%whK)GoVUJH@^TQFJ-*P2HY*cYuc+LMP#W{~KTb=z>W#;WBy%BQx;)`or4v@4 z#vVH%jhnbWuP0u0;g3h%_r{43m)H6%+1*={=ZnuhIh&qk6Bd8_S9#|hcPY1ff1Ww~ zoeC&RLsYh;_#28K00>xa3QTQu8}IJPO2Iia&@d#Lz0x+%+j7tknRN z%<@CuEz7ZMsSZjltpJ=+5sVzyJkxY#Jju}#Ge=7-zySooEWGCgJ=F8G+s8>u*4Dyapw5(wTR`gp(WKJ$*8$ZtUaT2D`a-b&p9X59%`n$Eiu~f}aSaddt4BoV172jG7%?B+vapW>{z|ofgMRiw#n} zaiTcO$W~?R7Dx~^`%FVFmJf$6?Y(UE*Z0e$w?Wth-4)odRWE1T)@`RfUQpCOVC44{ z^6E`FGS5a%k`zgMylMr*EK6BdKb6s0wT&TGmIP^>PWOgM6=cf=q~qK6?tvNQInExF zXL)2h0aN&d6{ORY&02vr@Wxk0&WxO)3f}IeCwuBxY(cHI2?TTmAf|c?AJp~Ue>gT5 z4pnAnv!>w%YfUE&w&8FVhKggb73T=#%$uFNphu+vkysV(O_*8?^xdo>xXh*iU)I}^ zF0vYA)`4A)mr*T6y&kOcx=3tw((O}!aZqSA6Jfo}F`6mWjtoTbAHM~oFz`HkYiz@B{ej6x!x$3 zbta*sT9TO?oo9=6vZcd#o>lv-F6>FF57s3iT9L)MQ-Hq_Py`7=sO_E||vu zvL+XuB}n~K*+}CZG|@v+HUllx zg(Dl(pNOg@_(eG77M+P1Vy>yU%~t^14$^9shki~)$%wdQMDajSIhK(lzcr;Sr+D-M z|HRd`LK<5xL@!1hH1lFm9?=h7P|gst_n9aN%CdlyI)pyt^9v}m;hXRBX2H0g>tEp@ zYzD#vI%+Wp<6#*-N&$e-gvk0{b1a)HDep?jq+=Hgym4)H>@ufsEX{)(qRy6%&B|7& zDZ3=2k`iXUik}u041t=6(xRO8sY;;%OGilbXF3-7EzzWkIUc>KtpAw;l&ws9^U_loW!}>1y7ci6PHQsk?j5@% z(4K)U+P{u(gV>DDg1WWWc}~<+Lu{=2T37lMwrOndvyJxvV1}=b8I5$hP)ZQ1^2s0( z4Q-t4>T}vl`rys#lRLWLbYk8fMazY{aH#288`&#j7;&Q(O`q+$y=u!3qFxGl zcy?NCFk5f5XoX+Wgqcn`0~x5UPM@0>8%?zvQ&)-t3B+2OlUa#!!4x!1dvmI5;H_;R zCqCWQ`IhI~Z5KiFX%a`aMz_c<$C!6?fzG-j2;Yi*7IxkIqSbQz;k=;mC|>|5gcN2V z=cQ8dem~#u0bi*5meM5C{70`2*I`R1#5T6@+8QeZ?)!l@r!5T0IhHxKm9nAc3L)nC zaxm5?Oh$JuUV-du6Z85lQV|N8-y2Dgx||D0Ap?Z3a1Ab{Tv0%CrnRTF_~p~NPmuD| zCBJ&+==1EO$Y(?Rg1l>UmBd=n7GwF@H%Et2Zf7fcM(u<8k>=$-*U%bsoPe)c|HEXr>ur3vRo1@F7=~z2B^9|ygbe=TC zIJW3UTjwq%J6LfaE+c&kU(-73$nflfUU5FD-MD_s;+PIwa-XA{_T{G}8wwi7>;&C! z)E{TqPSrJHlcXc`x*`y|>qZmGowuWOx3I$)K_oUaeYCEfLY}25EJ!VIGaU`@V7yzYHotgiDveub>Okwfnd#v+TVL0<6T@XEKoc2EU)YoovXi@ z8{@_c(?r==LDCqM1OG&V`X{Q?sX|mFBl4^CM5_|1i398wG-MkqKM%17E`lKwq8R`I z;j|(guY?b}c|5}_*_J|UMfl6FG*7bI8a+Y2z&k6uGBH5vQmVXF#-WwE)0(ww8a(@v zwVSRs^kT%JIx|dsxxlVS7}y}Q?8SsUK7*++gVPDZDG}1X$nsms)KI&u3pi{+$*P1L z+DgXM2pUQ32zciTS}Kuf=QUHZnFC)jbVe{VK(j;V$YUMBYs5$C$id52J=7>VOV&fv zeMl>8$FzkyGnm9{RzC5{MLQomT3eyKVlqScytF-{``i%IPdwn1qN({mOYOX?v&jkw zK9eg5;pi!I8XOZUFuVN1jB%yvW+OakyED4Y6O=?moVP@_D6{X#e62=PgTJF15KL(~ zvvfw|YD;_DJhXl#R?J$z*0H{H`Zt3^?R&HClp>q3)Bp?HC);AX;RQQ*zAY%SBYw z%uE70lbe#1Ge?V~t^29V!<9m_=1d#WNpg)dgdIRr@yZJp$kM4xlo%v57DRG$#9aon zl%XmMY8O+)|BZ0e6(pd`Cb$V5^t^dY7p-VXThwsQo*>wz`kmbkQ9iwr-^!Id*w z2$u~VLj!=xeA~NI?l0^~7Bs6)fP%_O|DQ}7$=xI$#A_&g#m;+WI>Y`KY4%U+@4<7x zxa5t+H7*FG$i?hTtF<4me0jNgQ;J;@L<&H+^4u8$*0Q9l$7&)L%h^fWiINoPyu;bd z6O}&f(9b&x&=P;jbtu#!DK%P9&{|Thfub7yIk2N$yzH~R*;TpA^_F9x&>aRVyT+?a z<-e<3IEzxlTPo0@cdP_yrDYtJ?59o(#j|Asxnxv8q`ow)#R%dx6$$w`DCr#CB|S0| zs+#9OY{yWu5|fkxI%?yk;$A9sI2@g13RngRDa_MZmQTv&2~0IpJik*D=t7%iCZoEh zq^3*M>rRxRL4|zDgeFV-Vy_(;F|j&AN(iiccQJ!_ze=FQ(~ZA$k+M+-BwIB)6N6CW z%NAm(xSRySdkR83G8GBLN0hTzg+>y3xj|W6QZn$n9YVLn&R3)my^V>@GvP^O=1;8k zxJ$iPjS$lec1fU#&`e>$jeolJYgo+FN5sWe9e_}R1GpP~G<5dHLs;4A;6-c+E`>5X z<#;;nDyMm0#zSFO#0}VToE21?Km)-{W1cVUkxG22(j$=))m+=GaXldB9fWkl?Psin z>#p5m)44@Mm9|VvBT|x#&uS=9OLIjMZo=)N%hi%m1;jLMLpOxUN8L!Vm6|wH%f2MT zv7(*R;;mF#q^IQvrN4UU(hEYI6 zt1{PZY)5<1NKIA@nW9YnqRL~sQ1bXzjl3cokJ?OeGCe28ODI%aYs-@-wPXl4C2*yv ziJly9&YXpg(tkfp7*Nf3u7k-~^aa0UY^zFw$w{kK?AllrQZ9^&)lno!dHkBhnO$jY z+q}a-ROVWZWLp8p%~fOFt9`*OG|PMD#1z0=Ln^Oz>rKnOyA{vO?9eUbIAK9-w<;5z zEP$Wl6TvCOB%`xF0@KlQ2wl|aDSWkGLR;X4J41Rsq=E=k9h2NS)8Re)-r_y3?Hk+c z_NZ}@!UBz@aP_m^D6doY4*cHPeMzH@9;LhoT2z&z1}bYOr=y`6 zPeC(yXe96_eiqqE2<3KBTm4t3`)bAHYP)$*;igAOgnwCe*$TiH`DXb2qP&QJmWE||=jE}CGjOLFBZg5HIoZL2EgE$z|^#Gr*y`rD%L6p74;V- z!EZM3KWk3H^QUBF=Vld>o#YhGG&f*N_HXOJXQc>fq{BrjVlKATzrP^toUhmEkA@GSbsGOcH- z!Xx=n-mZ>h`|+N5SsuU4G?H*cQ1>=Ds~zoVy?rM=(Ph@Vt4@NMTR*>$hRW#Jb56bN zBf9LKAh9LYQ>NW*_CLk?*fKuYP5b@W4$;}>c_4+2@slDYk4wzNLcY&?{IB3z-+0_7VTT@$t_qRR=Vwm5)gOdnCYrLg*tdi+88O6jtC#xkHO@`m+~!MU zdn)Y>XJ2Nd-n)Y`3w87cdXIIJ9j_x6}2hSm6t3O2Z0mIe-Z7`DxY+}gkP)Z z>Plw?RLtQwLVtU=URf79a~@(tcXZU;xYcFDPRBLrEZJ4xy==4%@HC@s{opmPTFM?B zas8jbCW>?YtDH6|TK5h6m#ayB_4U2bcOTH%>;hfREpa9iW#*hy$*XNVi`CPPVt*Cj zt%llLcztW=Z$`Ii#4J`&_5R}mz6x{sBv7Z`rKkTzVk;C^@7&2{Wtzes3I|#729fRz z+;&9*q4lxIZL?BSeG!^?8g~lS0 z_{4%iB#=iWkoYVT1ul(BCU9AFf=>;dLM1Y3^u9wvmPO|9=~Wm3Ac;Vya=FC@8!`Y> zX>txwv+i z3nHawpiyWX7X_loz@HlE-TDPqs#0$ht~~D7y3SW{T&%<^9leItwA%ZR2m!O);`tq^ z1`ncy<=MA*$Qh^99E-W&$Gf%TI6~D{-=(9C(gM!#F z&y-l<#IG!D^**Vj8xbxDQwZ`Z&&wFXuF8~Ro-grRc&kAxG#Kv5&5OYry0N0n_&e_O zsQ#{sQwb);Y=ls>!D^H`zrAa0B>Ks+D=6c$5Ol>IEizp7J0y;rK*J=G@*On9a!PkK zs7>VqK1YtE=BY4~YJ~AZitJ}T(a(FePAjacF-uQ#bTtzt^DCJvCvPID2Y>)nBP%M* zO)kJSGt93?)6^7qUBz?!vaY@{+=me?Z(Js{z%HbdB-BehRHZHwN))PD>x9n~(e|ZC zw8irS3GoymD!7L-42TM)#;uFeUDfc<6oZih`*xh?k) z{kcj%k8RPC?wMQb8ny4G!IFua=} z!C83xe6wJWUTb*cudRN(McY+*$2ReAdEDR~in-x#nnfe4Z&QqI-RBa*!^`AT8q&g5 z-ZHh~ada+c()U`v=UiiX4;TP)00E$a@@s|RV6fXhTX1hWe+5^4krUU1Wf)I?(BWkX z*dwzbNewe3el2nDFasd*i38_9Eg_MrR-{)B!vtz7CDWv&c8c07ba;?q8x>>_U({pj zfJtfEEvK+X4kvpOyjsU<5HJ&{Yg!ATSZVbfG~_PNVEZVP-<|^%sL}{?-)dyfbjUMNF=of9t+)Ta(UFX6VVYR3x{;ZjUc@CsFGuB zZHQ6M96Q#jAB;4!bqYCVuY$WESu8h^W*KytX2jYc%wK+_Vi>_Wc<&lS1yiN`@-DLQ zRT--Wj}lzJzp|}5+zdNJaO!BwcT}qttCw%iXn{F5#`Gl={hmco{LaUlDG*d(X_0nL zN^+#ROe7^N%CyW$nDHDMoM)GF)-6m(h7Wn9Du=`@mg+Fb1AlgUQz=w7s&O-k0Hx`t~`ArkU5l-=A?20YM? z!}Dnr;Fmabr4m~lk70~zbG`4X z`xt7gIj+v|!A)oRC}b%GFOR6>td#f(P`>+RZ6Gh&X`adVA^&+Yv7fv zicxAb+4n-QERm8k@S4=u`$IeF>}Zv(8nWCgK~CS>hjMhzkUU8C?-siyD^6a`xZ86^ zBde-ljUqLjNsVRIH0Y1_8dDPZ`y!yt#G7?^WJ0 z_?au~dqR!2`Uu;|^L2_817TDxh{SfN)1K5Bnl&XH+NH`^=8M~!54t`}ncSP;l$d8H z66(1}QHmEV+rvb-!5&8^POb%&qf*iZ-MJuM4K&WJZ_SU@)~9Uo1{99eQk}HeHe5PDbf}B8cwa=#EIUGF#SN1CE3%~#hW}Hx5Z7bG&wg~ugb*R0bTLl{f^%oTU4A&O zv!>>F&z|_#sgcmx?jE{)sU)shd#owKhUPT;c=k>=uQJ1(YIhit7%ur4T1_9dwizKK zx~<$^j4UG>`e7Y}22z}y@kj8hnd=%khb*@y(QM?GU!6U@b!``Ud$OgzUshqC-8OYt zC6fB3<#@bSU|IiaD}3@_lX%xAy(SkZZoW66Nd^zKWf6pX=y%Jb8}7qs{n_O#rv=>fMQ+)K1LJtB(gswBIUn z%ZmEXulD%v*7#1GsjABN3B>h~##oL@m2hhSkjgz~qN(o+{Hy>@LWo)KEJSKbAhABh z3bbwL!h9rFaN>6gE>`_QwGFT35YY-ssrvaTs$Nc@+0hhNF?Pt$;Gph+m=1VbMV_q< zZsv`Y)UQUu#cEQE2Nep+{mXEYE9zvaKvB>%vd(`Ftj5DjX&KG^3ekkrhMW+@<=4K@m${UcI~hnoyN%QZb1i$gtn=Gtnosz z&ZH=hH0=l!k;Zz(knaU0O!9H&bT9t1FJ$pc zlOIb|#E~^4r)=NR10rtVYH#AC4XSvo=@tT&1MTS%&5-4<_GYk#fs8955+eqN0MPKM z8IOLD!v6EgfcVP9xDRF^N6t~ttn=&CqS5e%jZRk!w9Doq*J%<)#t8(B{}IEI%aPX+ z4~Ucug$E0_CGo=SVn~qZHuCRWj8Fq869m1fi6M`bqf|uk_#xTG~!UGhf+pi65_0_%^S^WCxTo*Bl6sZYJV}i zF%Vo{PNKb0s-8tAe6he)(gtEMepf79j4g*0>yW(6WhhB?0@A?A=#q8QsI@K3dob?B z5_vE(ct-{Z$RaTAaG+>N9PoytH>%4WvjHGZ2;OYi_;Cp@X@t{6tqr5{rU+owhgBA5 zi7+y9>;;_PZTxyu5X=wLC+_t%bRz5R{To8?VGKm93vSU#+M?4hKSFjliMq!qJ48=z zi%=wkBl5+ws}EB!%@VdNu(cx%O-9o|@32uQ(|}aX!7S05buI@#FV8^f+c}gtwJ8xs zO$`gD9~Cqvjnqo{6YSW`@?Oz`Y%oO+2o8g+i6WF><4Hjz5cb2br6_1lwb2Hu=iFVA z||Bcg!Qc8<5QPK&bq9#%_~n9P%e(`Oj9vWV9+QJ zD<%N*vwcs6w3v=}A`E2ducs;x_aO2dZ3fm}e2+;>K<(7FbsY_CPrn5FnPF%H9JjPF=>=QXe%*heW z`xCN|@lnL0)avlliBImG9969lRMRE`UqCH$3h| zI}%wfvk_5pc*P9CUQ#(uRT6#7MKTp<8*_=F48Rn%z{A*9n9&5KK?0qNfXi zL9;NBb4wpFK`rwRy-ucw@C8s)Q7Nj+RaM_kW_vzv!44xZVbrT1ZK)?yKRQl&{}OLfE9qIR zl+v*CWHa|IO2<-?gIb0P+6Pk5v3lAmvgppoBW$vd0znIcy8X`c2hwWa6w7gk1o?Ka z53?HkH9Y?^ZFH8uGR8`9=|Fa(3a>+Wo|gGTw2=Q%%5Cv2UIztWi$w;_BU#qYlp;xU z@@SV(8&)l>{L&?PHH{N#-6ga2Sh6284-A--B+;)~O=tZNkxdv&rE{0VTkb^kHpa3S zhUwCY5D9>qF(`F77-ypeRmOB-g9SjfGc666)|52Q7m+MBXMq;gda`Ep_gZe246Il% zZR#51D$68eO-s!pJ!mY6rEoWan=+K;WaRvRYD~=RWYW)>HK@feOUm{2bq=#QVh`t8 zXfj-|KTcO~XE#S1aUj+Tbn(=!F7`nf6=6t_Pi@!0#WP+24{v4N5X7D)I6m?)##||oyvl!DC6vS3AMav!b1#cB(J5}uU_$eTcwRpF? zY8d}V_-P{YdtZ0~UN_2hSAdIFw^>+Jf_V~6jngu?q%ANrM|X&rSq&yPcTjbadD263 zbw5HFl|GbiaF<_1jjesrlw1kI+IIVch_ofx;??w*I#1kf!p!%g3uvtM51188mnP*| zktG!g1Ph#x>japP+MJY7w3F+AR?^wa_hDB7go)c(nTJ13xkK0;i1ZTSF&2;F;S=zN zo=>Zf@!YS>bCRpM4r<$Z3N4yxg2fsSRJNo)GRX!Gy!b3oJdMFdh{Rg8Eq+9jG8kNw z^Cvd2ivbYs(5~}3Se<#%!1FWJO6dPQIB?9!#eLNbYir|)*rJ#@be+v@advxt_|ae& zLkhPh>ymh(mT61)lT@##n^+G>7tJ>b+azyH^iaulCyh8r{}yG-4vJ}Zm*-+ID}|5g zgY^M_^^*s6y{N0(r_py#8Sw0M6=~Bl;5At%lBo1rU8=QVRFy=SHw~(16+n#4tsqYa{Ko|Jj|f={OCBBf~}%&%FVkeP1bT2H7cqk}i^ zVFc}Hb0d)MH-#|H`xjiFj#%6mSC);uDp=IYIKd;bM)f3jNn4XInPaaS(?3}^Y|3_g z>bHowYq_e$Nb)@G`wAgiDU6h-RvL+edSi5!Eg`h~br9)7tIr1SDwd0Za~##$uSXEe3H4u)9Dg;Fv$gxNW7M|sbjN2rF=>atYqKd>cX5Nsg6Qkw zzcm=<}Ttc$L1!%boauJ_Q8BxdGEMi$$ z?>3v$@ekMAB_`|#iTdkRnA%4NFL$?L!o;n{2UOe+m^)Vqn{=1R7vIHFI?9{ZGZ?X6 zmB|j<-IZE{QBd!m+d~)94TXz*YC0c5djlV|q@R|gDw_}?t-z+8`+_p&t#;LyJ!_!le`a0Ye)h8b126-dW1_6SiK~O2^j^-8D-$752BetT{uido$$2snZh0t)BP5 zm?GRA)mW>k~t@Z4Nu(;`L!Ecc0ubBnEdzLIPFzq`|Lz^ zW2-Y+f0#pnVgLYv0H9D<6Z#7Kf`DM4SS#`q1p&dJulTGkDH(%9An|w6i5D)PEKf|~}d)8W&)T_&G1rB-CNxYcS4GqTMiQVNYKNnL?cZxUP09!-Fa zTHOthQFgPrmYEn{D1ZIlYh5?213GDq{dQ4O@);ISZmQ z0w@3g5b+|4Qk3nfr@N;5L9f#)_d!paiuW>)3-0{5t<*^YLrioy+CGq);@hOHQf8*I zacmCvL+gTsk|u1+{R5_L0)-Vqu*4RMFpQIy_(trkX9&k{!y4hN%~U$yNRV>C`AaW) zp8~{@EEKFv5@cZ@K+F@#48hT}^&w2l+BDa(vl^c5pv_VYzDDd5D)vW`>IEu*26L|i z!BP8|^U<&SmlUzE5)AFT%mm)j(ol*FeN7C!+buyZB-sQ>NTVv5K@u5IJ!x-7wTo z)K2o7WHS=YCg5+TQ!h&y%mGqpPA+i$-Sf3^F+dVEl=9pZ^4R)Y7p3I9Mb!j_vLcn71b&{8$(mp2SHl%EY|P#rpIZ_=o04lQEH}Vk4YNK*Uqp|7LiO#m|m5sW;mXG zQz%VP4(9+6y9~f?6n}4!I6P*C(pXcUaenf1^*zYYU0v-X>u`(#-!a(IlmyeJ!nR8KZO#vuUsA`%*3UZCA2A`+Y zsaaD5giNuWHb@Tm+w(9o&(*QLrH2dO0uh7EArBfu-40$m{5wv?z98hTt`#Hoaqrcp zrR84dO&h9Su`Qgv!YIF7qLxdmCvMzk3?lOQIsrgD{Xsdl2T83-z*`4F^AM?PcZa){#Mf!k1;@lOUiu;;9Me_Gd_}( zCLTx&oNS_VnUBTw{V<+HbSi~LLXadNv|7`vNl=JD62l=LG5hR zE%vembktU?-=xSIsn@Ewxs=5%d-Eky)3y-!YM$2~t%h8zQ76#lt++NV+Ly zkut?8xlH%VR;#M(n$R4k%`{C}>`iTi){n~tqa9*pw{3mBHnkCUCW4!; zhyr5M`#~;d9G!F(D!gBK5ckb9CvkR3+)N0eMJ+oZpfDb>*ThjLu`17R^Bl)L7C$?w z!VxL4##hkXc9ftkI=PF~)Yu8fXej+mqc6FCSKKurF7@4+?3PkldDns{c~mZAKG!k| z*spLsA+Soj5UsfNV=`>5G8npt-L^qPs5{hncIm)0YTt;~9qG(bP35F~Wj2*7#iUJx zGuh?HQRv&vl#Z6v+7yo1&vVsvmT0HR106xBN`)qETB@vg=+ZN06Qma1vFZs2sB%sG zaZa)fTO8+bY@Ei5lq=@Kn*DQfxj}+l0Zo0EQmCp}fV~@S zzN7n91K5S@8xGlXgr=Rh**lpoyr`H)`Nobtn`Gqhuryja z6E~;0wPpaM);c@#KGVm@7Bn)=Ta20c53D?1_GdjuIY}VE|S!XU4i#d5zUl-Z+mO1%0vM5J78Qd#U4 zq5!Aeq%>$1@+)bN-RCrmyi)IBzQJ$S$lRY9b(q}o^O-(Uua~9O=2XnSHc2_6PI7lT zwDKvX&sy*q32dHaj=fOq^j(g!y#m2mcN5Iz(|f3v=5<@TmXmp%v_QC1ISxMyrl#lQ zF%DeUS0~_d`S2=4LpN3AOL6^fAOi0Pm&pM8s5eeYO6K@E82WVc>&e!5`2UQ50;ZBS z4NCC$GA`rx);kV@KLo%}`|#i;i_9L{x{qTF_9%~p4CN#(a(K%=Ynq7u!AV3mzqo6n zPQ*mX)8z3jsS0w@IL<5ZySMI=Hw^$0Votw1@SIMnKMKk}3c+tT>PVLH1%ntt~i-NBDMey?z4nGnMP})JUj0-BouOwSDOUM$ojjWM7fdI{J z%n3EdZj4d{Ag8=v9Hr0G@i|A1>?ql!@_W+(Pm=`G3nVH;)W1D%Dv>445JbN4vZySw zyT0>VdfwFu;{29VvxFpzxo~q?Rjg8_YSpO|rF$k+akWKI&vDe?yUbM#n_|f?#8}0} z?K}@TNw$-bNVal~Z5B@Q&;dNw^u(!KB=pncHr);MOH{%!tl?D3H7ws*%~VrZq)3y6 znSDGqwBtXhi@nT&S@kr>8BgiV)Rs@vedSpy@{Ji%J(J{ldQa(P<2OsNW+5WOu`Md_ zviSAMX~6LuO69H1V*Qg`>PuFLTeY(9aA0;F0YBpuTuW+ZIBoeOz!>Ea&d-@8{aL~m z1?Na+bN)v}X0_CXWXH}&@#P5709)@7D6y`Sfq4V#i?RG!hdXLcn8 z7UOUe32|pt{DnAZ78b{YAV5+IXRK|mVHCCd=NhbN&0imHPFpfvUni85TP`v8@@0H+ zOj1d1^3$A^x=vNK+oECFj@MA(Q5R2wD($>g59!lm%}lnbmnT~=dMw}HW;FX}u;V?R zJ^%qIEn{#?GgUz@sGU!b;cyRSQ{-v;eeGO8SuRoUW0-$mxxb8)Yo;!8;vr~VI&4#= z-PPXzvQD|wNx?H$UvQ4wqiKAOT?4;ITG$)o@?0o|H<1Q%(cd~vNYCa08rK}b;2|G! zZTbblXIS#pV#Y^`HQch(dg)kWY*O!~`J(qe+gkE)Rx5OT5LawT*6DtNYB=({6UwZ} zqOVWssi~26Ui#XTd}{^LAuK0|eiR`BhN^`gI2W?*8!OsA&Pet{$gV}v!=iE?_<(Mio*yx(cn~$lhigjNAt>E--PI$^5TcKb8`pH?8lg} zHZ4NhDxYQa>5KFojTbp#Cl|YPXiip&JwsOKO969s(xIw1^qR!hbvbJ>PB0fXyCdfl zLw8N({ZOgS$Eo|tptMS@Ux{BqyV5Vd7k*ITh6b zNpogICkYgG)TtjsVo5)fdo>`n5f({>LWW}Lv$YC@iXy^u6KRT+mvvULSU1L(X?{|;VUkwZWi-i^Um!}w z{8YtlVPh?qq;PicNR+8KaS^jz6PhvNXcceU{R_X7j{w2h7{`uXlvPyLD^PpTi|RYS zW;f+~F!E(+9WgGvSAyHxTRhfm#mQ6F+5kfwqW?*DSbqlg>#^ncdU9RxxR<^%63Ra# zNG$Op@ZHxMxeb{S>3f=Sc$PJ|&z4`#BcP`O?_c%3Kr$?{g?J5RW{nW}v+X|8I4u|6 z%_n^1-Bf-ta|6|EjUuBaDZ6#E5?nR&s-qqjw}gHuyQ+wtGtnn@)b58!%cYhnRCman(9z3LeSBA2Vdr$xuTf-TCz0>25t;)*l{R@>^wy6Sjkr3K-`4??N^1 zt%{T0ROvXqo#9HtTC+{_?b;{0<`xjM_*HjZbz)a!)q%Tu62|9=`1UkWospYHzG>Wx zykh?5;OCVrJ&ahkYd(mO`z4`V?cmwu+{z+_A#RXO!megrTyK=Kbw&DA!}SwL$`AQn z6UAc?W41CNSUVNV=5x6;PGX}(eQwPr|H#|Cj-^@IzEpVgpijYmE?5G$Diy%MWt=hU zM%LF_oCKXOoUG-1wkuOIwUJeCC$Z7uzh%9BdwXV!srr(oT56Fsx2(Rdjo%YZoT<>F zFA#cnJBV$aDc$B`>6FxG!aJOl#i_3go3q%D^UHm+Hn|($@wXTx*Cz#O4YZ-yF*VVi z-+-6R(((0^vMn5#>M5>nd0Zz9ReQDEX5sa}B6#bjvd1Rg&g%|Y3T~Y54D;?losEX$E`Vs_a+j%c_ry-&h{$MA zRLrhYgRox(j{^pc5dQ>I1V?nYPrT@Dl=Sb!y040LO`Nx?ILHP%cdYNSFpTLBzMiZ!;HXZfPBLE1EZ%R__RS7e zD;BRR(+RKEORn;6NjAC9QwwJB_^IZi?l5tS`wegMu+PHPki!R1lwJpNpo$Fq~Xz!GF zDl(iSfevx7=14yt&~}#O4xA%Ex2&HWZW3^81TyHnaL?TwX_Vu`W@jhxqmf#SXQq7d za-O8s9I=|#Mq;Eb}U0l+LFYjxz{^vfO9u z8Rq0xF6{MAP^vEE_YoTyQr1A~nJwpXNv!W0uyqCvu=uJnO-W3635=?!mh_QArjaiN zss{M3{JSY$wrmi}<5uKLw#{!H4#xEsGA5d79V`vJ*wPMs@wQASl_d$1yJ(i|C|x1Y zH8k;D%F+b{%sM%14-eu5*08K9;2I<)3`&Ci0qf%wE`UXmaUPBk<1<4S@>dT}_ZM?o z>n*IiE}kbYuQyP9w(HL5Nyx~py7EKH*iXqm$)hk*yy#47?^81saunO~6#7lN;V45c zQfT|Ek03`UAd<@^W^+M9I(u#l3DPp(0$Ule5fgAfIxfzTfCXU9 zb^rxpDGx0}a0e1PVje2EG-$19@&tkQO-FMP;`Q*icgayZRbjw)JQIf zIZ2SFtqtha1^qMXPa-cv6wW4$i$owr!3dK@C)9%|g~qSP@f`7Nk&^JpFN-3S5m8L* zBt|_dN|4DDc_nnk4l=GJFfSuW$X_)4{BLIhhWk;j0*rCXHFd)GG<+@TeNgFw`W2Re zl#**OV&w|GAWpF=Z{{)auSGSK`0s9}11|`O6oZbP9WpN!^Jp`uCr&PQq0|o)bT29t z2$ZgcR&(!MvWFcu1weEb%jLZ`E`?dmAizst(oxjAbDo$+TKY@8_>@Z}4B(tA4>!$X z{3aesCUP+1La2*^_Q`nw?g~mXn5nha;#Mjp$+1`l?zQuv)U4YTQwu0FHt`Y0>0}QR zR%cxHgiErwM$l(vwKZ9eQ2uE7RI~)tbJc3CI8Er6ST=oObm+S4U?L3lCiVK(bo&GY4-@Rku4yq9c&R1wD2g(T^mjhfO!(EkGX&pAa`$dEy!%4wX{-!0 zr%6H<@WD5LmZ-;fQjHn5DJm|#Aa_d_a+NOaP}2^+D&qX)wDS;eYS9fHa6&&mFS_xv z3Qc!xgY0&Ms%umXXE9Q=Hm!i!GZ`0dK8LbYTdc5Q>WE8*TVQunIn>TYjsZo|PXlc? z5&}NY@~1SB((#R}L^FD?HKAn^1r7IL^|B86@Qq;d+Tl!4*)?SDb!l$wt65WBFSUr( z7&9BNj`{aYT_SQ@qEAS)xl_tvgt5mQvh7_IT93C8e@c^Dc1pvr$znyXeK=&yFObbM z4QbItE`*~h)lYdRc`P)KY7A+HIFB*Nvm4RQB9}bX4TWg+sXrE2b98$pbqi?FsZZ<$ zRajpB*HIxB(SY|6MU~lGcUF#c^*zgPj0f{~NgZT{A7TPFi_uDy_@`2{jPUb-_YzA~ z*P&XJyCygjjnAKJZx1jPqV$n%f=aPQF!;MCHH)$~KLxuoCqip7BYzD5eCjg;3XoMf zMK8%sW<|c`2cGP2ZIjFCcc}R24Lyl=4}t9w0yvo3tFDikRaKH_Rw>^fx47A(%apGp zaC0Y@f=Nx7IYH3wLkwqcaf2MDRE0XtHM=~TO!GOzRI4P$vkzk;#l%tuCc5-(% zvMQI@x0ec$b(OmPi+6df%|3PAA56!J@EApevz9sMp4Ggl7V5cK2VyxsZdsFElQgMM zxseiZuNpUm8BWpfCb`h1khM<7&jAapi-(m5J2ta1SXW(`T(MKJTjhmd1&w&;uTgc^ z2Gn7RRrwDtP$xNKlap;Aw(UwMZ5*=|m`IAh%d;m@@0W5%Rdj?Tg8f{OGmO!FIPoy5 zuwb~6^knt0TU_cZuxhVm1e z0(jS2H?m2(zSoa&rEO23Z~Jjv5{u=PcP zmD!ez;8w`JaQEdX71>r2R)S`4QIW?AGJjyw_T~q3W)!xVPx*^Dv9{2Uq1QLH^F0zY zL8sMP!4nRXaX*y~_`5o>U4?AVo0=u7y>grGn=6e|x4*WxBaxOhhxyru0xw@Vy>XI6 zoI0GqNtFSX3#u8RyexmMk>|O@)OOllUnOIz?on9{wY&ytW17v5gt88>f#j^c6e3gy& zl@x9vXLa>mchSi)!K{Z7&@hPe*yF(TWwd)8)A^06*~U%#?FjE_rg?NR>j3$uWPu6` z%n8BOjs+~sZz$W#wlY6LBvXIU2GIMJ9Xpd9IADf6U_`wKsVwt(b324^dAF;Z(hxbx z#01gYWZJdVOTEiO8g(Q#9n$sJn3aohF*(0FKErHU_^#dAGEG03iOOCNfsl7MD=VCx zRo~|C8NMqS8YA4633Tlb;%pH}*0F-;v3Fc+dsD8+n6INeA*~0_sfm$oHT$Gq6{=ig z=DR&Yn`1u)Jo@#OmtEs(@5JuVjhW~-Kin;9)!wNxUAOmDaqTU8dbbC6N6RHc-4)?| zn-Zw$3%Z;q=4bDeTREz6`-hc7jJgT2T*!RBzlc4RU)#<0t6C(FEp(LeV}DEa@>`s_4$+QLTYp;D zTL165vx)rQ)*m6d{5t$R9^afp!s?O3*SiQ46w7u`Qb~0AmxD{wS;_P($bX3lx<2c6 zqvM-Jg)6uDyF>JlgUA?%;Qe+W00YqQD6}CP6EZOJH)Cd_or^BEOC+w!=+Rlsx??|^PpmUJ1X2k_vDqt7 z_{`cVGKb1)5Fk7aodc&pfY-~!rsof^05P^(6^7Z8f?8x3jGTts0;yW5w)xD?_ZObx zvRB*1e(|4_%HNPW<)cpure`eJ5C+Bs2#4;q^KJE;AAp-}@%zk%*1MOS<03U39sUQ( ztWIv7i@z=vaIW8=Soxj~!^(tPwoFOBtF@ub- z%5t1mnX&QnB$T)^L%{#6GBkwrvvQmuf=DlOK^U(yY)KTXkJLWpD~$Xn1hW|nn zJM}m}YjoPrw(m2e8$Gfb(?PCFTbQCn6r@EYMw4pNu16G#j`c!LqT@o*u96h%RI!ut z>d`<0$uY(;S}5Hjlf*|Q02Q587uMAKH#tacWj$BB)SY^eH%qE*3(vAG8Cof6vvn@F z5*-H|*t2w2+A>W2tyCb8^X%=+6LfD;#uGg(06|fW1o%@Ebk}dlO#42^w^emy_&8t# zZhKbfA@KMhj5@nzyf1~>Cpnm0uJyT-W#dlOFwEOxJ`KDfQ_*;?DOf4*gvBXTG8-Ql zM=taWH&7U!RWVubEQM{{tJWum)%1F8C%aV?37Y4s&R-!)G5T{E)p_*eN>rK!n>ose z95)tK?EW{Y=Xy(Lor6^s&4o@Z z(?3Tc&o>tbU)_Q?_L=P;9#l$X|Hmsrmfw6PLWqFmZJZVOP9uB0GW7%9qGEj`mbll<>m%nf5I zu~@2x%7<0qUQexf<}#(w&(YIeg+^)Sx6sEXf*?31U(LK4K09PCFh;$Iyhdj8j zqZ2x1GLGrY#aH0r5)^D`DfN{^cMB2PTqH6}P9&n$80n%se@*O>NGvBHij~tigm20f zyl7yXR>JavTMd1^7LrzN%HfYCZAg{ONZkWl zaUfu`HWtUZeyiU@&R22)yg()`2-?GjM6xOM#rPPg;WEN4EAkC9NQoF`{A3_b<{>?I z!v7(>R(>;(gr%433#1C8j_v9rr8&6{Toho5a0G|S_QM|%8fuE<&K;`tTu2xbgJ$zB zyT=&`C}~8`hHkmqv;?Nhr))e}M1o%sBDmC~?3N)?(f81%@k7(>)ROA4(*XmwPT9H2 zV6=Tfwg>Y}C=1GKO*Q>N#>_<;k}#)mHN?54qwqFj(}N8`sw8Jk)#i^? zG{s7)jZ`yM4gVqs**B6yu~muImP?Yt?B!F%Kh*A<%PM-ztt{?O)fr_)cMC_)^m?jn zU8mP-sN(BFy*%VRTyrDR(9bFQ?Qh3uU9(0 z-mc|lL+qhvQFsSAV~mbRHJVAZxEm!aBCMSfGN9i{fVC7ETuk-hvsPExMR0`hxwSs{ z*+}dn1VH!3jpILpW%9a-$S^r>}!U9>X*W`?IDnw9ut(Lqs?x6^!> zd|zJBfwLvcXJs0Zk6^fx7__{5aWV5}z&5O~uE*Z&C;BP{T2MoYwjB zlj}+7#5Nv@z44+@NV~19@uXUxQKCm}d!=n%`n`{5=;dS0g{IYIA+j-k1d#V`LXFb} zvi1TnGObm6pFQN(4Q4zpIJvQC&c3$ze-=-hNlk6B3f?b9fn-fPdC6T!vIGctaF799 z85W?I5hCoo%i(#+nYX@iebWHCPHvpFB+T4neK{y4oEe*Gf!?r2NCBKi8e=Iy_oyH&xX0w2M( z&L=~guK}q&A8ZlQLSj+|zZfjteT8va%XM+kYclH9&nK_+UB!q`)tk6j7X+4R3zPF^-<;&CeHAYf;s)4;^#P}?{N?&@bm2&@$ z9dSl(cnb6+B$`#2-+-~$n;Nopsglu&%aOIpUONISpzFOld+NTJ&8NG_BzpfElBO_H zaI$OWyOZUgspOGaw=%+yR*3~F}=JMJaeHxLAI)!Y%D2^6=STvJEfKSj11A4x~t$par%+V4xUT{y>n`+ zqP)J^PqEY4l|p;G;)b~}tfE>5jnTI%1S1&pJUtSdI=Q?l`p=y*kEOAXzsw!5I)A~? zf;y>3F7tAj@QOC179@N-G|40ykt-IVo4QGavO4mvZ;w6FeNMp{W-ETeWmmtJzGyYyvlV{S&(o6?%&v zgNe4}C%Rj%u#_ss8~i{6N5LE}tISbDdh9qN5y1KV5&>2vDHs>y&&5nLojLX@Yq2i_ zVYHFFMGP`Ji#8&e&qh0Xtl*m^pqZ_Fc}Bb11K}TI{hBf1Mtb6sL3TZh%%$82 zFmv`jd^{gEJgj>V|km@37#tP5AhS&uWL>^Sn1%k$#OEG)Gf-agCM!_t#PtPH|K zprTw_#i9L8(MdDYfiVb*7*nH89F;Icqo^X4w%nmG!S*#`6-FsHI?4x+gpw7!QW8X{ zy2)2GD$~Xy(5swrx4aS;Bkwe-@x|*lCt1X(gaBpWswGK14t5lh@w)fGz~?2fwjwSu51%dRBF&d|3K5fu-Y^rgxpHx zbUm=`%&JGn@)an<0;WXAOXU4e9R)Rc#K+@zFtkcXoHr!G-%E>U!a2dVr5QcbV9{&h zN*uPBnsvXjShN}85c_aUx;)REF2dn>KuZZmtT~qD7DDY3P(<=aB<(apRv*#RBAo`6 zxpGdDb+5G580y58>2^-av%+&Vm3ek1-0#tI>O$h^QF(jOIx@s#qroG)OcSpgGYiLj z&zhP9K}82jLnBkoLN7cn2q9N3eB(56YDKCaG8`StL-SIEeGyyI2uW8mgIz9jMal{( z#jO%aTQEn|ozGPXQ~NQq1pLR`Y`!#P({%zq`tZiv)l8JpI0TzSEepIHn$rAK)q>hG zwLntjuCHT5%LL?1oQT0gW=9&vys9*|wD8Z>Bt6vWR|@V)E0e;E`9nhrEK)_TNH zEZ-|tj~+~Q00Wv<2^}JA*5VRBaMAbv`9aMuimB{L~hOheczzAdF&%d8?Z1f-nVY1x5MqFW7EyWd4y zn!M_>h$J>i{h(3$u%0PnwczGDt)sB*y3oUlDA8$)O%z9|y&Nn(Qtd^?HP{+@v0MB% z*^I2w0;;P#_*V5yUL^0_M732tQCI=DSTOHMRr68JuT)KZUF~Sxyx-Wt_BzYS#Z8+i zGzMEDe4XNO-3<-JT|63^j4{3iFLQn*^GXzE2)Kon-*r>ao%hm|cTH?A%{4=neX-f> z;MJ-e%iZ#d>;5Oqb5C1Pyll=%Jf$#XE3@>_RYT0EjN4dL=Qvcc*vg5nvMS9 zD4ehzquvGn-W5+NO?~DaWs~kqTiq3##ZN064I~_Hzzw`3idrcvWhIQp%u}sCWtT&$ z&(CdC*akF~rLnJUA=mCiTuHf?QEfkMkj7FGvw_o0B`97CW-5gUuI1a)jDTluDpfoQ zS8OIvOI(qK=U$vyV+KRv=3TFK)8cDn=A<3P{HWWD&DrubH4L{}*^*3ow^x(kS^bRD zgz05vXF=s(6lBBDUOwUcBGlXGHN=_Lq|#Z{V8@mRFc9C6(^Fr`CDujQ)>Kt0n65bk zxH;BwTa?Wt#mQy0cV^yTBwPQ!VXzpA(OCS|*g)Hjy4PeHx?)tgUnDNOu7#Y&PC%N8 z$#m&!_GVGt1hZy-+We(QgP=_ftSdG$N>LBn43IMm#c8HqWDEUhCd9ha#^g4#(2ZNv zYjRfULtKwwNDV9u4=MAu|i&Qgp6K}L$-OfJeEB2M`;jCofKE4V-X zqEG&MXVzTR&G*?}9Be+yMwVHWrPNXuHsv0AS6=CDu9C0yiDxun;?>G-0(DI5pxVTj zT0ZOIPE8Dy8NUtC%XUTT>(}jlKuKA;xmF8Dox)3wgu+!honFsk);!C-gqbcTQ0yRE zo@Q#5-PrO+WcEw3q@ltVZ0p9pSzf*(>tW$4KRlJ?GDUzw;t3KJ>a|##7%i@~G*#f9 zi)b1Jx1kTI^K8++b?$oFZ=&YrH3Gp~08q<}r8Wbu7XmH(Uq5dLSkiuLlDgTIQJofu6FE=@i;9XQv&kn6=7br(WI;4<&~5*H!-suH4+n2=fW@R@sj!PeWU? zpzkCOZr%)Vkz3D2!sIQa*23CmjOIfI_-OQ;^p3<>CL}m2Bj`0Sq?O}UjX;r#C64o) z00O0KYBzIUSQ(ziOwJym9k#yrA!%f%>1En$b&k{$9O^90ULH4c3~6wtB*nwLLLG)u zU1?5dQ$6Gp%5GwEUbW_C#i1Pv@3df5msxj(?Bk}~+Fm3)ZayzB zJF(9(RD0bCUmqyc1I=VuX5N@U+{mECk8<^Y?(UDDu3R;FncH55@!85Z)+^NSPt6=1 znviCxJeL*z8l$VgN%V(!_I;fetLM*xUX$|C$06x1l*%qd>1N+p&g6~B_EWC&=L|Gx zt@?6HCD|@s;vPtN?hBtA7T5L8@DzExUNBG%Q`&O5^7A+f+Zt@N<@YvaO(M-~15`KE z%5zg(T%Gpey~teMYV)O;@B|20%t+~-L`$V+(>AL4hn{$i)U5i~wm^h{Xn}{5v7XHX z!d;_r7R$t^M>aHOOhI|#++7^k zmuW)bGro}9FI;HyYe*GjvvK|?`}UJIk3*KH-$L)OT&AYve$LKf;AtL{Y_D3_77)#3 zE<|yO?~j!wGfsCeh5Of*_rZ>o*QnG6-%NhD=Db3gRk86;Vsyik{T?uVPj6p0f8~c( zh>(kmxk7VFi=OVG_9<3P1&#L0@qwEOJvTmQ7|e*}Ph18k+zp z(oh6?5mJ>wL2+sPB4{u)iIBroFjfuD zR^4Ei@gx|&)LVN=wt0Gdo1WLx#q)AB*Ug{DJxq{pDVk0no5$zE*fOuA(%3)bWy z&U+yOG3^qdyshvXj{!bU`=aYLYXbJgzi^|}ro)ZX@bW$o0$Sliu0mG5!!BZ|&c4e+ zQv@JDItpf|%kzm3q06)<1j11CNa8mzdruL#D&$1&zDP6Q1xb*MV$8x3>`KPSGFy!# zxz3|}^}$SA!5>S}G)FK(uqv4%Jm_;eo*+xgvfWAVlAkn6&7vH=q!WwY=}fI^4$#bv z%wF_Q@}x%{%t$(F@2m*~_drk3Jjoh8Ys&KvzpX-2&ByfH*-)i!tVIvEGCSt;C5c-) zyq{DA)m6-ss~8@(=6uk{yMJ#myray@ht z+=!KOWgY|q4$hoBVQJ+6!Tg10&uVaP`l*V+O)O@Zq}Ilm1#APGv3$S$SLnY zGqvCWOxW@*yI*DZf(1h0S&av2ML5Jj$U6Bu*81nzRQ*~tQ0==vC3GwqJ6hMO1vf-^ z0-BInIBkJLXu5?Ne7Ekze)r8)BXs0!kA9D*zFB5*Bq_9|xt%H(t!D$|y#DgZ4^k zo?;dx!>!YSWjVsvc+h(UfSlkP5+xmJoZ%syeu!F z)2ApPznCJ3cPbrPz*82|l#@h&t?go>CYJ6PD@j<)!FxhhdcE300BbKI6gcI&^x%s$ zhh!Z#k!RrAfCEx(k9n@O5(+cTf;er?iSrpa7YJ3fB6TQ<&9y~FqRgvCfzGNAIub16 z*g^DN?PbVASZIJy>>gWjdILmw5S`=1Cx*lcZ@^g94_d?4gVDu25LTp3U?dVzZ>6fj z;!L?ifGiKOC1+EQ_Q$el;hW(;ZUoDsZUD9@x7BWTAWT5*qY z84V_u3X0QwZjX|>Ryh+{V}v<~j0tQR2Bfn}D)LKFUPC$5u2W81K#7h8pu1Tr z)1&-Hl+&GRxQRm&o>SMC%BE`+!#fhw%vK=mXaF(C-$k2DGkGuKXhj80Cm}@ZT5-OT zH6p02SbWKy(piGJWA#0i4HcOaa)-5-=_?tu1$0xj%FJlazS)^|rjllpu-DH~BKr=V zDk4GBS@R-fbYNjnWkVySnBiR;@kCKAP)5^ev=~&BqwnQ_(E1BjA{)e?6)}Oca=^G< z^Z}%hc8Ard4*ltM1UZlF+8?%LhgU?3DimR<5N0n~*-TPev|_cc_Rjz$>!xjNDS=bE zXIbG{P({_*4wtv>DvvX1GqhluxQLekts>5{)y9-Qsls3z zyr~F%OI~RXp;QXex~eBBX{BPAr}45x1irMKM4+NfDpFfIV3B5vWu}zs9KDw@Hswv; zd=$is7qlHiW4*qP_6pdSs)rD2k ztZ~grI8-XFDdVPH#daj-MVU2}%!7+RcJC#qTRS*thKQfmv4zN0)qbV!g|KGpHc?|c zV{&RA!#ZO7$Bcu2GO7zqmI6M{xPWJH&I6oTMyAF+DHG>o6tfdds9l_gp{s_g#*}7; z&Is_cX|}O~hchKmW0?DHMQDiHSmv~H&(6dx4R|?Ff3KM=N3S9 zSZ4QLU2U@B)<({eZnxLi@h7pxPqrAFL*hM$5I4q|V0yw9OzYDN@pjfvSI1Pq`K700 z)WOP88;NRKUP^CNIf;7e`ZnW{jgc|){dW3-R(~! zm_eB4!jZ8zJKsK1_HTyI#-&+6YC>74NJO#Pty5NzY3A5owsdOyXP_RtmO!Y*w5q*f z*6Q{P%cVi)>UExAbA%MSk7G-g9J8HsxAME{tMXESm+i%$MfVhVBvA_Z)s`(#M_FcSK%*hPm_zk_mYi0q_CtXrK_E)5HiTDg!I$*wa9Fd~HyWQPrU=7{cW!kF1l!0qp(=1}fqo zi~vbMw!d=@y#ugC63(zykA(1$ki4%Bd5T*VuJj?$){sYG5i7d{FGQB=^xtpT-Ykm> z=kXCPhXF%~r=*Ix!d7ZbI@lv1aSKq?MtGwOoTm*v7b@V|EP~+zEZokrH%cgLjzE$J ze%J2I(IX)1s8j+AaG~cl z7L3OQFz)D(!Z%AGpm9>(NJ9Ne^0WmE#W05aO|+zkswE>j?JR`lG5a0z28WNkBF~`T zO4%REYPy23DhstCKKY19bW%XRMkOFF4I$&?U54JKkxMBp{9CVxTC9-{(J+cK#_w>1gG>CN zv3nFxo<26;pu&$`FqyH$Sr7G0-0_j|7}iN^b0O zsc$zY^G2c$*5dSr^RP7>M+kRM`uj5B1a2t_<%J`3RKpN!B`!dLgc{&c=Gw`K;qwGC z6V{={g-l=o%SVql?)6N|#^Gc{!9#TGZm`@$$p44%>gtg@YbxEd^9+(o|FXX?=(;Cj z!AhV2%LT6gtS%<4u`qE_6YfMJ)8#MIhZT@F1B0h8kq~lI@~aeq5HI@DPB!ZkWOfGA zQ8W=l5{nd%MKJRKl2L;y%*4A-%Dhy25h;Z%NpD9));N>Q)gt!pZ~Sx2kwCOhI>_#- zH9J+a^B8E0Ax#JX2N1+U1c_$SbW|x766Yh&t4J;KgormswZd_ZRWCCB-P10IEF7%w z@m&m=Nz~~}&M5p5<3g$q^-rr-(5R9X0%mhDL{cWzrW0n+NzM?k|24dP;qLoadgbFQP(t+eI)j!9aF(=)y|lfysYSn z3s!|TaQe0KrDzi$Z)0;`bH=JMfbf%HBD7R&P;6RK?Bxs#Rnk)PR*cw+vkcP+sjf)L z6$v0uA8F71Ia2jWGPO+<*;j7m=d_H89BwoWnKNq6!WswTn6RDRLzcCi>8JNB7*e$yaqO$!--g`ZQI0 z${;F`z&y&q3ldcccKu5aB`NKTPA>{^)*8ymZgFvu4C7h)}7jF>D$v69$~k zn{&5O4-rLIH=Q`uze;Yf^G_I5Eg*@N$!<6WCnXm7)O&exDROL_de@~mR(W#QELpU{ zgDh7f?B#xraTj$5KO(5aE(K;+fjo7$A&iAqH>HR(Q*5xMELCEl^p@{P*?E^RT}4q% zBB@a(I58vvUJ~%@1wfnfae6Pov%dYY?7?eZ)izYghVwTT zcPP;5X7ac?c?~aX<5n_FSPcu387V{!^LN(9q?Jp7)_Zld8;ptf8F5EMtRr>K?*bJ! z1Pbck(@l<%OGs@`f7wl95idc`FN@cWHCM3|%yWt@b~16HWcdJy_i8-X3w;oea4;!h zag-v`eEibRTc)Xo!W|v9Pi>Rb;8fue*63~45XLUiA`Jswlgpb#elIPs)R$&+8JMdO zX@hq8e$q8X@r?LQqBB%!g&Ap|O$(AlgFm^`hBKL=kby)w80Iq{k(euqhzmJU35R%d zk&Ql#*d#`3Ee=^dL9iE>?zMSXOH8!^O|pckvspj|L!TIhT89yrOV0PXd4(&XMYHWU z2>jX=8#S(KW_T?~mGVFtxg##~b64Kl)v_uRH0SSXG7-rrkI86QH18FjJ#^A+mQA4& zl=*HjDTX+-=s|#lepLcMW0%6mEu&6l3m&yUfOXH9CY@kNyEMp%Ca^ATG}AD5#~GJo z;jNU;n*l6QUsMXX*wG75*kvOQ0TfwrFZLf5dX*J-q*@!dMsY{iaGQAQM_4evJ%KXx>XGOq)ZS1prI!$ul6xBnv#z1EuSIraemKh^d5L5BW~ocdxH}@KuZ=YDh{rm8Q&6ExPupP+ zQlEA4o|#^V)CzIU!Eu-toYL2=8#iYr2E%u4WcDSfTU2+i%YAv=Jj?-tY=gq7Uvvz( zL0357SLZQ$QDo}dq;grn3Zk1Y$}+iDHW#-8t|P%xNxV~b`uhf)unN2L~gHZ zZ^|SMNtJMT_#1&YjDu%<`A6?0Aj_*smUgu&c%i3*scn>tyV0ZWDUIA6XAB{YYhP_G zkGh++Vz-Kpv@wVE<+1kd%&k*Q(8eqW5G8IuKRe-edLSa*tC^Jdy_5Cct}abf=e8JE zXOmy9P&v~W#h^J8l@c?f84IEGVUb)N%UIPBn~8Jx1(nTjCSC3T1Z~)w0p>HNp#B3w z5W8bLg$kM{A{g)3n_bSdeG0T_)9qn~)5TZYv)+y`-d=#p-LaZfceaj=wp=mII8`r= zyE3U*{t#wR9+^7Y<3XlbuhLoOcKS;P8nn3trI{U5P38x*d3;9GwbTxQ~#t1816 zAs$uL4Poq@QuG_MWt+p~wUx@%tIHa*pxn!xh*9v=4Q>BJMKAsAypP*_{i%ZS#L5BS zS<1bn?YT@$W-l<^R2fzWy&;ap1n_9!VYm2 zh~QeGoq6An{$*~k$?Y4A_4{q)TakKY0b%+($h}e3dpp=VZ<)xL)fWQkb7}XzS;9J3 z^S+d|u;Mw5v40jfX!&=ff&l*jK;Td?3=9DUgu(z&$V2uK2ZKT)kyu0eEC7iB0Fju4 zW-k$h0OT-96oO3_jmF_oNo=B3CjdiWaflo4Wi*&Wrm|SnW;Z0B%pp;@q}pd0m&_wz zSj+M=NR`j1(1=woe?*y9DbzSz?txaZK<8C^7yu1EtW@jNiFJl!V7XW8H(D*8t6r8& zsS(&6cI67FK;!m_-~sP^!^kTZS>3P!NQF+Km%8>+@n^}*qLeI*BL{YbT3~tS#h!I} zlvJyC3QVK{g^FXZTHS^EIiQE_uC&>fCbbibUHDf@##eckx^km)t(G1)ZkcDaJdK93 z|C*m|HE@gvM>$I9S>l~s%vzCv&s*Sn9Zjpp*Q$7Uu&nof5c-5pET2v@T+A!aVk+=1 zD66>aHR!6$ralO>Jm)nHoe_x zxb8Xc>tNL(OY8QTIZz7e47jdRK-?!u(?aP+iIWQE$ncvM-6G8-D<-xv%68+m%xZkX zv(mc>DY&sL7XLtL(vYM_a2s%DzcAaADm+n~6$(U*RNmY}(cCE?yy-*=y2Y{*&oV+z z8qUunZ3|S@DD)H+6+W+v|1V3R1U&V;i5&p{L{aN<*hvlK6FE4qdc4iH5fu24PVl>y zoYNBg4JyUx%|}i}zytK+%(S&-M?(}PcOEhG)nfz0P&A7^%FH}%IkZ!J#Meevbm2EQ zw3R&I)rcH8-MzM5B~a0c^($UjEv+M8SFj~70VmAus|rkYebH?qszkE?PxE_2W?A)I zL2xH=gdCJpRs~CX*o=a8Ent?DaeK*^oCk7BR?7g8L^cCwS6b72BGTLFvkP5bjSaZ@ zWA^RMg3K)w`v` zMBW;-Ozm$sELpfc6qNYLSr}xa#M!YvwI%AeJ?%%iR>tcEL(D4yc|oo%@lrM1e)rLE zyG>7HE|J?+#cK9#RnJlv73r*2eY0Tma2%X#95xbs2i{26RiVRPh~6QxcdR!Bi&of1 z0p@r(_bGZS8K z&6idc$X!(fsVfHH+&h(~oJol13QSx-fY!erjOVM{G+>PZnZ5|G7FLc>w*P1Lc*>~UT~?RJpj7`<3z z$6@0MFziI)u~)pJ(G&)9OBJ5HEa4)VTCpAeN&;k)%?u)e$SGVASFaP`nzWdP@$13^ zsWe*(EiedrI>&{xFs2b8l+3-b!P4bBCF9#z4MGRbW+f6Fn~Q6nbe>N( zYeg6S?&GxAeRGNoGQt$JmwX$6CLLNpNd)YlvrT9V<&L=6A0DF|n|P(xEkal(;vZZ; zdn=5Lr)mQ;am6j%Hkw1^Y10O9VX37~nqh6aaG7_$jtu|2v z8=i)|1j<6Venjgrh**#blna zfwUO}lLOI9dV3W{DbN|mUR0GRs5Op8#XA2~%cM1RCIAJHf#k}_+D|7_PP|D*32z^Z zD~l2$O2(tO+9>sdBi8mrPWks0sx=SE!EG^`JEIbC#;eeoL0jQ<&(Use}_@6(cTEo9h#)Eq1!GTNyz6 z<&55K(s++G*j5Df7Ow@?mQ<>$GPP+|>{K(rxmmhs-6E84-KAVB6EQ1R!*S$>bN~hb zg-tu9Eg~f3E>jx%VR+4g7cOM97Y({ttxSj30#Cba5QR{xvf%4ffP5{*zeN@^A*XxX zM|84XDzA-t(K=( zVo9tn7+mYeFuhlWRq=H+WX~H( zxRk@z38eFJx-u3C&5Zi#P+hOWE2}=3S`L8F+2e9co?E;74qsp_C9iA@X77xcjM9wq zyvfu8N;SV9L1K5=2tmN;QuMF@k~6wHrL3(uaa-GIM}cel6yeaq{&TKRX7}bs$$5@s z^!e@UcmDczIacVHd8VJeS#u#tKT*YLOlVN{-jY=r4<4(Rg!Wm*w*<=adB~^8VE31~ z689JwecAvAw$9{}`SRIjxoK=uW9|Ba<}3_x8}ScwTKdPHZy6KDNG5OiKqC~n2Q93go2(se2n_|EdgBa^UwaTxv+w8Gf60tIn zv5P-7p}V$%DZmN>tBejLF_*Dp_Acw@CG$(AW70i3t(4fvHri>n*~`BgGb%HKvnk z2(%vyqI8s6=?p50DOjICK(9WkEgrcKIdg!KTlKz!O|0X3GXzSO$mJNQ)hyDlHDJ08 z!wrA{)1Z5Ww*p?kVnMsHw8d)-lzKEhxy&GFwv0IC!4XCrEyFB~$*Ku3>*L7Lw4A(Hx63Us3B$cSlPbKpFWPgo zONYrrRj8~UM}(iAYEu(S|1(SxM$EmWORgzILP~NCy#os}8V$l*2nm!^2%~fiEWnwJ zqp+}$NqmdG!|Kf3j6IvbNehv}5wA(p%{HNGpLtrebZ;!Qo)?^q$6Q~%gw7@Gc}HZo zyV9sVIbtsZ+ey6CMX46ZG(0&>x;gB)&2rEiMC3hd2)49Iwvt4tLcAseoHN7qBwQi7 z^1MRf(@4vDn-SAAf{-%920wbj!9xPYi2=wWHAf0RD4A%po1#N2_(43;kTICF*_Xbn znMCaSpIFeka*)D1R7#WVO$6ghG~!NVrk`7`EO};_dqyZ)&xo|@#$*u9z}!ZHsX|23 zq)Yld@a?P=_ebmOO~mHB$@3%wTF1hC3!-R6!m%%7B*ROzy=(l?$eqvxBFrPun57oY zgUzv`=`?u~lj0CZT=7Fsxf2{ym2@s8&PCrqB-q4%-Xp*3L&)kAOder>}qKi2h^v99|uS=Y7JHV7C+!4#XV->Ue!ir5g>2jbV+@@90TRv&ZEcuVfnu z^$#+=E<+L6()xw8`&d5?#zQ(|mN7S59RB6*yRJmD| z6zmlj4Jy49>_E}CNo_P*OVpWR7SUas&eS%RJ#jrm+?n#cR+UUnIY+`Gce&MF$Sc+> zErZ2ms76YZHdR>6gH^ubKsh}<&~te-DtfIXy2evXtPu35T4}^p8%67-tnrSF0^^E9 z5>myh2ph@>98^YA_(9ZKy5u%FZ3|j3ozxJzU5si`+@>uX0@3{aMO`^m2}vgGZrf;> zI69+Q^&4Ix zJrlB}^El+qh3vuv7y;x5DK~1_aYPzc|E9iGl)0#s;($(2!LAT8jN!B!q9+lMKtJuICxI(@KL;>kt z)b^&;dQ?cS5cI&vbVo&e6TRuD(Jl0=-T&cb@>5!+;0_s|b@e}P1JiAw-FlFu#SI=TyV_#jWnO}i;TAeemAXL!&_`T*EIQy|eQH1|*3MmT*UoI-eoGfs$GTPN z)O;38WV19LWY@suGHd@$T2$knGqqV-OHLhOAmZjkSCyqHSt0CJTedp^D9EzQW^%ul zl2j@Z4@`aiJy3zXf~MBWyIFp4zKHJGRbf0ET~~rL0Q0(P61<#YT{%nTvB?RvMWBSqfFkzU$DBps|z!Zm}evpwF8&H@PWQc z4dIDfUg@-H4D~^PnO^L5#QEh6@}}8JtUKLz$D5R@-qLFhO1hjr*DQs;F0D&$bJ*5F zV&bdfB6jXOn8_|H(oz?)o_|Gs6hezIzy{LWdk41q{2IuNLT<2~=>{Rh) zW=w0oX-trWT{JXKoJ=sW4`cHkywH#w;V9~9gejrQ-g~ZATt6s;1wgb!Y975FRl&8a zq)(2>?oL$JVHW0;qRV!Csy*cyTgwYMC#5$JD@HMJS#sZw9y4}cM*aj&O%ZUF|5mf` z+e~D<3_zH6x;mu6>1G$n&Pn9GP&;e3Rw6?+twL!}3ukezO~tQOY;)Sa2Tc;YFTR1^ zZRhB*^}bzD?&PWRsdYtEysZRau@=7xg^Oce=P3^U%PD%^9*>uqQv7@)~c5KTFH>s$z5z1MQ-%tRKI)t?WIU=NSP@g+C1d@3VVM)o9+WT?(rtInFY9|G5MoiQGpX~LrZjPH{h3Z>g8sak`IF)OP z_0Ea+QEaw1YV1pKDn(mmLg#uss9n=*yb#M*7HPTH??jjsmrus7Cs1hKPn*9vzZBmc z_mo~ZOiZ)c+UaIYg>kCMc8eNZUX@4j(?PE1>vpzh!%%e%^PP!g3?Vv$ap{y07!z^<5ePvs6ilYr}Db(xfi|^eO zv#6_0)}Jq1THvSjuxx`kFv8b1ZHaX%yD=L%>IOY$mm1Rz#(I2aS&V_BD2!qi6@f?~ z(iqqRMGA~YV6mwr2nhv_fF>}f+@@Fne#NEIm~;wjEdWnv6R9+$3k96eAyg?8KA94M zP@zu-ToA@g{B z)?<92P4O~19RLlS$ynf88MT9Re!k%>n5`@dZ!e%ovG^hSoR zUbT0NkdoChG^|E`y+rZ%BwdTP)4ke^Ywv$P9?xO4u>3gETz^Zzowsev@`<&M3%1d# zOjrQqJ*uNl+$aD$9D<(+EExBwN)qb#wrRUG>Aa4ru%bY0D=3~skJFm=GY>K`6E{tx z(ziG8QnM5&50jeSIj}35_q~tusRluhW8SUD?u2si#}C6c6=DzRpVw=YC z6R9am&urY`!;|#CJkd|2WP-Nn5%SYPP#gy@KysWq+|ZOvSt!%cGur<(5sY;AMzj0d zJ=1bioT5FF^n#M6GaAUtRrHlsn7QxUn_$;;O=9iTv}3g3NpefSKD+YtMxaQI%O3R8 zuoWctuB{oNOdw4hXzI-^oG_$Juv__APKfig*};jr>n_1nvc(25^eQJ9HEJUtEnE$y z`vAlM14j?fl#-o1I;j=L>o##~n`7WrH7iH9I1T?c`9r6W3WvdIA@Zq4>L%Q(u%j-uvXOrB{S*bvD$v-T7ss zV^&ylhy+p3yweAzPy}MCV(O%Z+}*hbVQ}3TCP9BvW^JirC^ZtJNW*SHNBEH=!)S~O6U=ll8DTcHT&iCC13jBpd1?oKa#BCxYmVb(wFurDR)l@s*CMJxVz*z#>lycB?Pi93Qa&E=p6ToMy zY0yZhuOiUP0ZlE&Fp?Gb)O@a5KAo6$ z_8b&AbTf6}yaW(IQ%iMv(IovvMJPd5`vsPaos+d0g3zS9XPeQ)_Qu3wLZX8AlTzk8 zpW>|`-30)&5H1K?HDWtp~9wyu^VSdIh=biNrgMd4v3pU8T2N6Boy-}M`X z>pASq_#Y)9bij)T4j)d%bo$uKiYDehUYALCENNUWR;OuHylQUir+b!Z@i9ZHxh`7N zl|7p4Je0twF8F8D^mCIT1x->g;RwR?a>ZF}uv$MvqVkqhR0&r~#Z4Fzq|JLWiU5>H z8%LRHx~p_GRLXO|F&Hu0Vd=^bv?WsB-7Dd$4H1Uer=<;<(lLNdq43mcty)x@IdUqd zsZKetlTS)%deF99Sla6773D68b)pI~8nFV@l(ei|yRh`{EXTxp`|RTdQP6en{8 zFCpx5D#Ct9$HHjq1wpKpacUA+B}FAo;6^giD$qh6gC{!$KJ!j`7MWKz&7#Cc5te(a z+f6H}fkImrUe!ap(SWV}xSW#tg(!N;<^ID72=l-p;eOQ&VapK>jD5|<+jX9btYH_^{ZJ4=pUqX;girlHLW8ulQ~ z3s|-?Ofm8mVJP8Zx;SP#&ZL_S65$2DH&-6n8(TPU)7ZuZ699k%9=M+kkSfr{1wiDy zysUm6rC2WAmPBCP>4Y++ifOr9>*{q~J*a+nvA^UrXMy7kYP0u++25KEQcb1zl+3mr zFjS`xtt5VYn6go!ts1MTCAFmrx`68@vuWzo2hdkGli|t5el6yE)R;E7Uo=!qUC7gj zwkES6q3W!)zJ{CizfrTgRM&8OwRi*FuTm?R$QA}-aulguXw4;;CeG=P%sz`s2SBP_ zH88qRR?VQMH>)76*tT@y_iKpBnI=mg*s`LgYGzxKX=5FE4GR;vqd|jibR?M2f(GsQ zxwB=|dXX7hE#JKIq4d+1)dh(EaNTBiGM;VM%t7EVf`n-EhWE1**E(TnyUJ1S-!^kD zso$!BC9%YBg1Whz;H!jDB%be4F7C`q*rm|x#k|n!%WOyU@6v3>8&K}$x9Q7hU>rgEP8CJshDS7B95ho|!7{-(NP$v@m5UbmI`vTiBJ)s=ZntdE`m3|;GS zUPWv)es;!Y=a^_44TMQfYoxp5$tt|T?6wadX6B7~ybbwwGN}^*h$wq}DuZ@52WZDk z2ZVBaAse!ChtXWm>EVnYseXJgd^uBt_*(aymtr>hloI}w4*2w_H&Oi_kb?Z!D)ptO zm0HY!H19)Y{B^a>aC|$sm|-3j7U>kLuuJkQ~d(qPuJoK}Ie=$c*D< zPIwP|va8yR>BMudDsIe`1CLIo5F+kwtoX*L=tLT&Pg?LLX8_~cv`{!xh0;oIex=PR z0`LUa>vW;89;gR2;e?{ViijkpE+I%H%kK2!kR;_#7}BJN!@HXEj0<~|zdd(2-Fo1~)kjQ4q z1CLP7uwe!eO5f-z_NvsJL>TpkTGB71!$l6YXFAIZrfQA&sOc(6sP=1S*re`Wi>VsF z#;F7E{Kl@tB5_X=X*}GBy2~dNdkc^~?u`AyQe3cHM{i*G4^lx+u->S0$ij@`hvw&r z{#4074rT&j@7{T$>O!sx&M{Dr&P>%VyxuCt;cvomNJixETzcZg9$)}XDL)>|FfOS+ z$mvGik7k0V>Zx%93^DL}i?ri~^p=nCK~cPP2nhT~K?9`w?FrDWvfyr4et2hh_5RrdnI30+CQi!LQFD5!h`dAZ}>Am=u67(*3RDs zXF(2))eL3Qj?&Ewt9nI7X1nO@>S6@GD;Bd77_bml_k`ywCIUY49LbA@r_S(&3SkzI z*w2xhC@@}!XWrs-ezVVmDheA8kfAjwy2WyCljW||5<=V$of^?7rH)rFj>wd9Sek1P z$a4JJM@Eb;xfG{$BMI1{1Wu<-mhe)43bU}W&U-TQ5?wRHD6*Ei(FG`z%?D8+j_-bc z6GqFk*D|XGER8C3Gf<`Qi3^B;vg)$JZoLK)-t+50GH+1bv?&)XnE~`P?d(3^kpTSY zTLOR!t2kD z{H^?YPY~)2WYp*I{t(>tanS)3raO#9Mb6l`w6iA5>OSa%naP=QEdXCby6|Z*g3(6$1VH{6?LG*g-@1aGG zkn~Z*FB26bCP7fKK?8{&EK(>St+@(Rqa}|=PKd<@jiUw&ZwmAe2^4`k^F+GS0xqxY zurbbzFzAs^aNX1hhl=1;ZDKu45Y7d4AqX8sa~Da>t~*qSQV|~=wPQW=Jh&j$NF`Tr?^#wo7#2STiU2HDGe}iY1G0H!PvnM<&qXbHH#3Vw<^umr%0X2N4^pE` zl9yw(yvP*^5R=;D!>WQzDwDD>$CguHNSYv45|ef)aZYJmk0Q_QzI*E6_x0k3@ha=` zUgWfYE9=^tZ>vO*D6O!}$c55k;~ybV3n`COZLghNYh4YIlS0&)Cgx8Gwdy-muA#60 zWCkf8m2Y5mODWYH^2l7}Z2>*Z^xC7W@->NX6cCT~g;x}8`7Q!yFE+P{FIQ2%00<<` zwtVvHPRa9!IIn+45KDAw(IB&zYmti??pCbovV^K&$qbn>wmngGz@?7sQA#60W7$_| z9ZyaB4W);0_mOK=Ia{^Ecc-%QBSzU#VzMq|yY!1z$$s0=-z*B}cQeg9_m=_kbvVd) z>={0W|o$RmT22kw;)V@=ThM8BdqOHaPm|_y{{C< zY9ebptuq(Ow!ByV{M$wvS0u8-8k7WiRh3ov03{Z!QUot3;k1yf(bCppmo z^B2EykF@=4A9qQPJ8NWWlC-vWeycVTc*t7kY!Py|*?bi1J<07k6{2O$zbWzz<0$VV za&ChVXzLcOKFiu|Pf+zqX$v$PhA(eeuO9i)v1Haf{1rcNI0A7@gslc1KywR0Cp(QO zU4C{CIJNm*YS8hb3U@D6c4Z)V*Nq~{vtzjI)CBiM57PIOts=)ekyHO*MNK@W3RGrq zdm^mXwnFJh!+URECO8uYnB{ee9fokd0@MP{rHG$29Vs)zL3sUE75AA@jS4cD?=tyz z_REOXtSFAE|2Z{Zv#Ne>(&U+&fzRmf*D*LZG{LoJGIo%U^^!YU@wxraFc?Qfq6D9rIqq5nuDcH`I3?Mfe`(g*`n~6j-~@fUkKBoQqwESccl$L z^-qaVHv3tWZwk)4JXnJ9$apG?&!2kVuDQsdg?VlI*>cZ#Ve8_ya#dG@w`~Wy}RSUF59J93Fs}$Lz?##@aH=Hd!0-`ZnG_+!tJFD6rRo4Gs8m8m1 zSGW3WmrxUsknGx*o3W7qCi_E*kRi6Pb0ZaVsqd4JvmF0$EP!&_u2;ok84aR4aZ#E& zhuJ8Vwxg~Hc^!gHi>SM)BIBBN&Ov~= zOi=9Wuy}!h@kPEYnN+T@+_ryng${9o#Kt?7x+`&@+G~aRPl~!mWv8vW4aYr#F-Ey> zan;otQX)ZHDss?qFZw@VcWK4@RA($@VA^F$vR-Xd@iZ*qk6b^amzQK}SkzkEt2u!` zwWlUH!fqM1x&jITwF1PYCAi~h!?Opxy7F??0Lz)!(Rmmw3Y^0BI47pHKWt};%|c7RteIePg)5tQ(rYf3iqDnV;k(eS z+NUFndVRw+cb8W~$hsit`eU(}-HHA6K-?;HG0Zqlqj^9Y~FYq0Oz_+JL|qG zmWYHJ6RtKNDLfA*PEVkDgBT~NC>22Ju185anaDgK-LSt+RIAp8g>ibp?HruTp01&@ zLcTa{yG9YfTig0rcRa>UyX%qJ(QJcRKf!DCVf@)gdA5`L3OjS6IC3RbK5TlLb*~rw zCv+8BuebHKJRkr-1PlWM06}2TXY?2g27SSy00>+S{{{iVpwU<)LJa+k!ef#N1WrK_ zkw)T@83bxeAA!Z-U@1Jx2M?6Uq>&jko>>u=LSi$SRFWGpi%Opo-~b{W27XGU;0f(2 z6Evv7;}dWNT7g5VRpk|l6#h>nuGr~O>NT##EwDmml{*cRMOL~>?e=<=Dg`*GL9WuP zkOI|&z*b}v3*BmWez4_0&W_)mo=oY~tX1moK9lRL zFq##!3ue#cYS^hIa}iO{(zXB$Ru);j#$WA{P2VCVr^oMkl^za5WvJNe@eimqG6v9t zK4jo&J{QFz;$kp-9;^>7EW*TaFgYeFgVB!axD>1($D1PQuuUS`&nrr^g88LR3gYN2 zE?chuKJStY%RsJj@PWPQQmoCW@QUW_LhiD*ub^)z0PQPEi)H`-?My)j#n0#f%POi= z8yK=^G)~+lOj9tnzNvcO138e?KDMs#Q`h>e5+8NfHzE zl}VD4BQ>_}EGs0(@`Dvzt5C&A*3~rf+T5-5@x?xo)fKD(XH|6V2^mZljjZEQ zt79P+Aa4S-64QfaKQ_!QHmo)Pk=7l5 zMu;4Jg-;nggLhff4i3vOtgRgw-LgCbAT8HjFx$6GMX6olHkLUkR@i)FGRV#TUw~+q zq}fR3tTdG=GSa>ZmT3qab*5NazL!%hGpr97ZPvZ~i0sY2GoaLt9-Cj?bL!r!GS7n% zVC$@o$hOJWHV;*0IsIb~TG*3rl5i75b+|{&EWLp>kgL@rP!rAfG_PDlN{G;LHm-=w z(w5a$Ta1qf)#*4s3cSHPUlV6KT8*~a$lc<>6?7FN$nD1|Jbk^&{KNvzHte&NF6#c3 z`KYg2AF~SUlk{Vp@$8jDz0IB?ufgk!yA_?t-fnF)^V@tv$Wfm!=g;c(rAru1lxAU~ zHKXvtPW!-gPx)Q61h~veI};|bE!?-Z`t^)+2yl-DgBwKR-B_aXXAPw0KL_-hU!)&i z4HV`oI70vsBTY{z`4Wuhkn7(0ZD*`j4?#E*NErfOUM^`LIEQBL%JT7qWr6!P#twhi z)I5T#VhgttKt0(s4>s)$u@Gi9LR35_h-?Y;E7d~9kqit?F-iA5)h?x9yf$EvZALFw zz<&$Vns@8Q6dV^aN|-CGaiy_sw`R8$8B`K{DbYSN=xU5j6aj*f6=%K(fbLx5a#S#Z z>_!zrqa7+?g=>C8##63jvBmsgQ#rRtp_dOL=SLsUIoF^CV>Jhe*iTI6mkijAgQD zW9!;XEvY#nS7K0t%k~h&qefz-V|R81<+02cG~uG$o{9xoPDc2I@qDr5u$gJDx{*;Y3R>1(8DP-Pfd$%ThKWb z779~#q))jk%b0fvQo87!FgYi_=|wYSWp{)P?cYjxoWmtmZ)Ws{7A~lA`5`OMIQ5#$ z*P___SQI{^$C@V}$CRw?Qc_`)%Fe1JjZ9H2KaEu>Yb?ah>)})XYV#<>FvAqa>+6KA z6impuHyB{t9m8+wHl|W|H!|Ffm3p!^o7YIYOkC4*wRasOGV6(CD=Y7DR)EN`$6V&_ zOzVShXs|~q{@NCF@kAwAyGdtNFXm)NpiQ2i=$ zX{+Lq<8}jat{j)XPU;$BtQ}0P<}#7(66PKh(8*Wxh;Mh(7v{(FU~Z{;aMmV%z3CY; z><%@wadp&MnP(T#fx)3r9jDJ+Z0OTNsK3TTL^S1q(`8bTf7%hD<*1=(keYa_tH(ap zvq-kp+o8WK27TV8Nir%u)oV7_HruxhmC0h9l&sN%(u#`hmMnLs6p|;StJ7Wb)!Gv=L&CN?~!)56GgeBumZWYdyUyEM_tZa;!*d`~-*zHvo-UiN)lK075*&!vC zlF}s-VA)JpcZ&<^C0WW2Z%Cm=EZhVvG6BC__@AS0yw*alp{dk7pR4mpmH{c_1>A|Z zc#MoQjKwUaZ|A!CPu}pdu!6NoNZFI~NqT=OaVk8UOPTUjEv1*~%53OMahrir=HLQY zQT&}MuG^x|`wKQSY5j?qZa(EV+Mm{%*$m%ZmBTT1@MwCens|C?QFMYC=;y$mOTQH@ zmPmsD)($-+X5(Ho#YpG%CVCJKs*9+rT^G)t-LMpfBu#PuVe;SI_=LtmRTccj{w1Clk3A*Ks$G}W~m z+-m}^WGc?RY`9>P`93YJro#c`(lXi73;2mfeIV$2G4t28L&K2`#cG@le|3r=z_4Au zr_fFdJ?X-YyXr9r#43ZBtO*pG)B3TY!4S*)B70gs@`t{G*P}@(C%HU2+ax){CMH63 zA;Xxv11Gc_&m|ivRl}Y3B(l8 zt1W5ks0wF5Q_DVk!Xn}DEyG2z!5cW7B0PKJuIrVu__nR0Tn=OsJK=SavZoabYol|1 zx_cp^%CtYDNSXrDGE>>GBnpf~Fs%z;xX{6@8*MWQ(J12QEi^ThE8QQGsxUF2CNi`f zL!Px<6{r%T!-D;^dz3fH6(izgGOF&yfsMSp6GcHIJlrP4k|+)fd^EWdy`u6!dU}^iICGk|~TkyyR^p`Mx!<#VZ+xLn>g$>4TEm_{ECKy%BYzL3K0xr$I7YwgQ8b zL#?Wt+PO)?CP6F0_`<^5(v>1{E5XDZ(Y?U4>@Q2_EqIabv;53vnxV5(PFe=G)E)8ovX?KTR^10tHJWOE9-lw>|36XFwbtEMZWH&dLUD)31oP(c)Ys;c|LauB&2 zrl8Z`N<0=O%Lbaf7#O?itV>oFbYM&@wYFi+F#wQ28zxKP_ev2M7}{mJGoM4y?-vB3 znG6OP3}iNwYDw#1ouTj}Ar&6%1f6=jlr$tNN~AJ;U`mRdF>#_ndaX;0ErWEI^xVeD zG(^#9xr(7YgtD?zm#4|5ok6%a@~F58JURQN2ei>BTkEbgSGs((K$~++gEL3Ff2V_k z%G)&;yau+Jp_bWdOPi#)iKwN@aL;_q&|GyKLuku9z{ra^(6Yor;%Xl2sU$*;N@`Hf zL>oQ&;lC><7NdM6OsOAqmx&bMp}Go88$!MrKfx%gqvGAZ<6DzLMjfl z+fqB?qJrw1+anm zO!W56F?ABN3L0syF5=gzwDUu#wo%mxI#R%&Dn2a~n=&lEivfbk6!Ox0B=+UTD($<9KK%!<;RkY8|ZCMHTTFYIv^ql|# zxw5@QNc~+(bo*Ax#2DDi7-RFlBk0l;+SpTQPn;;6BU87Nn7v!fAw(&fJfyVbPq+LJ z(X7_89eh2KCs1^Su|w00kZ{85=s&10T_p}wHI&~N(nU3Z+VgucJMOO?ek#+9qG9~i#K+F0hD5n|++9RhJ(to*;MC2& zl;tpq62HF;&Q7B%u+^Sm1nCilJWR!gUo2|Pkx0_DcE)-(rlrCvT{O8X$i1#0Z4ArQ@=OxSk;B9ZHRlmNg3#26! zLWBp{{Ow{pC)fqoUo3(-NnM}IKhN|gTD|_i&A>Gzo3h0&E*ywN1i@4bHp<2llS3dc zEde-Hh|xA4OWccBXb<;ciih5&W!4I>xjqRrUcK8y4dmKber*tDWJ;+RscKk~e6r7~A!)8fDyrgeuB~ z6pa5+MZ6+|b3g)Rx#+^$$z;@Q10*G#&{+N<1r^7fd>s`tU_yZm9q3ooFVB&G8s-Ss zs`0qOCz<8WU#Q5{Z2x5yfVt~5sy#i=n7gv3N+uGT)GNfkHcT{$y~W)5u_?l5lO~s5 zOHwk9zw2s=R*hfWD^{KRNF9K!+;rBv=(~l3Jq`zH9+czCWGlLqUcL)ieKsfMHr`bk zP$gk4%jrfsxS$-aWVly^&|N>q z9CEBlxJ{${){_P3G#t(QjbAy}x58YOp*qot_Y~y#X+V%ImLY%yf8UNnt3xd1l9=kN z>*WFs({iAh6L`^_x@u(u1AGh4kk#C( zzMBAWG(cRi+ zOfrPfF2@)2kJP&-OjSA)OMg&)fmeR);vpFD60q;?nDC}vs-^L4%#Io*C(a!lJ$_Z- zrF?Ii3Q3J=JC2bt(nfBt09%`cTel$*42oY3fa8plF;Ug4sCX{#i%YmM?$9fGBu zqGc=U5@v1ki@5#N+_eEJJ)~%Df6kryYR4#yim~x-j?vpCAEpW(9X)Wo_Wi%yOQoOLsQqj<)hP5adSA2|JK<-mTJs7;ZNQFXpCHQ_67`m|xBO z8YRbJqNBEZ-|s~vS8lPiBJ{^pMcls%Gvnu{2TKg{6943updMIxB74xQKI#k9l0sm{yI}5pnHwQbwe~dqtcf;)7>kc~cnPby5Mr}#vCdbAVYVlTgc6QBd1AW6$H1{8&US=8?E-xp1q$@Ug8UeU#Hb*;r zZN7hHafVeZWSHZNP|)?fF# zeE#swnLJwegwzAhFHfm_b(Gqukttq*Vth7OHs{z^Lj0$Bv4h3aH^4DZ)ANM+lg@hE zimnJXa|n)n3vDw~CKmGFp?bRk@R@&khyYB!7NN-!jIz1p7l?GfFi-U)^Yo<>GhR7} z!sWbSY14oGRc{CY00IDlKcIjB6dn}+gTo+@m?RDf4gdjQ@7O!$4-$k%;j#EE9w7>n zNo3G?G)7DYkN_nz>1=XN34^}ovMDsaI0S>gB-6=M5`i#+KBV$!q`njbmcpcSsWmb~ z1dLFnviPJ@M_QKGB($161OZY2R%6vUBvLstlSeI5h&_@OP_W73khnb3CpWQ0D0NT< z0u^qv$tCy+WD?0En_lcxt8Ny-R>euM7}ylzOOUZ%G11s0TKhe?L*_Ray*BG!vFR?j zSmk43s?q0iRUIv+k&&>|^IF&>`#*2m*>v_BUehyF+;cS0Oil-Q0O4`7{F_DJ3tQdE zZJPcq+mE2@NhEphUrQ_N-C8^SP0ydl+V5}d-VaaH%kT7YB#+~!|1*y>l>a>pBf^%b zYn!&zq^pyZ*t}|Ty9TT6%k=R%?>U}kj^faf!4Tt73%1c?K9i(z^WuZ3Y{RPwEdV)_Lj5`{1N^{Bk(xOWun5zKB{wfbLcgH#7yzMx=sD`##?O+(>dz0;-oPkp z)6&DWzymOm&1rnPlEf(EF(1Ft`_R|Y(L`qrQ7!!eEUZ-wobt&K+W?o*(aZHnCoY^1 z0=MmYUIbBSq(aO?ra4VPVcTN=Yj` zjGM~Ax9}akAx3jrPff(oid$8zPkXB9)l^%nOw2H&irF+R`vG>rSA@Rzq-+)EYd>(B z>vz7ZL{|LFDCBug%ry=Hgy8Qb?QPgC{iQ-O$!yTy#y1sC_*)mHMD(@q_5XoG?nJ*F zTvgZ!C7iqW7$^cj|QDEAcwPZo!jgyF{;AR)^UlWl#A2=PZU9& zJK329@f@*p^7`{ii*Sh_&xn?#7&XPnpt|L6-c8y-KIyKi6lUk@H8(Gn5K9uRK zj0UMNrQl<8xH<~HxS{Bg{`TC(_ubCV-a6((rM>w@i1tZup4XRexMm5;`Hl_+prf5< zUC}o^wbQO{-R_a@-ca3lIj*xT!;am55=%8;Sx#)_C}`&>@;X0+F`V)lDo+rkdWM4j z%gntmxpZ=X3kqa&tV!Ly$G)`Q17$>xRjVG>+}BSb)o!m^04^g~rlcvYoiRCPhh6pw&Vo6wP(pAf17r%Hw%wOynJg~u`LFgq9OAH%pjKPIH z#%|?EQA2wOrENT>j`rCRz=%vWBRR9u?omt$WT(C1z}CFj;#)p!j7`)YIKctUVx@qQ z3KXn!ixf_qTZp8s9I`{Ik0b4xgIGA6H z)Kv!jvL5x^jFyAla!+;Dyx3bAS20IaC!qnBM}Fm8I@o7Qng7HYUi72PK7Y-kFT<#P z3nKAkPYf9J#pag{;uIa0^A)_u1|G%zkDZ>6IE^l~i&dsp)ANC9FJaEjv zK@}N00*Mn&t3HUfDR)$UAMLSMb@T@@};tt8y&OA;ZM=S@<~NOD>cwTr837?;%(b6iy{?~zdjY7ldyVd*tp zc4QK`k2$LJEb-};_DYV%IIQ0)RWxLlIvvG$4*4x4p0ezQoVVDBdQPcBt#w|bP4?Al zUh708Xof&A8M9tn9l2rZFx_dIjL&c#@#2`dDHrnAVhUFHQ}B{X=pubSa0#D5Si-9lORAr;>S&1&k^ z4zQL#0$Nz(A0qANf-@Sw+*~O*Y-F)NSLU!P7$aBhqszv0j|9GR@X;fV1B%R&VbY9+ zAuXw7xfpWyzFZ(h48eY+6cT({6MutAEAhp0VI11p@hz*dL&nVa6d&cuOY3#2nDgG8 zV)NNkr?tV0kp^Hpi6-YO5yiWTFGRn3q;X_5`kL0(VmvCfe&O=$ocCTIUmYoMU|r&$ zI6Y%W7`&-saV<{@l!_f2q?F~-#V&b%6pIc@Ts@}?M)Q5Lx|hzYp4#$5Bzah( ztZ2qcjk7_omGF0R(oRJXasJoJRPk(0+FvysCPjGJ2Q?Y}R~oiD#?-`}w%0l>VBX`I z;#F%Ga(t<{t=^?Bx6Zery!rq!72~q;A#OaSO2crrqdka+Z4Yuqi7Rb7wbsv`oXd^*V-i|cJCNb5ZbMW*4V8iWw3r?1ah0u5=Lxz@r`0xt{zk7CY9*k&+V-0%@D4`7}@PKsb};@EtaMU zL{III;4KQ|>?S>pwBpP-KTXdBPEOF`Mmn&>l?`zG?rz-BQ3RPOll3H zqj03u%#{Rb=y1qFEFy-N&4j}4o~3It`?&m5e&-o`~53c^8cQ ztBgwDh)OQ4xNu8AOAs{&@FxKbZv1Mg7!bo8h9*wNdVy`Um;(S(WMv0#M#Tv1$}pyz z?(~8z4H#w$Q;N?CsYIFaUZ{u;#D<7~O_)V#KI$n%{w%#7v6~_B68h+V?a;d3(PBvfaRo~@4p;PUj%TR z)JeX9X@LWZERW-+FcA+0B1m+mV;xR3@8Ss`5Mvq7#MAI|C99ajt45w??+VY`E-x87 z@b2SIhP`7xKykwEgL5+KzUZB7+SY8e<(p8ri9A2DwejsBEVPaDYl5@%{mJnx zQ(kATIMcL8DXbuqt$bfEn8TAy%Sn$2aD3m&}G;v~97>qSUM`E%NL0K^R7~({vWmtI<16O-O>s zGZER-z2RS7uH|@Vf^I1I95WY~{R1K>YZ&@cSK8F)V{SjQj5(?Z?ew{}%HOM70 zEVv|zg$O3^J(6EkvgI)p4z)!JqbdrDlpZ{lD7>s$8?hA{@x=*}iv*Hd$*`QO@J$)? zSgX_mpj6>ZlWSK^#y<(Y2uQ_M4vgXmA4cyWJh4quQO7xnn-3BN0HRwf&jjK$jXW^? zw6%ocgTVSG`A`eO{`4Zk3s`1z6GV#HQAx7aLNdrMGZqfLRPdcg)(Wk0!!q-AMX}!b zvmaGaaa7dJF>kRp)a5<&X&6qIRm;xHC=}F+_9V=kGm&Fg5|KY~yFCz&mk{X3&!+v5 zCPXvSUD$gw)cG zhzi#>GHBR|`%(;@Jaatt^*dL!z}rH}QP1`y$|E&Y-Dfp6Lv=9%5V2-avnX`y8!-AL zsd+cG{_1p%0#g-IE9`*tD$NZ|At?n)^*;G6v|2`>_;B|_-~c)*<15nHX@#+DtUWMw z%{NG>R}3L05L%>EKguHO*!dun>8_ns~o(nP_ffQ zcgbUd&PNRNH9QD?bW8(8%W{|)N|o@PFBP=G7)s=|wjoqALen!H$GFVZuYn8^R*br? z*L7QyFs7JXJQD*Mi*n%@vt}liR4sgOg(~ezBL@^9ysaN-*ME8U%^QcgdQ7!hjL~-u zbVGLEWOIXNH1B96+b0a-=#{L3j|S~n-wIDHeUzOg3u_qHe<<+1IU-MtQEenivSFhz zb2mbq^Z3dUQE`loKk^|BwUUaIzW*2lh;>sv)s+0|eM!;%7xT+lnZanago%Shc+<>=ob~K?qaw!*$dSr*(qc; z4|?rsDgXd&u{;15JUtX=b=2ugQapqoZdLUoqy1ThzgZQb$SEk$-R-n`2lyGQ8~BR|wPX8xk^-S}lf`8!p3sx_RJe zfE2

    ly6GOX$5Q5~SF4de*WYO>g2x(Z1;9zhu!w@t7*Y6X~SRMzJ~hIMMzrEae1l zJw!s#UrDnogUX^aQ&o8ZHBlKv1{x@Hk#M*ZR&bO{7N3+EJyuAY5Lf(-@>sz3`=Ytr zijUUxS=}S3nL4xqXNrShZEb0@Rgz3qFlWS|5+kt*M`cv4;o%hoG zyCG^6;eGoXW@~Gl(#CtTKXNrAf_1-@=&ZhuS9&ZKdbrbohJl(iom(-*AF2C~TNkht zFGSAuSfj_D_-B4O(Oj74S+*rIMtZh00Zg*NqMLx(v~y5~cdt|mNAG(Hf)s71_nUde zy>!{C2fLzn`JsBsR-0>-_4k-5MRh2H#GC_>*+MA#`xaFaXgFDE3uBlY6Us7Xy}5Ly z>433WbF^C0k@AnZxDJ9@YRQlguA<&Ci^YgA(%Bx;PJt$d0xBVk}Ft**XypUTZJv54~Of`z*rWNf{w=o5Z zXnr=`o*6AKv-KyLrQ%P49V{Sf6-LiX!RiDzviLvdbf25}z1+0KVXdQZ6~pOBkmDV} z2cAA;xf0q=PoREzDqg8>*Oiq8#d$bVMp0|$ymi*RQixq%+?HYQIvHpjB}$2Lbl%;6 z+&P(4n^&JFt=7dSl}0@cqij5z97E7^G=Wg@x4a!80DE`fdwZ`F*$2UO zw~@FrLDrFL$5p_U?;EjIz2(R3zevXwMq;+hyYoLg(50OG(cFI(!kHgb-MQzICm2{K zC=J^?S6#!~6(Rn=IUO5#l~8rNZ({ZfkYCN6G-m|;6Ijt-$7%5)$3dI*7;Sb1=m=*e zUj62ohxLL00DpiWfEXkm5e0+6p-`Ai4ha5*!N5^CBlZsxf&k+%-~=!M8jr=GQRsvw zD-Mi7B_IiGo)IUIM<9}UT%r#*lY%6VxIDst2bw}(lqjVJBS(i&ZBs09fsGT)Y;8afn%#krM79UZs87*LI9EKl~xl&kyGQ+DU_1gB$MCe zm8f_(sFi5E*hZcOO-xknJHLdNx;2 z+OR>u)_5c9i>}ys@<0pakBMW)U$`5n-*Q3J!{TXrz4OH5KC6?UygLrkKmx0&^V;tq zi@QR|An!x2=fLo*ME|r+gUW&#$U5$!uI-Zg?kH^H?-4|es=9sq>@r-&r82)(d0@e4K5 z%R?f*^h}W+%<}_4`!dc;((S#jo3eza@Jr!J%`2kp%rVid?&|;$eDe&d&U0MlJBe%? zCbG0U!pl?b6x||Blf4;PKhNVkCQ$QSWj;PrrFPZ5bc{->Q_vzsWXn(6N|H_X9MfD^ zQ%#LL)JQuyYBz8t8)85deO)qC@l#oC*mZ4}O}kY~GiBURtkTe^b<%HbTK7#d*Q3YH z#)IGN#P>=)vrA^zUh1Thhp-dOffrShH78Ikc+Le^uMw?rh+vYo36kD$q+-Ka$aYUL zK$mruI?R(oJzY=A?17lmR$Z#m$nVvyf@ij7YnC#}yEzU32gA8ZU3j`lU%v??yD-wI zKobwl*Okp4QOeY^$1&MhWnc*bLR5>=CmKQ%$t4hmU{}J6Dw6G&a)HHFA!% zxmTH7FKl8uf<3{#TwU#k=(j!JlH3`l=SyR79n{Nc5@m5a#}`t;yuo(1lNdYsBt~$~Lv>WFH;S^ATYP(1>+h)MUfoNI1@J! z-Me0J@dg$-0>=N`LbGmc?nlUvt$fvJxymgjc9}vM+Y&&G?=46CA=PPhGG{ln9B8LOQ~ekh^iDhP}|X~ zC605(WX5>`M&UZhE3&Yzu%!nNp+p*GQ}O!Dqn`1pTFr;Z)`G=oN@(dEBr(*w2_2;b z020hJUXxA8p_rV?B0C|VuSyt8bw>#y96dd(mTFdp)LtHx%``}+Z^+pXCg_XragWK@ zE*9c{TU!i0wLYfON}!CYTT_e^b_c>{vjib4+l$lDia~g0@?`V+jxDa9R6|m0iW;e| zwOS9(1_@l4DFkOI$}i7{?z|vHid*dN%UGG26JIjfrBDuFNYYM-APel6BzdN*sCbrX zgtT;qu1rd3Dr=UjWvXxrfKhu7C=`9Gv@!XyTNaR>ilj?^N*>TT8s6$IQk-<8isiiK z7!0wEMi<|G^|bi zaP$?rsQL>)$Z}JA)Wp#;N92_4HB6{5IYY`^btb3nNRJanwy3#s;p`OZLiAl!-dto= zB%ud~lA|EME7d>YgxE6>Ii|aqVQ6S-x~*vey}8JzY_9H7p|cu*UdtVjvpn~Bwjv5L z6oD$&dlYlfk+Z^@e6#EFolh@oJ002xjIH#`t8@Pd!~3GHlsnR)vNHPRDNB3t#W%aG zhb6(Rm7|=+V{envlw1rUO`;3iXii3a>OC5Eu%dafv>BowGP?t#HZFI!K0dc1TMsDB zf!DhWXV%oKr1Rw-%C?>QO?8(==(Whz==JFmeLa*XtUkbUc5hhvvi;su`Q0_L>d@>< zJFA>9v#9%QtBT<6Z;J1L`_cT;h=VC=9yO?v|5VqlT`lr!0^0i0pxFwKa97<)!Ffk+ z?rOlCmKv$F)HhA%^D7`oJymJ^mH^yq2?aP+ZAcrv@9P$mNF9_Dzvfo(V3vn?@J%1m zc?v@$&GCUYfzh||{U&Ic`Fr#W0>Y?QeD7{=oh&ir>0L{Xa0Q1saDC#*#3Iuo9+Nny z33yhLwAWANZLkr%_sdh$j`e2Os{1yOuD}BjAtZZX7#^3~SLTP?b6uDBRnoq!QdD;p zVLkcvn6D09Tc`*F1=ZIn@g08X_6;AITmA{Gq$Wq5tFs~s?rZOkACd8!yx6S{-=cQD z`s=*~uy*kzvuyLCEfNl`2|80x_#0nB)XB26Rjuya&9PP4^B(qH^X~Jk)$Uw#*6@)a z@YajF`wg*3eJ8yjAbI75fEAtp^#V9nw=b? zOdzt^q`pr?p~fp!2>lXwK#$L*Q0TQzegK+R=Co@(wxuMT#bvY`jmpnzw^^p}SKNLj zMX|=MwYhW(y?OvrDRIh77L@{f*&tW?#v&m&noDStDU{KQH2hk? zFK*&x6+!V7eELBPtOCM1scWYj%JVxWyUSA)F9OU{3r``$uLDs#A_5Zjg*2`1X5VY}~h@w)F1#NLRG3~i8EZ{}UQ6^N~ zdq>!lR0h`7w!HS_TkS=00$X+s&b~1T#9?hMSZxn>)=uJEOV%^3wT;D8#O+E(Z=ETS zI#2B3T)nTJErGI(L!p+SSF&)X=M}VPW!RFED_!7{W7%DLp$sM;cj0XYr7P%D)rhrk6b$WQIJtdo zp=g@5D?>XkE$vKWX~Pv}wo;A`#8Q~dUdEtCdYI%WnvOlcXq5cu)ALe;ke09dZCOY+ zHU<+n^L%A8j!>4ISE_40b%iJKcV|P-P#cx0&%wCt$$RhEephwi+XY93Yn$f%giLqU zs@ZoK8$8_k-CsfMaEpyO?Kho;I|i`Qo-m31c4>d;t{B}wHFgR&>I$yZyF zHcb(>Jf<4{ScDimk3r_S0?z~+i8(%L@kF0A{>I*vCR9qf?zM<#0H1o=ZtguqAGc&$ znj>6XaD{H9$O`$`gdkTi1(ckDpwq_uMPR${h;q*e{E zHjf10^JrSmo*%pA*$~kzPm8Y#FF)3k1&uTbS}y?TsPvw{jg)I;F*&W8<@Nv>HKBi{QEXi{yFmUUE(r1UXxE3I&}=mRL8oT_552$#qB(n-#o zXhl*j^eE^0veD~^Hw1DLuEXa4C33`EwGcoN~RZtoG4KchfO_ELW*-3lzGf3fF*&+6_%x+ zqQcOHP6biJ1P#MTda;zEdHOUtZ9l7VsvB*D2a@4}>6^SOKR3+u4N<+WXf*#78x z!aAg#uSnNq?<9U)!A+fkI(O|zCxmy%GEujde7A1t<^Q}u0+f*ooLS_If^+c()1>r2 zfzd5}uXk?>R9tNo@RVtak3tkuA~{#dJdwlk+ZRoJA86IFGCFaz_)NLYWaSG`#u(vv zV!Ae?vSIMemHKwI#^B!1$L zV7IM~ovua7usK@jES%8Q^ql$UE(&U8dLF}0nbjHu6v*(Em%CIBCCqB&-cO8wJ9OFQ zk~wupPlp9~c){hRB@&3^O^+A4Z*k<0DO%yJ6Uo(i)$O{f+1PsGXlxpR5u(s94`rMo+JGuk;3Uf%#W2hl`p;@4LG$v?yBj}$o`HXb;ustLri$h0Q@W_#war2%${uT zl+!DI{|!k2j99u&sMv=-=F6hA>sDxun14@NyKUnAP71-zM&Afx!-X74?+T>wc=^r5 zJgH7YrT#>yIE)D5_ih9?Fi^1Wl=UPm|L|PwtzuS>YMQQUkgz)fCv5_+w$RC{yQ2{0 zgv7;XLf3?^1P9i~ZYu*0j*d{GmG97i=3KFlO8Lq>Ebc!CXj2Hu+SAMeX%I@d1Xk9_ zu#GHMf2>yyPhNy)g$M1E4dlSAYe0GI()z2I|E>8AC+?NbEbfC4;%~UXaV-y|Uk4E~ zCG5%~u=NRQ2G-^V=`iAWP=dBYxZMYGS!-fCaY1LXvg5Sw45Ut{GEDW!3?-J^+%ED;Q=d~3l zO&XD{6Uy*FXi(y8e9ajkgoW)SM{&6N&Yd< za@B33vky-kOP424OsvpqSdL=Wk{V2Ba-h$~=TB0KkdZ6RbhPn9DNt&yEhxT@PL|E| zkg^oOjn^a6=us-3sRUIP>@6?yD$>wKbLoo-=RWmmR+_A$-jHl9Qq3oedeiT(5UF(d z(CZ>_ls2bM!748;&VLT8ZxnBjENN{maw2kY<~0z-6GAwpE(m=v2=yy?%`M`TahSjc zdUGt{2#E^RQw+>ffglLR%rXMaa+?9k@WjZ*SW7mB<+U3}WiC;TI8IQXELM!FF)iiT z{Q`)SvPNsN`oj_4iX+n?Z1(-m>`LRRk}=eck%&ccq-^n@19O0L@^G=_2HxzZc`=O! zl73dr#-=0Sz*5++lY)3kzZ3}yq%Wwx&ALw0K@HDc81aIY#<*dl@fv89deH$ma1h~% zD4<2$TT9;-Zf=gxcxZD*{w-M?uhMMCPeasWL}_Bd>{j)3Aq}n2yHCum&7ide^zjr3 z>`0*P59Hm*pw%+d=fW zEHdLhaz6LZh>}z2VM#!~j@Y<_Jv}npLgk4c5njsFIU}%api5T`QGq7VrrK*9RFE7w zjb3lWo=NF75G9C`CwRY&?&&hLdIQ?gs089^aLUnG0e3n1(o7ml&wB$>b>$r+r~Fu%Iga2#zl1rD{U&ZGs^kU^)>JV z5$hzlmDgCzp-fC8UkQ@PEeg>Rc*_&k&T;)E5SuWju(K)893+`c6(K_I`HSBd<(6Ffu zb1?Rx>eb;TGmlQyYilU&TB1KTZ)j;^a+D;Vr6pf$v%N`nCoq-|=Moe&{nEh2H1xo;vt-sXxl3a7c3W`B$7WOcK__Wl z@Klht0Z^#pJCBP8EijlbTPEWP6_WzVvQ;wgvh|JYVlMG0YKZifL0`2ZeQE_!r>HFV z8lN&NY4wX&^_5ZgDG}9|RdEXVa+t9ZopyEPH1j!T(M=+xdi8ZK@|Bq81rqmE@{Y&@ zSq?8Tt-nhRVdQ2n@MhJMy%Vq=^$>dtr(GXOBSzN{uk;s0P`6_h4@Q@aw3SW#H*7GY*|TSM#fH}uDROHU>@u|C%)0+&*p^qF^M*;;Mt_%?NaI1PyeO4}=c zLakj=vUf<9^(IoeLfA$iSBlDIUdm>K-)Q{%)S{Kn$wJPP8h5iT6yF}tQdYJM$T;6- zbO4!i+F~>ZG8nsHGgVcV+WpV@bZ9kzHkN%=^LtRCVG%hfmPD;>j;8G}J*d|gbcZok zzlSs|&ev$|Hf?F`_UAKIWO#*lO%(2TpN&}iY;tO`*U?3eE`^m1O$iFgX;Vb45o7_sRUFy;1(M?);^HN&ug)#Lb&-!&b@F;Q2?|0%QkUR$+cxsX3sKP zmJH0H@N_Vf#gwye5tu`aSE~(nSo^evr8aGlxT%#eY`=ma-4)6pR{@?e>5%u5ob}Y1 zq)VLd-89W(q-ytwc~5u_vpt!cjj$1f`AlK2)X3SDkQwzI8SO7?`yLu+pp(CP*zK!0 zm3-R7@t_tkkQS1UR!{kOsT!?mcx<0ct$&(7G&&6rly{|Au^}-jrY`T4Mu{NWv>-^< zI;v9h7haV#j8g<=-5RAitOhUW*E`5irp)Bq)J{aKl63n!e)WRbvLMPfkvw?zF10s2 z$qNj#)vPv3^!THnjmb>$in3&9k;Z$O+N9Ja)|d7DVO5OjbZ$GDWpf%3JT1=%YVWnl zt!4W7{YJTXw>(C8O?}zbH?!xNDbB8<)Vii0ImEEIkkI)Wn}OD;xxzW00t&NapSoC+ z7}@iS^I3ZKH+Q?6llEgX$kV+`m5=k#+0b6Lch#zo4X!QUOD&sW)cBP8ooIKQ+2e{0Bp(Ql%+7|5)o4pPU{s z8E-EaIIh(%pi@<3QF+>pdh;`@ z+vTA-*}qN;WzFNB6Om9an|B#9wQFwcN~wi|t55x6)f1S=IKi6_RaT7WqIZ3viyS_2 zXF(go1TH?~yo_+HcP5g9+A|C zwIA5s2E2jjWhdF()tVcYrxk0Z-HnbK?;q%5znY~{5Hp^=XQGnwi_u}0t8={d-2zdO ziq@s@Y7~yu+uC{kBGviWJP{nxPs2L?)wvR)vM_4$^B10?gzXRIeJc-+|GoBHfGWSn z?5S?6)@u*<=DhzgO2(csx zhD77Cc`O=D7L7=yak*4V9|Mm~KoJ>~T0`LV3BzYVy7>nfGT&o ztX@4+xlHO6I855(TC2h1)yh?dzmK$6=J@D#YS)#(V`bHO{p&$Vm*8^uh>#-5orBrn zbqp47Rgum}Z@5ZC;(esgYpeE}O#-_YoL2QZY~{Z>l%(@DT7FLpkru;gdE5JEQop&? zZ24Lk9>4*tfwSPxm^SifsK$7s{ti78*Ot{~dp~HFECC+3D(MQK=`D(yrvET+cmV!9 z%8Tf{txB87#HkJ=wxlKStQ7qt%3DhCAnUr4@!*pDFz`UoL~P$8Oq78h zxNY1n*0@W9V-GWoQXwkGa}wCdKT_&m{!Qo{SuG;be7u*Z4`K#;zz=M71j=x1sI@v0 z^z#s@>6_--%Q39uHlk8Htu44vEY%uKbhMtNMy>0<-B9f;J5f-~?D*V1Xy(T%RYK>>Y&-8y*7V#@LbwZ4ZB#!nO;rT6btOAJCUN|0R;%*uWaPs(v@Ha= z&jib2OODl%a3a!jsWV$l?Fm*%a{RjzBFV+yaohBDDL}y}#Jem(HubRL*VRQ449AjI z0bQ+^mG>|~Go62aG*f0DgFlbrj|72`b11(#vyc6)k|BD zV^O^5q~+kuu8Ntzik>Z&(erYU*(nd@%8=>E z^zElF_Eo=`XwXZ^pF)>q8HwYFmE}Y^(fwbxJ5l8k6I=1TdAHa(-Gzcl2sVjmHM>>+ zh30e;KN`SJ4RJ5$`$T_4M!WKjEz(hj$-Hp@Qb4W0j*eX|!!~5Sa`6{N#lAij)=!;I zTx&4xSF-ixTGa`}q}Im#jbSauTSaHg^8DWw4ABn-#kIqH)LVky+r)nm>Amg(i}VoG zebr$ZGfSINX~gWm=}~TF59M2@t9)=?9Z|b-)*a)-^o=cz%o7>2*LTUX zrhYzO@0<7jyxA(vJSp8TGRJghQz5NZE=`9xH&(!!6D)Y_d6pwoGUW*R+$!gha*W~( z)0eCPg3c(6HUm07AbcERPPL&mHln%|t50K3-ItNz6hW6Nc~cNEEW-t!d>^_YCGE}u zl$ZkdATi*5${>s)k_Mv7sx3&$Y4F1r-wfh$+E+>K^|-Xq;GHr-Z}DKEDKe)6SA!Xi zP#!R~2$37$Gzd&_m4lh*O6cEv?nbU+0UVZP6b$RXM60noFDIan+nVKwu~|Yd9F;uWV0L(`Qj~)wX zhzscBF2!8<7ZOl>3)T%!1VB;`Bp6&SrDsm{sM;gpUq&i&JE%tHy=1bUo09@%#q+@p zr<3nxguQZ*c-su;Je_Be$<{S?GPz?*RHmh|+MFi>$5B(yqs+=p8rb~2rF_|(Fh-P> zdS@IIjQw2?xTd}a=F8~bC|GWyLgo{Jh`wSJW%i7!THn)8SX zz4*CtW9%arqF?$wep<@qb#gDm+wHg+wEg z;$czxBhV-KL6BiMPb?0hnxyk!pj93?PpWpV(~{g``(^+LhQv-NtW*p9390kaURO6) zElHgKqpXI)M0i;KAac2uFtq+5hnowbY>zoLMcWpr11hFG$yl_SRM}|#Z%pV3HL3nH zTRV?5;Unm>S5Z_g*{3y)QBY39G7!U~Z(OV^vq-n;=pDvaARv9(xK(`eG{~m6$qnQ| zCH^8V$tzJR`wELue&@w&Rd`=R@`&uQ`mUAPV$%H1l^AN@$9Z>CaH8y>7Sh1C+r0%Z zW9Y-=d2+fdaVpUr%`?v)?L>QA{3DaGde~srzjl&E>uWHAb4`TUNRn$+eo3qGD+&qg}st8G+4~H?dM9h33#fxYRfiy ziq|}&a3-7OwRzrZEH*snFYDB3C&6_t%b9LVzEZMC)d^BVQ zc=eg(V*|&W>SH1)PhGr3#J6mwMy$}f)m>{UnImNr-j^}x%H5ot@njw7(bDv*-sHZI z5MkuO#9wCM+n11^F&Du0#Vq5ER(`UgUcc`W<3ilD;VC7xD(yQA-=|k$mi!e`ZnH>~ zn~G;--A#cyDAiz$=-Mw8skHSr$G^Q&LM;?lX7}>1za9?IdHubWQeY!&RY02X9XRLk8YBv^Ytt`f0yB@$A9|H25w{0NH z8Hw?7=T|MO(v({1Ve8H( zt#_{mgLNXF>^yTF>4QR~Ty*_AT-9LlJi0rya|u9QMN?iEXWTRzlDCYBiR)J3t9k>X zoveeOVoP;{2DA^&tKQjXKV=fWB+I)IU2z?&k$0F;~)>v>)ohdbxb|KlAK1(bOke z{Kj)-V9L9rm%IB!J9wlz;V-$WY#>RQB=UN=lhd@)rk|77KN15q!$LPYI5XRkzmar6 zQ*pqnZ#NN*Jc?vI!^yzQoIvyEmJ`1&+jqJ%;JhUH0|h)g@~-OFs4Ne{3vjo&A~o5?3;TJfORl|2DJDYQ zzo3aS%PuUsxFdtw3PD9Xa`&S{yF)|UIttLVlaW8!ry8k@xKt+}dmy3$j69+FE+Q*1 zd;W`4t+e}M7n*1fgF2!z`>FHPrhEUkOH>GyJv3=A5ecU{L`$c$_cvQbt%G8}s_-bZ z2f$njKT~(AIblBoroCg;7W-r^12ZmCxs)Q2v$Cea^D(z0XhBQSFi7DynO!%uQ=JQ8 zH=7YK`+~5U!9Uv>Km&Cq>0mgEBejY2Ak)UUToXZZ)<5$@Izq`i+G4}pDmy|um3jM* z;pjj_YpSdxt2s%ZyNyRfo1Qsxi~K1IV5l%)&WEBp$Ao7qoN^C|!l67H!z_g#1JXg` zxxb31MyxW$bJfNK9kuKjuEUZw86?Fs#X)0ex_dzubLBlagU9glL%OI#VR^iKF|Zp! ztg+6JW6%+EVK<2zq6BlNfg85mlDfQIK|{4f`Q}5bNs5{rp6H|+a&(x=jj#+6r9(Q9 ziakhNhr;O96R?A~;;*qY5K4>X$cbSN6N;szcdJ}~2?%2!#jT-4BouB8szFNR zJ|nZnu0$EV+g!Qxu%^Kut27HI(Qbnuf{yLKx-zy8m38caoDMU

    C<$ABX#`7*!y{S3#jEwvljNEj_f4~x*JD3=4i-E>x?-*P{n^*9 zBlpC=tm0PUkG!gZFRNMxleVmGy{m$?*MRG$*lRd%C)2_!XrZe}E;tDSXDtWlB5721 z`U)X+RO~JURqWgENnH(D?pD~aZ`lYv<vlkBIv96aj2m64mI^g#bWjr^?a9*1*B6i9V#_~QfK`EA z{_&xVQr+^=YS%JPx1x!yL)L=jQ?saTJgHo-??gyhBdrN zcO|6lsn|OGTo9EnA-R|k+c;iRtSp1swA%Yp2_D0IR9bdC3MhUVkSjWfjbA_VrftZ_ zwT5M{A{dD|6nYwG%BLW$-0LWt*uCB+ybM^w8`oO892Vkbk6ITouBIa>uMxE~$S)!P z^jr|Q$4I;iLElZ;%GHt*Nj+r>f5`q@=Tqr$_2-q=9?P@U>)_)>5HO~G9Druv(Vbv( z)AZ2ZC763W2@`Lt757qwX&#fBi8dx(Vjnf{tRnnqQ6aI*4nuBbvCFT0xUw*Y8vY?(BZ5-qH$TB~_+Mh*j zn?Aa1JG>vN`$%9GB(CSHrg)F#5+hgV^XXm|pC=&$aB*60w%m5V6&6FhNXpouz6b z@kv^k-H2s>>nheyrJCuPyumMx5#;acz_(vD6hNzz3>J8EF#uX4rQ)%*PhU$6q8b_# zP(~Ld{Uf&-ntFi!@-VU?UDVz?WHdU+(>x00c6*oIFL)stb@OK|7kwFz{_cE_i);ke zGKQI6*PlEJy7_>*bamzQ2uPH)_J3p1qZMaCe9e;av~^nhb`($as&o6_M$;waJ6u9fizU9IRo_O!8FjV(U<(yIIqxCQC>_)_ zwvYD>wS_Z+9;(KM-l`F@t;4<^>g`?W z#hLs(Yd-Ui?H{gA+4<2z0G8D9@&VK$SNN+r>`z&2ka|#l~76QwckDGkMN%HMHz_2$brK6!&12trG7s zn_<*2*tY6C?R5(tFMDKq!K#t1GW$n=UviwTwEQ{*u>!(n-w^Q)Ez~8v)Wti08EzgG zZ9`VTSooYbe>yh^SxQV12A9^o+*D)h6`EfL(>8SURemS#VQHgt0Wof#OW5xpFEfo^ zW-)Y=H#PU0us}Y|`|?uTv$3ZduW?I^5c*ymGpkJdrivD^_)eX8XzfHJg8ZT-kTJIo zLfzb1KuGi671`PN4+h@vjjFp~Ez?TM`M1u5>VS=9zMA*YY~Pt@y4U}Mh2R-A@yF}w z{NBUbD>L{((JWqKZ5)Ya0)+WyeEUh1g@k(!Ms^t`V0>j;FKmP3!J=1rxQs@3%_e9y)K1SVqD9=!?O11^naObw z;}^&d-^rC8-L_y+MCL}y>AoNTr5w8A>FLfEMcog2qg#tFc-GwMA!lvj+by%A|0nK| zCT8#y2gm;K1f;g$pFg5@d@*K%psQ4kA(iJF$EnNem#F?vP`3U|NAhct8Kb{t684-D z`N3c}F&<=zjlISYU9E>|wY96?@*PNldd41%O}#{#r0E&R>5Map>2F~uor*^6AWV3= zXB1xNw=RS6lY^`T`es1p%U*)`{}zb)MhWJZF0elW7|L^c(y^w2N_*v@tmb+a1XoFR z52S-R?YmVHQNLh& zwKd?iT6X)bbM4-D)Xz{9vobPjzc5RC64 zaXu_a3&<+9;KjUU38(uFoV$aq@ymqy>7m(BFJlRR#TLcWO-hEUtiN>VV)zBe0~-C$ z80_2C4vV1(+Rw?7KzSZ7hk{sq?{+!L@<`E34CmdfjJ6TM1Q|~4nubO#JiI7yvFt*C zoXEhc5~T62H}_rrs4%WPqt%~owDRv1(>!aEI7zbmcR}RHPrghqktjbFjU*p& zTOL}|2GS@?MHr;5Y3+=S3I=C)SI-;mwfrmqVyLsLy!Od*S<74Ucl z6?zQ@hj%gltu2*lV$S~S0yn=#|AN|4eIfKL}sM%DMuC!5T z{?(*V7FvK@)S;PU&+A7yEZ3rksj||Ove;wwvjim*@_pNW(_-xQ%8XddiQ70|L2=K8 zzAGICG%0Y_pBHKsvWZSxT2_|-l@A<_Ns$yiz9H$*^YQhJ)6X54m``hV%`2}omX(gv z1SC6`Mq7g86Yz%KlwV;Lu?{k4@>;LkJF%1-cvgja7i51$Tw8Y3pJU06bFhgM!~W>M zIy`-;o`ib)3MtjydV}Q>s{2Bt__H|E_{Wsx_&4mmeIq7c!oLL@1}}SXi>wWq2mhYN zWIn-Kb2)*J6Q>qMb&cnrI|MVgc&ypS*Dpy)07w4baM-T3H`knJB5tbL&6g;dg9jn| z=&=e;$le&Em-lGgz}BBOR-IGC`39zOosCTxY0*Im)$xtSjmW8Aa8&CYl^s2B9MTgR zz2j9d`9J?l=YH)d1RPuVzU9dd(|a7);9t5JA_a26dtslN<2FrNtbJELyFwok^_Dc{ z9#8m<8jPOL*j91H$I5*E7HD!N-Y7)QKGn~zy~J2`)Qk}TDZKT4*#g-cZ?lS?duw*^ zP242G0&{SMrUDOrSHsby-q2j*Z(S{Jz7ML$|l=h zS{c2p>+z0xP|K5E*Yp=BdY0QDNVC$@bI;}(I4#EulWuP znP3V%n;hBjTdEYO(ATokXVmg6>?&$*D8|o)K;AFr(i*XYLfG9ff_BV&@T3{dsX|<_v zfc+2jjNZnu`+9N$CX+}6D2qA*(E5DCkss-GAq7C4Y1rxXKEC%9Zi{=scODt5S21Ub zatJvAJtJKkcRljrNjF6++;-(lJ|8!@bnV?Pz;W)BM!jAr#3knqevQdm-{4#OlLAzA zG@?@0{y|(n<=4GhV#D3@kPW-=_ty~%cqlZpT{Kn=bl0?2(A4hV)=6~CHp!U470fhf zLJM8c5=^*NV6>X~LG;5RI0{rF+^XI|Q&)NmunbtJ(@5KNwIkdgH zAxTCn7sfZ3D3B?#Sl0WKhLhvX7!qB(>EACq%CL$}mThMOmd)wpZk4GN%WOXa?C_!q z!F#azm;`pEpwh|UKWfP-#vpusto0v>B_g6lLi*8YHjvb*)mvf3d(=;EA#+W&ZKfIm zihh6l)9O=fL*ptLlT6H20lKJv;?NoPY}9l1(Ax331wjDV&>Ox7XDdZDVaaS;R;U zmcB?r&A9585F(@rEkhg$I~koD6R-k&kfPvwBZ=S zydc4-Vw>+oA0scV3&v1!eEQMwkVql~2ngibv9C8G=D+>Ur%0D%{P;ua{#K!%tRjz= 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�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ǽ};)80AS`Q&1FiOW^0!@StTTHkvPAFy@!Vgro* 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[Qy#>iFkpjIUs2 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

    h zi{crbO&wtkB^f;h&F~`)T+x#Ivy(d`{iViwZvjGjHS$RxUeT;S$mm^-;_c6T3p)bu zCHjPM!r4JQo$)6T@j!Y<8KUMsJPR3;!U%){4*nACX|q>Qg;z$kI2S%XEdR%ggIKz9 z>!H79dm6h(%_mN{^@+673Fzhr+b`DnDA(MQtGt0|MH9o}i!IvcTn32$-H-YS?bk>f zxWfxH5%?pOlLoA(M%W9V^9Y|BjfVl?6vsxX&uvBF?_SksvY<+peNnl53V+L1yU#q9 zuQb?pYUU`DHmps(d5qG%bnSh8lV&Q|FU?IBcaEEP?00U|J`dj!IAvJh`BrPPh+*|A zPreBNEi$=COW9w_#CgT_%H6%(v-iF^8Ef#YHe}vF}C@L?z=y}e+#6q6iX%!Sc zL|bW6?iBFa{{it>S`vB@p&-QZ3^UAYmevBQ3^L~ziR+PhS1ICpu6SsOxs;wN^_xNX zh`RqvK*>7CodO?R%Ui9Z^SL7@o-ctsDu_=Dc*=9=mziB{fO{|Zt_w_8pk3HO5J=3C zG%}o8Z-+Tc?~iwkox7|4G1X0aTtf>JJpB0I$!|^W>8(fZ+c4Vd28M_6Lf12|_yO9% zp0`(y-{F?*=okKgMY;4a_&yeDf;8I9a4Y)47kK)azB7sWtT4j8mh`{OFM*{2Gt#k= znHN+QhmUyf-^2f)a*sRl^}C80mYQx&v|%5>Ap^jdx(5Bi><$V+YfnCe;%0qw!`OKj ze$1cgs&%NT&@jKZ@Ir1i^X~RBjMIfi`sK!gge>Ks>c#al`#0!q($$H2SKmtTUvwwt zF1=Vtm((fKwrCcImYyX(6cRo!Z_QKWxRDS2CvTEzxA|rBxzVQ7e5SEy|7eC_;Il9D znkEf-v{CMK!fm0XD{>8!siv6>p-wV1il-=gC=3Rl6XOYkCqSbBmLPZ3O{xnw)#V8G zjG^kSQTL*0PyW(YGx;5K9{jzbO9F*EaOp&V3c>YR@8AUu%4EcNs>g(2^e`{oUve<3 zGxxEB_4td;rK&dMqx-)s*6oJa`I1#DlKaCN7p!W7AIX2pP5ac{8yX}x_qg%82XZ}$ zdpph{Lbkpr>s0jFR8G0fN`qr*=4pp=O*IBQ3%i*MK;eN&4KMk$h*MDbL?(sftY{P& zHxDm$c^Lzn^m=ym@w3%OQAkfMm8T_pz0ZLd(F*Xz|IPps(6rN$a*L5^ehrys|B<$> z3sw9p%Q%$bo@oeY?mJO zuGTpXq>tFVEc~u>>Z>Z;6@6PtQ!T`pwo7ao?j0?a%jKlt}+i;u^-cJpOb({%~ezH zpH6N3_moy5K!ADzyTyvqcuyoP;WGCgSNd1=cJN6J4vtd75hhkgyU^J;;X;C< zsESwz67T<>JO|%_4e9YZS{4mdS>6^GeR5jAl9V_2U2M#=CNNFz;$!*7P+q6#`w17M zV6SUx9<|b^TvH~u1YnIwnhIRR&av^@V#&dPqJ(7gw0yxEEA0CZ-znPe8A(U zefOqBmX%96KwdLgjFkEw1sr%&%2rnUAi+k3aq}4<{Ac)i+j&+zSIB>C4?uIAtH2DB z9^9waBiha@5%Zq#A9eA+KSK!@2~+1k`2buTLvnZb`rty+v8D?w34kttZ*6afOtvN$ zlv8K$z-FxP#s{6yPzE=UM*+YqySSe^ueb8(! zvh`bRMRSYl1gY(#z@*V%&o$SbOrSnMgo@FQAkb@x4a(Bh9q+$U?svxW158(8?4wJa zwS4T>SDNCJgRB1wu5G_F&X}C|=EmELJGOs9xM4QvTB2gmlZJehO2of>d8?Ond6k}X zvF3ZqgY%z%vy5W$sxJ!55vm-X1|{JXCnb0c3b@P?@%CQY_v&1tFIx`~9XnI?(Cw+& zk$wOVo!?hoh@yt>yzM#+52Qz<*k0-=5UunLF$}zs=X^yZ4 zm<-39s99K=B0~L7*4c5Ri)})RW}Y5~0Nk18cv9nPzRUwfc03u0v=zKhmvagYm}LL& z)Yz7j*w7;9N2@C*myT--4SXu(Ub_|^8uA^KvQg-t^o! z_F2Ls8917u_QZ+yfMv7g07%Wp*Wp|&72xdZUt$)V4{P*Soq8()_}F;M5+7(X#uZ(^5f zTRQTgT$;!9G70aX;2Q4I<6;=P|s%?@80Aa*SIJK6E}MmWyxnaPjC`ScvH_b zA2oe{3#|*l&(4r#Kxvo1t7jA`3?Cc|%t4~n(~q~ww!%TNX2GK$9*FP7Prh$bIII3{ zelFTw>YbT3P~(20FhBD>qH>Ngdc zJbsBspbj}c9-wQy+sbQ&wKWHdMORxYx3(yk=%KH3lJ%^zg`W7MzPvf@IEefsEn3r| z{+hg)Qn?|2Q*Hr~UoM*JDIvv~o}zNS|Jv*YLT;InVl}l$2}xa)=K-wFsgNP?zl?*c zUglea{U|-^visAMU*FcPN0=G?A@VkT-2fphFa^-?Z}d6I(?oWP$#db5v}b|9I}zs7 zY27)}v!tBz8&E(^=)5)V7M8(2Bbr9o27y-_;MUR2TYEpLt-IiTmfBa^akspvDH-j+8S6x7# z;Ks7*yM!&4W%l=u+2l2&pmC8Y6uKg{dDVFWRW$Mf8B1+!Vz?6U9*{ zL61EjuhhbnNWW#hWZOuUCZ~_4pQf0iS_@!MsCw0x?F&kNy;wJ$fn_sac(o1jI!Xz{ zmU2&Xy6w}U?Y9v``E+g3BXz|Y|1;%?+>%XqG4y~_Lzw8HoSJ$i9h88BNolTGsy8Gu znapL7;-V2SH*Pm-=o5CzYxRFL+bDln#&ClYCBhDQkc&A;FcAPKVK&A)XeLIXxpxaK zwSo^irvSF1rUs@Ok>Q!@FQK>4MBl`S!bE|fMX)-Ugk}-Ly$`dj#Fcs7axLLEM-4Gv zZWhWL!9ITH2ck#pXANjX_2zxYeOtR`5)VB}Uq0Ps_N`8Jd(xGH70s=-gwKuJ_ zJ(>xgv=#@Jn~{$+s7lXoF%G+xR~ZCP2!7*hp1I~#=EyEsPXc>R&Nx&<6p-*dp_r3w zw_o4m0-Kt&t>-PgC51AYVpW|~H}iCn>011HdQ3da1`c8lAe9UJuclm{?z3Ifd8CRLCMQERX?x@%5Ex0MwZ((M^D!rMAzF5KKIV>TkW~;uyr{m353>yG~ z)oplR=$Q)1C$hr*R@G`#i&#)hA0W$|@o?Do$+l4CjX_XF4UlbN6Lu(#{VMaFG7`56D>M0ifT*ma5s_dk*ClaLB=ku_m!jO9gLA!t>J-`Ujkc%DgvmVW2j44nG# z!9=wg0mv?f4K23hsV>_NXeh1#-|)KQKM@ZYyZaV%RMf5t#oYxE?R$yW>EG~9Vc?M+ zG>f?nYIoA0p$bKO0zbU#9|h8i-c?w_V>LCc@jobf5zKu{zXN9lmYnG)$B2uH8Ugpg zr8-xIyN2hiX!e|oEX4X|lgR^l-|ce!wO?ci9fwe@H=f(tZ6Pj}c!WYR< zwvOc9h+^uCC*>v4MI;A&0Q{D67266Dh z&@fiP4g+W41#j4ZOHFDl&>j+w^&aPj^@y28KG`X|*9MTwC8tnj*SSN~RN8zSN_Dp> zvWqg~6ah!9sSoYaByS5>Y@e6nb17GdqC1hulaPopH{t7Kjv z`7quRT1c}N){eoVQPK()@s%t`mU>7A%Z{8J$oZ_XWTaaiagXh&7TAJ{bUuYP=iatF z19p@3X&`!t<_t@ODkZ&y#i*@<-zFg+(8&pd{iY3Ql=pE+EfVnjf#U}|{fv~S709x8 z&khh2`!^gH{~3#FYx?H>V@IC=7oNDlaNUg zv*V;RDDf6b-59z4U10_ZfxLCpRXCPlH_%9YAz;g2NjTp135O zM}7>WUm&?cLLUvB;2tseDbixA+M%hjRX^p}AtQsZ6n3n*!}8^=os-D($g3f(=mSIg8)+`EChl40`N^D=m`_afyD1;NCY7$ZgX@idnWYn=5quHqHmY&L-Jby;0nH z$j=46{&qOgOvdB-N0V%}(%`<0MenkgVU;#YK1@^5Lbrk$>2s_0A}tC-n40TbzmsPhpMJe-`?zL_v<))FzZHYcYL#Z{RIGU=}PElF=5|Y@ZE<=%wi8 z>5KMT1w?hR9@UgR92(GCr1-TIGDFlesOukgde53VXKW9p?w0AmkRMetlsV?E*ju0< zIlI`BR1$V|Ewq8<4qMQCGeQ;Q>vg;jB5U&Ew!b(N&0)gaHcg~lgbPGdSRVcdMc!%; z*v8ExUNv2!1ytC+W!g=jK?&BKOpRw@@ABlAU2I?)niPihE&J^Mqv$OBntJ;%d^Tzu zHBvxg1&kh@;^=Nfz@jA#!l0B9!ZvD*ZWtX(ih!tNfHYDn`a`5dL_|PDK-8D_UpVJ{ z&htF?bA9h?9crbR7H^4AA~u>S2alL{TBN?*B$-S033)p4D#&V{S{+mO+e7so=?My* zG*#>WS_ims0CI5!G%HrV3-avOE1#1n(_#e#0XiOpcNRr%vzEcddV812w z0wday;jSI8mCM9$#tF-y{1T|H_uhif^`>tVEg(Pn`Q+ zLJA23JB^Z(V;;LS=Vkg4u(&!G!08rs}=UD zz1|0S-#Q1e3Sf7#P_}-KQe}G@|B%sA#TKP)%PR@qc-f(-r-PoET!Qj|6PsvL?nJ=-Uk(bkR>saE_k#;uO%a?!slja+lRh&pix7W4(OXMpU z+yndZL@6U}r9uDPv4eWlc|6>ClaA&edb~mKFN3&lv;)>1`rbaIYs+#j%qd0(G6)VZ zdQBYcp%l^-$p5<>ylu5Das&SFHRFxxw^eLBdCOJataT%qqw%2i)8{96&k)X!Nzc7U zha6g2pcXZQm*rw(02SJYOtdYs) zM|?S6eOxp@z{;$K|Bso05OcV%@8#>J*4J$0E5d-!UJglJ4eak`%mrv(RPp7>;6Q@H z6-P6s_jnEgY9dMUdt$DJJ_^Nr-o?>^h5sw+zx1i@{nZH%rZrbKSs7+{c*sXTZ(+Ec z%(*Bq?mG^L60eDi$BkT|Y%-o;|90M8{E%Wq2PpgzzrfjNy{5wt zK*vl#oHT{NzGb8qGrZR9>M#7$EZP#-cIOZHr;uet5AAH*IJumBiJ=Qy>o|FyNH_?9 z+C|vEC`)fo=*oyVGl&4n z>g$0p_BQZ2BVdt9_BZ%!Z2_6H@T?FB)FNGD^E(1c+(Xm<35vb)h9XKgg0 z^oBivJB5YzdAXfn(#(f#pel{^>szNO>4u2r0NWDPpu$gHj>5B4>hFF)6>ww!^V1sS zfh*y#v@a`NlsS$?PoiM+GDD%!A0@e$IdU3@YJuEdrKru8_F)de5<`pM;33t3ADhn} zL!;=RT63d`k23Ip-PKOB1Kww8OvC%IhMIbg%BHIu;W^#)7a(8|g53p>aQLyx)bCG~ zgqnR}4{pP<<5`{ABt{xUlC`gHxR)Db$WIhD zq=rE%t6btHOG;mNTR~dkg*@o$^_`!(ZGa&zRT2g++8P{H;Tj?M`)b^me-#urqRxGt zw-q%LN%#g3F)Bl2wYST%TLrqKW0lUIv0*LS_%A}QTmbc-?FE|wVwURmhDb6-W(W+f zfcV-3Y1SKlP`5u=*8lWj#D=5H!2iDCR^wapZN-y9r-f+0*VpYoN;don{3)sK>rSR^ z*$B0bw2j=FuG9>@8BVKnXN_(RMzhifQlCN&J#K~#0Qw|9(_y{u8~&LM)>#k`K;%2i z?bQfV0pB2V%V$+&J(()onrNBzo$`B)G*&Mc2E5AUqc>QTF8r7~~=R$>+Qs zICNJI>)4uvaN5voUr^=ENdibr@RGMSChBk(RW@g^f_9A0(Ahgo-OPYBBUd8;TJiDX zn_=st%F3|j+w9(LAuBmmXfzT;dR)j#h@~R%N4im#W zGjrqNfLUE7A|c;2XLZ+{ZHm>nvM2t9q<#4tre|scSu5>6C<88wJq%j_jOSB(f~DsL zg+Nak%1>5P$BKKB30x>%IDfULwuApmq)!%s%RV>cz^b~qOU_Yb%yPs$QZn`eL6y~u z06%a@C!tQSR-PI1X9+h&ekoL4w=`@1fkB9pGQmRn5YHH+#xomOLHsLo;YWd!AR7sj zK<}Y${AKixqtGXJU-9zi2`dLt=?2Fv!+2IwMNgux8opZs#)m`jYN{A@X6G$3C$95I zN+FN*3n>uUG9YS{CJQ3-TF4|hSnEkGe6dii*Js9LQRpndn=*)Z^}&5!)$iEB4M{nF z+>$a)50o4sjjRcHa_Yw;-((!KEP9@PS|#g6>6b`5wr_RtELL-&s5kb^<-tuDVEnvpTa2lcvuved zPYUE%Daf^~id>t^@>@?dIO<)7u0q&ai!(Bql;ptoLb65eyO zr^=ve-0%F)`evt$ha7{)J+qa+4wx6vL>&QTg61oO9=_gf`}*Gp=%H!jirt3!{>3xs>GU~^D2tW#Z)e)a+w_*1&0DTu_9pRwu&d$gC}K1P6?mD~pUD!uf@g)d?H`6H&Yz`h2Tzt!TQW9)kEbvPuhR2MT`$9yUVuEJgCmYaK4BS@&OK< zbu72lXCr&;GA3G-U2J@MP{!R`kt>R7H*G`}(*cfmt ztk!OoWMO^nLF~!?$A|q=&gcCcn~TO36QR4xwP#0r5Wdq3C|_ex3T?f>j0ue2)@}y`5&7_mlDaUctfZ) zEnqCcMxyVeKkJ=`y~TBCx6jXCMt#53s5XPY} ztc5evuG_k-`PZ{3JT9MvVIw;d*v`RDzW;I;beN~1&FxPr{apM)C6ycUO+F#mxYFG? zq?I7Y<7R^O$!Q+LFITwgf67{Yjre89O|s1)uPYO5{Amtp5N zEjgJl`CT{p-1R7k80O{@=%>a#HNr{&6mu(jKY`53u%>C0B<_zI~eytVE%^QlbqlZvVyn32_UF!QUO!iYLvv@DlXcK*w~-x>{1 zwn$E_NGMZOv1IEF%YAt;$Q#xu*4KR0#^$TCGok;+sm)KFtwl%3PLUq_`eDe? zRuuG_^sNW1e*|wuI1TQmCpU6z|6p=y%rfpZr;0~Y`tOxbIx1DPUV-sol?#R)@m>HEQW-yZMYANVe{!W z1b^oX7O80Kb7|_=hd19EP=X8Quoku}tIfq?Gaus9uLLSwOQ~wOBknf2Am7X!`{h}U z=W|}2uZrqRmn5B+zdKyKByFdOjJl(xpQ}vArSZoA)A+&JY02IZVMnY@Vx-vz!pllb zW=2B2!Ekq%!ihYCw|~M;EVi@#-8}W321oM&=4nf_rNo_ z+FW@6d8pFtnoh2ziXJ4WSb#XXHl&^^W!9ES3Kv6XVxOOWjG-ix*ID&{fMxK1$pLBN z-Qp<3P_b4E5s}XxoJBDFh&dPnWcAoa*#S?e?ohUP?7fF111^seYL`2_EVnR2S8wu{ zlzTJX4b#l{!!4)PuRDSP-EG~W3mA9^q8jzeUx``^;anf;bcJOa>?u{$(Olzc88&sl z4`HW88+y^i-sYSj5y}_e7b7z=y;DZo7*gynuI7=_nO|g}Qc`%6(-X|gI7p3!bJcU_EJGBgX(- z$R{WVEl;?;5iIDCYqN?$W%&Oyq8kD&$Sps&`MC>l!Zc`G$WWZeZX9L=qhK= zq>bTp%l|Uv*f~a-ULI08np4y2_)BHBhPpaOJ74N*Ptc9^pq_Wy*5C4&&+7lUlMHVp zZn&P*075GTvgYkMe;5=SE=a6+NfZ!6@j7h*#Aj^wUMXDiUhJ~f%#YV|9G>B@A=D`NS#~o ztUX?sE4!|zIy-A|Sg{ylT1*Wj(Bm==zO31pFXO3CbJ4V&}{6b0`N5kd%<6qEL#k268m;&cgHDu%e9mDdhcnzGS>jq$0cC{}vcGoOVCHaph7C?E z_6_7v6Rs^?Y_OB=pp_r>do~5Dp6m(_L{x@B`4Z;x!Yo9rj@YCBkh(DHb#jopj#O1N zZ=HSBL7yPN0yTeCWY_xw#%`}djE8w-$Y8FjA4PB)8s^43 z(p!==mmoHb!{`xt${%Ec#rPLH%LPoEJrn5g5-M{DG01>Y7^)rqY=kzYdCOd`xkJ)0 zNvLz<)irhFbDH@&f6gB=RZM+!ng!(eY>E@O70B>>NQz)f_p>f1D078*Y z$iBQ4?v#k~Vai{jB{lis))dNq5`mQfzmw!21KPfmv=~8{1hd86PVW+WuB=RgbW~8e zrp?DFuIU;CaI31AD7h;We1#gTq26G~U8HTuQCfiq3cvILu+|j+L#4QR=+120O3P$? zTdCC?L^+O^?_NQ48s;9-Cm1BA1ZU8j;J>u8XVJstp4?`aB-IeDfxx8c4{Q9h*G z7os4{HS&63nT`@`PIiA%XT_p6vpFl%AleIp>bw%$4dZP!?aRDdC^UMO8eMoz`ni2- zDr4@MNB;DtR;vJoXz?2UMYZ!_UhKhR9*@Wp*H;8WToQw;*M7u!sJGtj-IJrm3avxV z3|;Jixx#C2Xh3MD{peFilVT%eH!%Z}eLtP1!HJ}(s%2!YEK4}SP7z;ZfIhuW_N`7{ zW{1poJuu~T8?YR?)ny1k_;aArogm*5Mq}CxZ%;_COt0Ib zC>dBSib_tZ0xucG#>sx8)Aq4906ypjAlsWO=mh@6U#d}?5Sj)`^>i?Q;;Q4fP6KGwKfs(EKvL>5@mQS77lw_N1aez4%snvZYD{CEe0Ntw0LIcBW~OFDw>S<^N4uLZ4Cn{IyRrL*+1K%6eY* zRH^|hnn6dySL|#g&ukz5poN{nX)}kuigM894qEHcyA!VQC zGprnd^S!a@V6GmIdF~-lH7!e+vZT;Ln~mFU9qw`o{+8(x<@;Z!?iNQH3xeOxwZwI3 z>Gb!Dja=RC8p^(Jh=P?VQ7c~Wpo8Z7f`l>NOtprVm=oc&<$9ur=|XP#^b$S2`mmp3 z{(asPZ1;Q-Jq=pRFq-Nkp3;gUMRZEV*AcNS^~9EX2YC}Wz;&f&87%rAB=b#!+L~wf z=X{fHq)(dQzHRYs@yf>esekQ>UqAo$)Yak1tv~gwT|jk#*_ zJC=NSn~8r=Q1_B&Y)f;ZJyQ&HU-!m%Vj;Xr8sx#zT&gBg38f!7Mu2a)wv-6F=l+QZ zQC>`)QV>B;P5$>a-2p?SM$vf|)|Q63yI8W9`#jw@OangQ#uG^{?wbj(DP>vcSmmGR z1Ck*l!^a1Z+HX4HF@W9WZ~n6!!ZA)VxyBjE8E##U!(I-?0#=UE&Ov)nU0#ARLVxde zKQ8OrI{5nulg9YcvAz19kOn~|WFcoHdfQ8c-p;i8ky%c}sfGlBOZ>D;qcKsTe74=8 z;>luoq3v>#_9jHeAun%D%K{eOsBu=oI0txq{H2k!<0w3BYo0}qy6LD zR9&9~P;>|JZcjiCbJ)-Sm_^VLq|0|Q+sgHNzpp)Tj}05?ZJp#t+}KEpd&4o14e z>ii>mYzHSt3IUQ3l(ZNEgO(F?&vVdqnSNlk3L7Ra0&>8hSkWvLAb90FSzhVe@ z`pIVL7>GGb_Yfk$uz&BLr32>8(0>w%00EGm`SXh(e0F6@NC?aa&FZJ${5+;|l1LIH znm+Gwfd2pl?~Gcj{k!}zu@YsP^P9ZvptF*bZnwx;pqN<#pzXBBa)x%cBKt(nY7UBi zv5de&P}eWsAN>kwwVSF77XtVe|KHzs|AK6<+-wH0aL|3A@*G{k;+G@X_DZX3E!Vq{ zY)emdV#V%`LG0PeZL>~*TlGH3^NG3j^+WE&vo*?EcX&zAfoqs^q&F`DV$&^GRF62l zG8NMYm#LZuf)Wz1fh+b$D}PT-uZ|EL^KY}2UfJrSyFWUQia{g>AzREgHH4K??e85I z=fOcGwDaq5i*IcuMOfM2^zDl8fgKq%$k9RK^YNez7HKP{{v>^cW${Mz_{w~7o8o`< zsnX>4>&c~q(^IOI)3qNUVS5HM^#6zI$!Ijyp3|Oc5JDpHxAHvx`48PYFNNAX-Nt zOGykA{W;s0?Q~$1z4Iwvev`j!To!qBugfanm+tdL)jc{2A;b@q!kC8Q0FH2g38+)$ zuh0uz1?rV~W+R(k@-=kNb=iqvXpjAOXG<%cvit^+RP=tX%Cv}W3D$B2cwIgNj?8(a z^gfPuCb<4Irip7qo6AY?jC-@@wHe(0fC>v?K-YFxKdC;$y1Cf8zM-3R78(v?dT4FW zQPTdXW&ax?X=l4oB49KHR2O=!`Ll%Pvx}hW>jHt9QiEN`ELgS)cna3aG9?!zeZb2q zH}_3+&EfVnPp<`N*f*W7J80hfZRW3y%N5L~%|uHVjg~Wfp@sAq1v+SVxebox+AG)W z`unAkqczL}b)!||F2Gg+VFMB0i$wV0!yqRcbkIWdJaqGIn1Okp&!?&DRvm{|f_OW& zG3|ay%sn@}?%$L4=dm?4olCcokO+|ovS z4jv@UpDa@FBr3Ecy`=8+el2!9I}B646)Kjm8@PK4E63^52rA{|4H3Bd!=IT+)@+^s z1bs3|1W8=2noL9nuV^|;O+A_{2?=Bmm~Un~T#p3>1q()2lIlK3cbCOAhmU*k1~Q$i zD`;8hzq{|-AonHZwoWZ<_D*c&h4&m&qafdt;im3AR3Y2 z`Z(2wq^%PLw9>?MO;UEc58;M2H{q&b>Q6%2W#`UW)fISBty7Eqc0^XFJxnSn# z<|S#8kV0E2NS^ER(y*5wN}t*^O>g0ppbOm-5V~P}3JLeWE=n?Uw7ta@@b&yEam@tf zY%~V0O*YPF5$?Fy{)Cn-0~+t?M9lW{OsO)E0LRvBBA^-#=ex;ShMY>0MROm~t! zgZU)?le!$)0-dExeU>uL*9H|A1!ZSevHhTijCe2s?e4@3{;+CwK~cvFtob&JT2(c#_*!D<;A*pP!o9*%-7lT(yM#;P_s>x1 zP;2WioD$T8M2oNj%Gckml6|X#QjfJ^q}P(JUteP;EGENVwJ}IOnCL1mL%*6Jq{>@J zDrUCP)^kToe^8H!@50t^!0HzwK~X2WWrOB)u?t{&w=cxYCeITL_8Y!-->$XOHlPy( z3Jl*#H)<{)SrNVPP)s_r<2{4_1H_QT5sQO}=;y`*=rv6Lh$QQ!w5}(Y{I%}qHp2`o z$4bxj#|2(wVaX18xZpeUD1V%-#7I)*Dln{8mIdyyMrVb}v3p?$QR<40B0B)O;~Xe< z@hqLf2cTQ~B%yB&@jwLk*AIVv)Oq-QBts=ed-W{j5Ba%x+_4Q&FO8yC4)ka_S_;dE?vfo~>xvgo)RPpJ2_Y#rCf|b?IX0T|%^!t0# zrsgkCo&Iy<(@!n8)Uq%2s++s8_Yc&ZX}m9v%bU`P-2OqLDFcNgaRS5VdZb5^+Gjt6 z-uc2exy!SEhOfl&8xLBMrCV|^i3mm7jw>t{%}%ukxARCms50jt+S+%o!7O(Op83p z2Q68BlKJY>kr#4R*MK*W?lrO@+Tz>tT3*VE?FZ46N4#voh(NRa^EP$2qy-O_Ts)x` z1F<#(LS+VWj&`%(R+E){Ip{tc@1AOZB@7}j21^FpZk$`0+_bSRdhKJIY?+pTy_A)0 zz3}uqeX-ldhMNKqG-XP{I_SVEFcWY17_EE%QPa~Qmb~jh^ZOXlywn`+-UVy zyfD_~SvZoAn>t{5KB2Z!>w~hvVU2q2vmcrP{KhUnh5CAoC(|qXJC% z28b98;6+I3yAu9Qpois5aiUp$&C)|I3dZ)R@pYwZdX`M@T?`fR%eQ2V`H_L0MPPjp zL(#v2nucNpDj>%<7=V-t=Ib)jd{KRAOYy;)CDUaf&X&x;`Or+2(FJlwfGYGoo=HP@ zef2HvU>~%lO74D2zVWc);PPkd@oNRRttIvf0j85?z6blWm5P3NxQ?VwCgawX#y5z- zgO)fd*56<1Ch9I$$J~b^zO*J$CfI2gO=5^@c&@!#`Wt>t1sL{dLYXSW{*|iGm#kDl z#&M*1h4%OdrJgfCUiVCas? z;yeJ*s3Q`&cP}oB3~_P7+>-SoQ(gME_{{ZDXE z@21>ZVqeNfL@;yg8r)<;u;;3?amp)6FJna&DXr0$=F_>#nNHH)f_27H&ejVZV9|M) ztknP=JK{XU9jIi)T;io6_gNg10DF$Qgc1TN z>lIzwXj2YsiHL(-kuNadc(Z7X7GDLS*q@u>tPfP=tr#iB;0`5k%1_1y8J*=#Ta)y{ z$1n0Gf}I}^so`jyQZ#D3)O7WVyLzRcTNT&2tv4pu7A~5gXv+vU)O9_{2vCKN&ei*x zQvT*6J}-vylxXY{{Y*k00Au-mH$f0clm{`>Uj^|f4Dr&_(A4{|+NV}3%7m*b* z7|c;xT&%TJPMLx!YR%^#m@aMcm3u@8g8;zsfS9p6N^L^=(*yLY+B~Tnibj;7TJTxN zP3gyAl*)liU#nIoyj+q?lEF-vbgYV_pyRz{m$oGl9C65H6x-aGn!g`yUE`d;&#Nzd z)#^})6)Jc!(R5x8-Pn7B%k@X7NgbD>i9^ctGac$0BV z80{60U&}fware*q>X$NZUM9Y*z2T3aag?p4J-~XX<5{y!G^E#5QOm{-z#ey8C3*#= zzd{}i^zct^G_ACkMz{5=op%Yd&#CNKoTnQ9y8y&U?|L%vQW(Fqd+c@ z^%C$3HFUXk8ND6sM?1}9<0`chDpS#Qxeop?e){U`p)+Otc2zk_EPizrt5$peTz$zD zMePf5dy%6a^sPmvwFR+1k;2gPn2E`ctTdBuyWo|rb*j)uIx_W z7L0l>UV|8VL;sVXjgQ(tZ<;St3c)Dfa>jXlS+D1TiN1#5?X?KJxvWLp#hD~A^i-rK zYr3^&2R%Kfv<)(Fir;$nhyMDS1}ZQpV9l4I(+fUxKG^*q6Say|-(x?4lYD_*6jC7Y zB6?TgzE@*L+ya?#t}6h^PJ9y$AwifMYP51^#l=lR^@mCK4^E$24veoLmVL@GeZ8V= zD4T~m2$Oj;IO=#b%yq8H4KkWwEqJlGaN46{?I$|IGaGFEBep0_4qzuE`5-6 z0lj?7KT<1fg8F@Tf!R|IZA0dHre&z2V6scRR&xEvu$lQzbY3aAFDHC$Qr6mD1;uCe zSt^;P?`OCt&(9`ntF8DFQyUMy!_bpRQ3Qh{#psIicp>!CBnb?6v`_(gnOcrMN0RO$ zD!5GN@Er{i17JfY;ktKAn?s4b3q-40=w1=sx^)^33NTf93*!;t$Y1 zs4C<8tVeW>uG*j{Zg}sHjE%UY-_ac~K&2daRoodIHWZKVSI2YVmUhxMERkxFA^r%o z;a~sd$ga;K4BWi#OPn04EG^DjV;Ew%HHTl9)c~LK+JIo?x#I$aoczDqhrE-%_7b_4 zD4xY8%D~v&oJFDywO6S7-1|L_?5+-e6bf_yvdWlOi@fiCW?#V-hOLC}k5i1+w`L?9 zjm@t0T4zRN_^?&_$Q~8a|4>?BMZbM??Zq!N|WhB+Y@1U>@8a z%bMmS8=Slw5nw;mX(%hB%xXjc2`n8cXalILq2Z*Vj@X~7Y6dO}i+9&eTA2^By_T=s zthM)gu90;EtKuT}@;b-#mISn;MfM4^nXi5*>b_BzAthooZb zFlqYL#entFtuzqpTH%E=*D;EDaoq~0zf1{WBsj7#Qy!Hb4U&W_FP}ZH zF#KQ}8P3dqUf{q9m0i!`P-~Zv0+W-APM`KmFw2{5;>x^Gg%K>L0a!<*i(O!51A~R^(dBZ8OT7b2}H~w7&9VH8AsztvR5e zMxCo72I_RQ!KSw~<;2hKXChf5`%pj5@Ul#_^C<_8v~Lju{AThKW7m$=ESGOwzgYDt zO`WX~mvrr~c|U>{rC>c#OHwRs3{160NoZfO51{ID?}n$p*#u{DC~X_D9{UWd1bK7Y zqo_sWkg#eK9((#NJHI#<^mV*(@MOOgiQQ2AQRZV0IY3D%H=s03rBDpct5xnTxzBph z3SM5bI*OrZx=FT8I~Pzl2y!dlGRIeFCd&0$4!s9zHFMpm6Q;}tca|YT4+%FpR1#QZ z$t~bT?u2_;;U9T!K8!!TS?k@ueSm55AgWGk-~DGBnlr#u+h%Nd6zAf)&Y^gND-R?7 z^&8#AXwv!*>LX**^S1EUZ`Kb_K~%;TrN*xovbdVtTmORpEx+ADjazrPE-1&tkVU@- zktdb!ylg*z2~RwC8LbBV&^Rx=Z$NXSjsEBuDhyY!anIY@XLdi2y>(xv%wS~>V;YIz zo&-Qge^25Z01o-TfSzz=8)44*_je3XX19GZvwj?7TE1P2iDm_XUX(i=8jGAdDJ5O> zfQAFCta*eh=|k4RP~1H{!2!6aunURJI z=gn3#|BeO4dH`5)onJA}OIic*5cW{O+jFo6+Ge}lYYF3Zzej0gG%MPpLa`skE~31W&uul2v~;l&H~c!g_z1M zHgsN=zG_=|sg<$^|A|`EaZN!^pb(XETu&QVCF;9Hx67|j=Yh)UOd=Fi?M0Plw2UEQ zwEadaA`A0{!g`;urFzG?XRtS{52KQeiQKjZncNU<7vD({mEk<X#94p`R6C$(;S-(rbm53tM#jN=|~l@YgBO80;fYs}t@CnB*%icQal@JwKb z;mAI4!#8Vc`lAN$qiCfQ!BaGrj#+oPu220meKz>tt^CR@uXL6Pb+0Eens(*CH7X8NxP{z@!yz?~cYA>grsgzR#==w9PgNvfb!IVjaiGnk7{`eHmYG5pbSEvgWaim)@S z4hKx$>jOP$p8_p4(~-OGsiIo1BAKH~79sq-AVmDdEVO_BVsbg3-i=Jf`T~7mA%sO` zNvh6JEN}D6h3ZC|_0<@8Nt-vHRa~#G!xyhYl9ww%t|5EH7%N&x)YN*kwvkp-)B^de ze?rj*g9%x_lf0}O_URd2N5*q$Xv0?;Kxl6^)Rb`?UclL(ythq3-{7dyx(yU7c2apW z(Gu%}n36IZ;s@00?!AdeM?6#wJcpfLz6aFoY%`ZGDj#gu^r)ti8^`XbhB{0C+-!Pf zwup##4See4hQym%Tpp6=*?*?uCj4gul{&*G2ba3#o`%x4Of-*b=%2Mo+TOPte744Y z3z0_j;Q#-zItPZo)mTR)!!geJ3~m!G|`?+l9y67nux95DP^rI#))aDBnaL zeqPM1!MTh}S_7MpN)7hSGTGlc&{?LjGg4DC5zaE~uAmoQislf@KIQ)5YnT<>6M|f! z$0xl8UB-8gckehQzeWrfPOClPHMn3dJM;nWa8y4PD=O=N>*f9h@yQ#BK?cRi@|ot1 znys_y$^8tZWZGI5FRdz7dsG0ow!k7nzb+EQ(z(50Hz)c~Sj=Ju&+c6HJNaUn{(C`^ zDr)$=oq`+8m!9*!aq&rd*NG%gjccE`ZlzoZL#>&26Abr$UWqN!y*_qd(N8pq*X{H* zQ|N;n@GXz`i^rZ5Ym)qadWA!7sfLT7zEh!l(IZ_F5|YT_jLgj|E=YU3$~-c6Gdz6A zja9Km*i%H(<0>@xkF{cp7L~v;pWHKOxvKT6{O+BgWSKKSfbxdGZTg+@kwlbqhLFV^ zElY#|DpB1@7eQffS{k0Z;Q>WHT-EU&iZar&4H4o4-?AY<4lETj{1LH#jAT4-SZ3Be z&NIZ?`mmr?%z7>4_{QFxT%JT%a=e^;U1B8iK})rAsO*W;tPwc_?xuLVBvXLZ#+;m5 zn$r1G*irs^($p!e-$52PnE%bCUNu#Pu|YnFaS1`@F~tM&Ok(%4S-vN}sejnyRBjIN zURh0VJ$!}tWTnY+NLA%td>|rl>x#1qS(_S(&1REroQWJl4j8_W47D{K-7|2RRS)Ff zH6L3kua&|^X!Z@i^yJ%>#rC^y&kgIH?dv4SO!cbKR8q|?oKRVihoOeIucL&E%>bsw z8VfWw&Q9fxDFR+Ah|#gPUK*2Avdk*bMZ54m^Yvo=?-K=E zI1I7Di-M5*#^&V~PHF1$mnAJPmrTJ1ZVR*(ce&v6TU=3}?rdES^|%AKJc@laSAe7n zk}M;r;yz_ewGDG=?97T@lJ7%4I`7(}!Sc^)Q!_p(!z{ci}Wh>^)cRsK9bybFf-NEva)^fq--p&IZu_?mlw!lld##68M=VqY$?0@ zKrdZZz_EIMNm(UzXd{#PEl>W3G*$D)hkP_kzw$VFU^KiD+sbO^`|yw3OkT-5U(ihj zK`DIAxOMsf#)z)_)`=K=Q2ctr1v(=+#qY7var+<+I^BG270qWyVYa6`uoP8_Zk(K$ zEs6q4Ggp&D%u|#Npt9^4?>1l9s&%gb$QfKKc18Z1lc(x`(2GMBa{0!hg|~}-BJ+)l zb9cqh^7{A~GE+sCv+FLsRc1wN=pQw3HlLdhl)p=CQZigVvK4U;N=q<`gzxRSr`7f9 z4B}Sm>d3QdIl{Q>c_;0qq0YIWLW=OCQybp@BGz{A>jsf1)Ci>4cbu$0+nf=w;=MB!=c+tJ&lcaD zHarMOsKJQRay7RAD zzE?ke*=(KNePR*R-m0BS8Z(uekcJfvX@t{)4m{I;=Zp0v7rd@uZu-FlGXjL{%o-gu zo*@l??)#Hx1KU;j?kHq9DV{}5osnSbkN*l6dPwe#{BpuJo(kqF4<H?5_yNE2CZ2HP@<}v=-ze>agr6*-$v~R;7mjXR)`{Xu5<(*nJ$U$jvs|l7 zr|cVPJ6~wjyxsrt)7BT#BZ-2+O=*1Mg}@Y~w~eZN9kR{DhkVD2OHS(Lg34|w9?dk` z18mL3fPoY3zh2?`gF<*d?ft=H6?}KRPEO<~DNq289pnwUq|s)t`}J<2{g}9$iWasJ z5$_;SfmUky3wx^l1j4M_yvuXgW;mBGpk2s)h;QsZhI$qCx~HakJfInIBER;d$U;&- z@^iJSdxlLkK=Y@DeV`F(a&y13L;!BNO3}OpLu`eB$gy&MJ=;38iaLO*kD$3d%n;TS_dH@5yHLsYis3 zXhWs8D@26Tvv*a72#qqh5(06P2#@5f^ATz>0Sq5k(jV}?kRlBb3+63F)!jZUn%y&d$lg?<>@x*C$jVh=z?r2_kg$WUDSLw$ceU}`rei%2d z&NKk6jqfO2Nhz#kZ`iK2f6g&uuabXNqm0Z=y^#vK2sNK5rYEPA+oyh=Nm_qD@V+e% zN92)13=btql_yEO_s><1A|KSXI7U33iAvq6;Nv-S7I`jnLm!SrkRsT#K~`*sp6P@F zZtKrU%Mh-BP0%T(Hgh9jSip=lj1_@B=4dF{BO!TubY=I7*f2nI^ppRu4prA)8^{j10&7+@P>*m4?D?5PNU~)t)Rj)|O4O&WO5qenL zRT+q9>*9x0sh_2~Q#{t;DT7K{)GTL8)%v>4{6cy}&{>dPs%0(_6`tH>)L;=^V?WEg z^8g#b%2`HaBg7Egb%4--vrkRrjJw1y1Zmgy!$-T4^NuB!>5UxME3{&3ahoKvZ4+^U z`F!_tF3WaHIzG9w_PY#;H~8R zt=_V+g8*;w7*uqWr?H=uH-FRS`{qzN5?ItH$a7lYEj&3t|4~|4tu}6*vUfB?7vI}UWTx>I%G%@YVlCG+&Md5{LGP7Aug5DU?AICWLo}*A5txEWg|2; zV?P5EXU{olU{l};Wm|t@8M{S`*hGbxCUuQg8q-xAU}YzN&UU2+P1mx`cnx`x5< z{Djm+7HF%OOcZyo2%~6)p!|UB66?cRpU(%Gl@I@EHX7hI8(pY=le2kqs&mQxi=4b{ z(Tf51?rctzU3P%yBho-Axhtj2-GGEGt?qlkZ4m~Oz0ZFLV;~Z+5HcM*?BtxD2{h&$ zLX#cO@wwZ6$VV;hDCVh#!9Ez62euQg(YcgO+n4?-8Jyv#vyvtwlc&1LH0@LwD;Z)g zC-esUN{@sNwWi>y0O6Nzfh!k*EJ%IIHIUAp_f-?oMdG=Zrp2hiK2@&GRe?E|gbq@Q z4%#CuxXUs;GOVi_$gPk}a)^(5Z5grsQuExF6nMY7BIHyfg{opF{u-E2MHJkcNN1)j zVi-ja?W`hhH48&vT`Cp@MMU`HcApxX;gKdf3uLa9KDi=ao-Q_Y&paSI?>1+0c~Hw# zf-3!GHd&*zc8%RLQ4A(cYbND>bj&5@FON$WO z80`Q!(vwRlWHPxdiLEtk;yH8X_KPz=4&)arfbcwvLt+}EGI`|sa08#-t^QAWO z(%KAeb8vllwUV*;l3dr+sAR5Z$@0lavQYr-NTz%gk@yw*= zd!Kox>b})Ka~)K#9s7uAZkd~um2DJFwz96B{TgxJ2*xEi8up@dX(C^aIP{3>Ag>US zcuv>__wF?PtBwj!LY_Ixu*EpVwMNEjgu5lHg#HpMf-}&*u4Le=+4(FvyjaMG1;>=C zw%F9|TSOdLomAKBq%Z2bybE*F!zcu2l^=H_w&#B;Wtt^`8=NPM*))us;$*fJ8z!o(-FW zbqznTy%rIy&`Et%W2>u_%p-l}D~srVSMW~d@?UxCvELSEK5FvhlLBzuQ@-4>5X+@c zuXPJbgHEAN%A(yMGQ=|f%DrqYU8Ws_CU_cF{SYHm&%R!b`Sw4G&cmO|_y6O!p0diDkL4pUL_>7gk z$K!rn*Y$qCUeBi!aql~Ajwx@#`dif}dACfl5^dt+uV*0J0yDAwB1_^ktXWp4mC+Ym z=k*Gw0PgAUPkdMX1};JGPKzb0s0eQtSgd5RD_}$jW}6A>#o-!bv2@((>)FX7j159n z_!{V{r|#v3Dmv2QHz}fVu$`qk>YwxeUyse53B`pXkDWGaD~`p*m+36UKI~oZbA@^j zXvT2};;RA48j`UZM^sgE)k7eRT+e76S)%_^{3dAOgm>CF~#cA9YI1 z^fp3m4FhmFSf?}=(R0)P!>IYoZBVV z{PmkrMj-IUVKc%1Lc|&8f#S_X^|FH$&y$qPze!)hGnq{z`A|>i2lw_+e?H3}MD?&& zsI~}jm+6TgdDgY7Feg`h$*@`|h<4>ro!0hL5VVkM-`pG8*N2~Ts<+AZcluKaJm;je z>*X|YIBZMMh%y!>MBZ6G)pzpelipYLmV9(9p0tO5UsdHuse!aB=Mqz{Zn7^$$*;+b z;Tk-bjYMHnke{q#1A@&eF9p3K9y@>}h_pbXPL8o82!J{@Fc})zt(^S|2I8O7Pe-I6 z2|mE^`ixGuxcCv%b1ynf7zX;6_WWZUpa26-m<+1-Mt6ld{{hbd6?^7mFjMScLvGR6 zBnj3BhGcm1(cj&F#c@V?Byh?v1Yjufz31nlFLVAwzu8M=&Rj5N?1yFx^5gN%J$N%BxC{@;VA+dd&~u|;eV zvHh#U0ROixwuM*M!$?xmzYlBQ^lGO}_c2=~+xlD(sq;L6;!rEep>;t)&}^aItG;j1UWEcmrw3iZg!nRPNZ5+ z^pY(?LsQ8qWZxwH#wtj*L}~~1;X`XgPA+A(*QiN(GqmqfEd{SDW{*x-Y1M4m#>K#I z)40>dRuo2Rl>eLIP}JxOlE3|%r8pcPC^y}$ zXreWCz5Cjb#aI9;Z!)4D)pVAaFw1kzZ#;b6$qx|Yd=U^JuEXzlkMXu#!7&2LhcD~> z?)dtiWvb?j|VCR>K?C;)6zT@7;RoLl!C4oWYHC_|Ta zpT|ue?^B*_&vK_cg~^%KjZ?Q#<@Gb6iXa(#snl-A;A63}`n?u>MQxysb&6)7d}}Py zI)-x3*U#<7>o~ZY(hF0z+0+lUTy#D{pk+7W<@axwBDQKLAhqOGtF&>E=2PFY(DEDD@J% zm`6_;8T)<(Z|>Y3alZEZdo@_+xky7O{>@KpEQ&@_oR@CraL|yTIG52^&C1_3$|4f| z+1kFGnB#i61E#GR9fZJ#yiQn&Hb3zi$D*DE5tIb+;%ae`-cHp$m}H`#iJ@A!?>w)8 zU9An9u=?&5BV#sm^MNATJi3g->8OZ-vp8`UmBi58v@%;O}HEzD(RFuAY*b^%6Qf!p->?->{SlDzi01y9$Fq0fLc~}j zT2C!O31UH9N1xO9uL=pQ_H|tAG|+1ADig}NyDPxNBViHVKpMPZZf%u}p5=YRmrTlj zku82<5_;I4CpT2AI;z6%sKr>r*+b4IT^O6%8>*Ks$ED;&O!6*jx&l2D1CW%{Jk%ou zYsgGkYvKwgxFV<3CQt5)XRFS_P-Cj?n65aQ8dWaz>I7sh$BAs1_NL+?8m4H^J&ct;I!KZ1VQ#b@i)8~)A{W+=8$(soz}7XCOtrItTo zeI}BBhVP0IzEh!2@O_hGy3?{CqJp~ASn8;R$^FB8T{abLPF=phwkycw0o+xJFos#C zyh4oiAZOXcD<`af)V!eOc9JVzUOBri&Gq>l%w%Ju{KsRbwrcT0r``Vw_fGWdg-XzK z#KHOK?mKLjV6{@)!|9&;*sS4)<8$&bPIoEy-%JKCmXY?<>{EQuhoxeM|Dk{P5zgA5VHaI4=@jIfnF5p6~xYw+nE7ey26`x71 z$u&+GqyCP}Oq#vjWv*NKHhszCrhpb84M+aQs;gz#ddNob)&-l|STtdvx|LVFn?DFYV?+B;n3WZiUX={Xmd^F( z{0}(|F;ljVVsuuJAzFxL1lGpaLqDVEZK^Y=s$15MDQl$80|Nrh#Jnu z9r@?@@P*xWqVmKI9XGD zzxGR*gp2By0qfn+v0s*)KRnJ2_nXkuTF-Uuec975_>(*`q!7X;FTmP)FPY5E)Z*aG z_eOt23OcXC3f$Y~v`o15bHmALmptTfcmW>8IiBzyJ&^r}mwi>+GC@S2amPL%woZDJ z`cu&0zc?$Gh$l=e24`q{NJ2TR~GbN=D ze?PL=g8sl=ZtTG;UqKwQ7Mbg?@$z@$lV9W&nccVIkNz-Zp>YlsC;UFIHp>w*F9P&B z`U@oLL>>@-VYGMO*VeFlJ9OS(XA!kQ21-xt$`YfJ*4{l;0)1kwRY@Q}O@iBcR~V5s zI!9>TQysnX!S?Yc5lwE7sT!dSdxJ^mgj38FYllC$#Epd-)4K086{WQyo`4Ylst|PJ zc9(oY7ksS55;Vait8t;()z)jZvtHj|$fFPO?Z8WjLD9>{z;tiWZZnDy%=4piq?gS> zYd(RcmdhGunHnanEhfFFaRq4)Za78{&p% ztPG;yR8V>zC0829ov_^%&p_b&ePWTvU~5Hy6>XdWxJU z&X%vTw}F4#AP_bdIS!y^AVuXDs~8;buC(4;VMUA1pr|7@KUr}SAZn-mTP*sTwzYw* z}GbpYsN>oKaUctE!aZOvf z;Ct#F12SIj``*b6#ch)O#!u8J{=-u|J5_FIyv`bK#EtrNU`C@W(M zRowC;3KBoOjs9DS^0L)uR=O{PPlL|fTy1`*Foj`_QSc5dW!yz&iOYEV31nzB_*-gy z4(+$ZKYQVdnF(cjcw%e{)>C2}D*V<)r)xrN*9PyRRs~SJwWbJK)FiRUYSwoQ?P9J$ocLB`IVi zUEeEK$t)HCj(HLe+!*0kZ#nOBtjnp9l0iF=8O+nQbv)C41jE^8y$n6LYf%LeAB?4Q zc)PJ}4yOca$SuC%Hs?$nGr)Yc3DfKUdOY?G2H*aMS|b|{-r_RZmBE$`D*K*qE|DGz zuEcU{$#%#xXo)`&@ZfMKBDdr;E`3nLzrGI$*stfZWN@*|vF_zy^&TZJ{Phy5U)OQ< z;u~#S$VJ|`A&ahPthL9`m_fD@h>^>jhlPl5;U=L3DNdOtGpoP}$>Dzd!xN^}g^z@o z$a*mZ%L}&=u{Yod@E~z(b)@jq9~sjr8Q*N7B!!A(cLtW)Vq#!B`5iN|{1`(ss=onG z>;IlScHbH7=I?7Nn-k!DI$A>|eO8EMd~+H7a5LqFJ!0S6CrT%kPixT8G95sS(W1k&00$aS)T- zv`^vgyH3N$n+x@i?`e41UrU@vf305{Wawd7l>qjV_^$+fj^4JpeLTBteTNHS#nP@` zGwdD0d(&`Z*RsrBlWA<=4R34KY{$ zp~DbH{YI8ih7xMj@=xu51~(k1LdO-Vz>C(-$mwkq5$@{08GW~+b zN)bKRPBeUGJEf|${G)vF)?SEal!9v{zN=0;_zK6npIu2(Cbd#t>`xfoo`dp6$)J~* z@Wj01T`&c{1}mZSAuZe_e#-US;ui`-V9DJ1er|6SGgF6&dOudZkiyEf2Sy2U%EQ6V z!!x?mAIt}X8`c2;F0JXgDbGrKZ1q*jYX>&8;oNF}51Vw?tR9|-qA&+*wF+NChz4$L zmsWA>dYS31u=_te6mL6j$kehMWT;To0QM?vJ73at&YPs)57`()w~91bwPG7YZ*~ed z<7^#$WmG1u<;V~q9_H+S{xae=Q;JUd!|i*HSdf(UKgK&cA~fWNnW+~|nS4#9UFWo0 zBqh5U%+Mm>Sx+rD&PD*!>Ii`Kz{k6rH@-ps94V2)-XfqbkVcZz+#G%QuB^?2R)ypu z#g+H}>O~qdV;P44NZdII{WASp73}owxwty7x4wcT7%3465Z+@@h0`Efp18dWLnuhahFcIjF^9>)-R_LVg8w>wfZ>cVyaXk zcgcpmnh@+H@RyEhTw8pZrO+44HTW%)3VSl1$}*eL33g^rxah0uhkw@>Zf>JQ#h&I2 zBQw*~agi7^2WBF6Rp=sg>nd3#IzB+#r9X~+Sw3a&3A8mHEgFMsvrK)h-4Z3^^VkmK zd9_|k>c+RbErqf?Xm3-MCxTHjyO``J^qU#}!wK&GHQTf?y)nK;C&I}e@9oY6gBB{) z3R@1tzH>@E8!2NzY*aDAxLJjgh|*cQ*yWuA6PM0+1^FZy?ZsWNi6%rrGT?*=Qc`6W zAHH>?Wb1=0VLn!_RSJxH_}yM^V-GW-)7dVD{R#7a5ziapqW^&UuC$z!KSNw zi=(_;+Pq_fk!Bt@MLoPU!2=u8t0eq(dQ0PKJ>|OHh)bAv}d$kt!Cb$A*EuyxzJw^JyMhn zDvA8GkF?mvvOtQGC+@OB#pDCGan}q%p-eThf#14h5F<88+i;qQN#uMU$78!81+U_q z#JWpdrp}@Dj^7E=H%51ry~vs(Vvn)tjUnd``JryBM$Qc;x^;If4z@&5_SdG9E=ik7 ztO(rgWtTwNCE^j{>+X`bs#F0!pnB8b^hAh!jPe2#hq{_&$)9)>EUlbP8f!dHTPVra z#+0gOjH-J?WeEi5Sp3Nz0?OtWWn=9ehS}{XnKf62KU1N0erAs07C7~JKEU_}RKYL7 z_j$I;gZ~^^n0noAqK#whG0b(IMo{@}U+pzB>B4h%OTO?)wT>Hm$cw+KNcK)?vpzhs zR9|c;l7b>MJ{t^VK%~_oQW3^qHMn4s2ag$+N@`v%8YbMXCf!eGR{inUP{~4ugRC}= z7TPsn`(*tKC3Eh-R(>aPUP3wv<-9B646`u32yuoWyjXpmzGO(_`%sRiW)9D{^@m@# zK@o-t!6t5RwCGB_=P}iG1Q!elVfDttN1;e*ELfGlJA}f)h>(7}Gj$b#MiNWYZ2p1v z{#a0rAJrTQ-m3plbj>u5Uaw1Ngp>${ZMdXU5h=sfy+(7*J5WKvC$JT1IU%cIwcw z#!ZXdI_LL>_iI>&2H3Lnk0Wo}HK&PP(fXRr7=kpb76n%*Ex$ZD(wS(al3uT&DegSI zp}s?wzz2>_zLz*d_u~$l>##5xu6VA?r`L+z6&jdq$sa9(sSmdHKYE^w4oap^77j^k%=GZpiANw&a@6 zieXBTNjKZh8P(T|`ctK!(5yJ^rzm0h~y{Wr) zydHKwiQnx{t*0aA^`P<#DM40M4ydqwx;D$L)pufr!&L-}P>r*$nMvJdtSSRu;j+MA`VlR zC&Bd1AD?c6Y0wK1QsMn^b0o>?t#~dYlEQsZFnw({ErdJuUI^$|$NMIo0kDA$Kg7jx z{M`dUr!IK3jxZnVeL&*-495YJa4KMAw+nEBPqIu`<8%U!Sx-{pfVP8hpF`$6CL_B= zs{=NH2ZnKU-=h#kG?j<%Z|-?Tg*eKe%Q` zAdDm?E`tSD5LK4>{RQ9=oDmOQU-!rknEjXs`AWb#J}{JVK3XuVyqZ4QystC#>d5=0 z!N*W;PIfgm;D_?}@ut;RVrlP?Gg~bW|2LUUxP4fX7kTq+6cl>+Z$SSz( zzq=)C68SKJSW~gbpTBr05bosFz3g>lJ}>jr@xDG?{aY%)$v2cqrZ$19nOfI zNA8i^y1{dmR3iIKlldy=A$dCNFKYu#PlZWFVNdQp!{$oueYvK$^`C)h-IIHjr19g= zD!z^d1NzgcUFoW+P5MjK(~J#}q2=5q;l`a+_cGb-?2`% z{ikT>*v)BBRY!-?Bcr*R~)Dg|rSpeoGzpIxgU~2TfhM7k`W(ExWJuHVO#+ zt7+R6WRui#rf12_OhW~wozm$~BfPlC3lq|@6RmZ&jpBKhm4*mPJ@Ua*+0cT?myvVLvFdcJ@9e;f)q*?;=(2r_ zkyRP}bu}%tV)Bt6AD!vu=&n#Ulia|6q7?RX88({HUQ@A^?5z6blLA8ic@7$3hUy0Y zt68W&)%39lSC76rzW+WIfk|0Y2U7uiHKvmog%x~1P)>*Lm7GRG55e6H6WPXZ>Ac^2 z9xBxLcQoj`xtHrS3YfA~W}{NUKww%PsM4vI-1vyHEYS4`J?ZzTw^3BT4^hmHrc@oy zP4%>~i`6#D%y=+&t;mXRK7aL}n_S^7p1tRx);WLeYC3;pRn}?tY~b!n_)+<|l(8%S z1jg8BL{pg>{WkjS{<|B)+>|b`mo()p)J(g}@$jk%QKzlY{DwU*5_MC`q(zd?{aT7c zh3Zas>odL;SBV~78e=bbudd$-ssEnqqDnmL%6kUz>U=XRnsgBaT(SY zpFD6LE;Sc#x~s6AOI|eNvQSoHJ(QK$n6QWJwRw%GWK)xX<&r-LCpEG33i42WF5k2B z)3Q1P1ce9rVs~%b-;&SybqAQ>UsT>6P|oY*yqY=}1`L;FwQ6nVR6{ov69`z01~rTJtQ&D}L9_Y_N6?*}Q}APggiVjWPP!~%_5hI#WQkrSVo_%zuqZD#?i z@oU_IW(7S(>n>M(i1`|Wv2R5_oz+p;?HNlf$sTVJt%Jr*3bTZ)^o*f3;_&X#Ga z5ChvxAVT&~5^IZl1>maU%yC6eIyfpT7z`#(dx&@bi7wp78QKJ%m0Di}fFjK0*Hpg5 zjry53JnQ!oRVOCqp;W$C`^M=H1s+3aK$g#eC1B-mJZu_@apd;Dd?b1^A?oQ_D7Xj) zQm}?_>nwYKBRNw3hXku}lJRZGl!-tJ91=4qtzmO36|Pz98=EtSySdzC28>)Cts6Of z={k{?AR`M^`RQH$Nu)*ZQCy4|Oz7v!Pct&>f3;B@XPDdYyLPJd90OTGwV<{6pm%WW zItXpZ){fPz!*dJI6}l_Tv62MYd#igDGOr0A>5slPY{~uZdm9aaAUV(J-eR`5J6(ya z`dOtW4A+TmjO3+1K?S*72ICi#EUSbET#UdV!7VW4FXg@dmBmV#w8waETy60TYi_%=57tNpeyMp}I#(n$2t*wA65#*=d7#GhJ; zvpVD(38{C?sUA!a(n8n!&8sEMgIU~&!0a_QLk=9P5`=hMM&mP#!$&2oZ7tSwcskdF zsHVt9e1tDjO&4SzX*76)(R*SfOKE3^I?Fx2C&TuC!0ztfFFeah5Hhsip1Lxuu`F^2 z^w(*;DX6LXZ$%@E5Ta2I^K!hT)e(R3^<7;jp9n@c67Ry%C>HSpy`->rHRbbUv%N`O zn&n$h!Ry;JzsWyg8hNxL83kdF4!^Re2vOjB^kl2)@Hev+wxX+{$@S%h-O7>P$r(sk z9-GI%dM>cd*+Ibae|ll(>_G;)^W2z;p|;*H5XOs#Iu~sh0Rd_KG@*#5{$~+kf?+zv zs58zzo2~A-4Wxho!u2W{>lVddtjokrh+eYy7w7J%^Q6vHKZS^*|?TT53W% zvk^jpmt-yb^vFNR8Fb_4(-i=tOIR38bAYvIy8 zP3W-`sj!r2NM^Qd9l}`5L5CFll%E%k3}{U&?#__2hOB+%jC*uuNwxIVw~{|6rK#8w zN!7ub`V9LPVb^zAT~2v9T+Nak2xf&8?+Y2r+NhcrI7yG%S$)`{wvaW)PqCC-0=O%wx;g0@Dg(~3KJ;z8VX~frO$WiIW+jEiMfSH$L(pRTuAqi+MxHl$7Ux40_Q2 zq}q9l-AAj1=bt&85m&pDk|Ulj%0KYKQ2ij5ZE_-QETrf88u>rVGblKdo> zH^EC;)T4hw#)YVzSS_ugEMjYW(2N$>~4u`Sw}XNcttCPKG*v-N-W|1^S9Ymh-Gcutccrh z-r&C~&8itL>k_M$%8R2YrBKq)1W9JIvl!BzU+g*Kk$C1$ z1!r{ykJIIrnWu_6&nZ=D$+Y>nxLt_O=9vSgWD<}}c?qaMvNinD!B@*yfHQIRf4CwI7r6ozf6otD^KLaLe!>`s!lo05NylI?Rx1GU(f3)DL}94+!vVZD%$ zNf`^dd`~W|A3%R#e98GNsEKB}9=ABggmi2?v5aepdoK^CjpuMH>q(FVGnBjE^TG4d zIs`ez#N_?>Qmyonq*S(cr#K%|Ma}55vaFhfNbwZ&^s)PCIuL%xzWxaA65OYpCUX9t zDd^!{j)PW#Ax{H5w>I_u^Fvsk1^3M5*%T^PcKS7+r&UkYcR`)g)MGbW>Bslc)*f-S z#1dj*yfIwvn8Q*u1O12?fnMxRg}V^bkuS8E9I!o;;XWxR`B)l?xqNFu|81`o$zZ<&|%NlAoSV@ejvTaZ%34 z>?Mn;?rzV4oF3u(dC|3eoA1R3&Ixsi@wdXwH?zxj%LmGQivO0urZa>tyo3$a)n0f| z;`r93RvwxkMJ4`%l4fy9+1;JW&VSyqhg6)Q(a7(dn<16!PrWpYzO(JJPJ1wE^PZ&+ zf(`qEl%? zJqw82!b?1`xRt_RU#(v(us3ZPoZW8pSdto$<-8&EG$*1V`fuhqt4fJ`DrH1cCq55K zSpW3_YOGawQeRyKa`AM|kZZ1@YQs_Ad5pf#0VmK`Hk^mJG@-0C(zEm%StXzjIHfC< zeJusgmsumj-oN0`-FM2)_nP2=y5Eja(Llmsa=lQ_f|mt@8`Oin#EjHp^CLZ!A#-;B%5y-4*&<9o6D%9`7Gfp|ATD z$%Y1Zq&Z4Hw$OKNC_ngIoIkvN_GsfuJL*6|{_oU5WA#A~S>Xqd>ZP} zm&{cx$o_}9deumXm`_}C=A`ZGv|oaYh80@rD_riWA0NXmsh*i_pqx`U7pnUlG?ub^ zZ{gLlv66&zLfu!t+dR0>j|s<*{$^bpxvlxW;^otSap+2AuWmiQjHdGF)&Vc|ax-X1 zZ?4KgCBI?r&Q{~tu0zSC#vh#P_Zm~TX;R}{1@PxN!aG^N1m_T?sZ{=ggZptIm1*)l z3i)U9#h#W83JS;ld@+-V9B9KXewvCp-D|%-$FG~Apv)l|Q)BcYt%TDMlv;vLiSx~7 z8zwaQLN&W6Dz~^%OneF?qfYPDM?tjRLgb7c7=N@B0pr5DY_+>^^qzpu9r~q-kBRY5A zb#+77dGWYc(jpf|VVwb{t_MG3aG}?72fd7)T_)2z0!yffvWFQp1FnwFX0v^!sNjQ< z>|RBtDydlk9A&nF{zmi}g6~D8#O$)7YG7wJv5xO=by4%oSVEQL@+kweEr-OvGwyoU z^~^kbiEI2hH3)CfP-f>%zL1RY?Y9-iChA4cGSKl7jclU3ksLS{;qk<5LNssFD0|ca zz%R3F-I5W?-z8cDoy5vJ=u7e$l>o1FYbL5x^CkCwOYVh58_|-t46!wOxQQ>2;S38a zmO@=7@#BVEejdMv*Nfs`U-)s9@=CaheIO&{V(ndH5ndS-3qRx)vyE{!qM_o~4Kyjo zbkKWHg-MD0ux#pP&<#0pb_SSJ#P_{{&YMfZkUwH+O*3)mx%8ANs7Og>2+O4$$>sZQ zi;WqflNS`E0_t`rDt3>_i*be@jo=VKfC=1R`F(T+3_i_+dcGX}dBDc<|G-gUGyn!b zambf5U^Q))*g<;srDMz$1PHT6kD3nzj?w_&uD>W z{G1Z*dc2yCUI;iCp;j;^}MCX!GAY0`O#tG z1|g2wK+`48q{}BPFYiEwkt`*0k(LLy{|yc|A{-s)d#A zsXT*Ix5Qi3LD#@0{K9cgp3qHGhBVR(^dHcjogt>wqqL89!cErLI;~ z*|5f%BGH&?^q`(N2zpwxDKCB4KFO!?v<7#o6<~bnW=(4HP^Z*ZHTuKpP5zeeKqlkJ zJNM%ncHDjsnE&`T@RZaiP^tvw+n%a1Lg?JBi94UqFQMYO2@n*DPZ5GVy>5GzRU{B= zocWJ~JE~|mgTtD!<){Yo765M0b@GRU$Ze}S46{t<**q=u&)-LS7DpqcWOftLFB$;= z=)N*seTi4a-zjGbW%0C;AAyd86g|6L(}xwEk@W`^I@OzAJF))7 z#!(6DO>;IBTu}#UO9?BGzg7dKZuqIcoW#ble&t2Qzsq&FyJ0 zUg-WKs=V}fG&(i*vrLm4{%%DTpq74hbeXWbL*jR5@=S_4m zUqun@Y@7bX>8guf&s2+IUU*x_p-xF|y1eha@F6`Qw(YsoErX#RCq?hHtGAa;JEtgf z=m(UiHF+n!eTcWZ*Jb4?KRN=^FLJmvfi&@hjWXc>Y?K=`mGxZag`P;!dLg3}rvM+- zci~NqA|^a!$g9c8rwfFJu_PjaW`PgSlAS)w8skKvLKs?C+|N7I`1aireEbWKOB$Jb zOX-{Mj$*T_{L*SJ*s$6Bp0QWitt$VfIUaDVT8>u3&OH-(EoDyg@Q=CiMd zHJ)=y=ppgiN;aTNvM+iQC$fw5e2lV+1__1bPsfqzt4O{gx*-q@F!>fe;F02Xd7K)%bQ>)J|4t4#8SqC;IA&2+Kr$yHtu zz@ahN)#M=dv=D1%Bf={SoZ_9-g{Po6ko<^F0bK=RlAnDYAw51=KD20KYoae7RF)#1 zzg<~?al9aV=aOg*@NYgvP)3=7BL`VRLas`@8UuKO1+^h^sTATv+fpL*I0X^2JImn56YBmEW6jk;{ zRwo+y3CVAK490c;@C;agTuJ=B3FTiUnaH|PA8RD=_6FV}>DLVi7)2P#ADYT;j%I}% zG#61=&~Pq(9u;xJdL01d+;z|LP8aqSxX9SF`N7$EEwlIkB?R3{Sj$6-G0pBgFxY;5 zllS%A%RZ(;>Kq=mywP``yit==8{I60=iIF!cEsEG21V=7k*sfSU6c<`Y|E|5d2lVn zqGry7hD7aqr&o8U)bgd2nRo*e9TVXc;mX|C>X(E4P;JeQMJXnH4^G_X^lN3%Qa*O}W zt{8^=MXvWtyQ$} z&OhbT`T4T(pUiqPPjx)uO`1Sg+^zNP#^kD7FH3(Che?^X47DR0mOBVXg;AZyA@c5W zdO=eC*fq9%q{N7~#3$mY6OOq36O8+IJX3m-oKP zvTC(YF*u)bo-_AK=!+WHzw@6ZAMJ0uP>S7VK@rSU-PuS8Kc7Nlcle9EsX%zSy? zxX}}dnh9EFP8J@KUA>{m`GP43e$_(k90GOr(~tx_M{MQvdgKfk_c9rA=8SjfF_M0> zdk}~9?n22C>^Y`2bb0HjC=eYfEfBf!LNY-OJ&3vrnRXErIE2IqKZIKB#n`cdxgh=1%>zl+bG(~l=LQ5L(A5uXxmczXb z>=OH~Y)0Mr29qK(R&DYAW_x2u18l95jf@gf#v57RJy<85iD~WiswiVUaYeEonRshi z1Q{eK>DV9tyD=omrlI<2-z0J0lNhS$MYnD!(PwS}*CD~u^Y%5;GB*)=2?7#GFzWP= zMYwpGMHwU;X=iyT`07iC!2hTQnhtqf_=>4(st7=kOg;}qZLqhFhBrVNZVZ$JMnIPi zDnPsuN|sab*+oma2ixySGxj>_ZkT(CdRhlb*LBI6y_lQ469G$dB4O0pN#{+|ZxeSt zClqdG&nBBY{%tF;XUA*$DY!NyI4i+l+2C^^Q4Wm>@4S~~IfC?t)To#!q|e?!5+o4O zpBpff#C%sZgj<>sDgjbsB9j!9FxL2?8J3b@Y*AfJu;g&ULmQpV)UuH;j}gj;f3vA4 zLpZ%LM%3;>!_841t`F8^v#t zXrMO{gPpQFNe(9VD(i6d^sgw)p7<((X}hW@QNOPC#jpC`_ffc$k)c}Ib>lI8-4?+3 zCc-%(FYG2Sd&399pzHrETRTTb+`Ycq+_Ybq><4VrBxWDm<6Ub_(<@tWlFW}|nvx_} z30F4aWLSI@1AkwJdXpPse-NY*paTOr243d%p&HW8ibhuGguHyjI%Ws z8DJY%GZMSr3-=z8z>ZvHjHssuT6-thA^MEmvLz^ztib$!>d z-OrXM+64GltP2&KkQ(UkJM!2A6ax_6UZ5I0yp6v`KwqHhcV<&n>n8@uaHE-0M2q!p zl$m1nH%$Ox3Kf+miWT2v_mx>6*cp-uDzOXec*@c$^VQujSxGHmQEK}eW=Ecb@LR_7 zP-QhPKXJZ@>?U5jAgv+#%S%p`tt=BF5NQ!(KoHmr6R@rc{>qUdM!l;ltrvjv)^T#I zTiqK`VFBBDR3dVe)d5*l0AXHRgiOJFx>MHB%ou(=n@|; zQ{92#5?oxo=p}d^VB9U35Sx#mH>Q#>T))dYa%{aI1}iYjoD9y-50!`9;R#}ekSSk6 zjDhD~$Bl(IpUbqoXXa|%RH^AHTuL^0wWAP~^8|zC-CIzEJGo`$GVgE9Xy_f5uR+MMC>ziI`(yNjdR=AgDHfczf7_;%XI8AvNB9&<7Do%#hzB4CDw zYg`|IZH?^!P48LvakWeg_%n`zSkr%OBpr*uDmq}!GbSR*cT>sP=+7f3GPhaz!+2NS zb$zX45)2%1|9h~5b7|I@VN_T#FnK7mT;;O+3D(>zCvB_W+&z!Q2f@X4N22`Uj@iL~ zo6>`2Hl)|wm}IKa8&F~Lf!2ujUAv7T?)0OkWfN$QvE_-3MNceJ_?^x2obu_rCh)R} z??R%$OxrW{A$L<#Lx+MhT4q`R&xlO2^VAFW^p`y_BBZL%IZ=PaH%7 zPqHWs;vbE#f#bK2hnBC!yP8oALZ5i!P%H16^cS3bm90C%>x_m|Si}WJkTr5|T2iC- zZDrB*wrg;O$-Joq+iUHq^&H*nI{P8xc{{sgU8s?h%kkePIF>o;an7bw>X!#{(n*ix zU2baL|6jdYokp2#f}e=i2v4un=lyPnntTe3e4Yf^gB2v&?X^=vWhS*6^zu3P5m4fw7Bns7Ymb;{-WS9 z_B$~+l+&=Wm;Ih^Ex!fzH~Ni|K@#CjA{Rbl_0FnCj9r5y%88YsllLR4s^&ov5*Ar- z584n~*)kNkaiAB_g_Xhtur+8FaGM6byn`%PuREv;fXn+T3tEVl6_{9?-L+=es%qmK zt%YT+WSp?l#b0he(6nJMyisT}HQ)5f`s?hze>Mu{$(!vgx%NU$X0`(~mMn#lw`i9# zpS^&z2NDd5ppFX}q{uYyWF$xm+ZF2ll=@_`cop)mVF8XCy`wSC!>{LB^Xr<@2c1Jq zxon;uK`Bx`NuO^j;SI6vv-f~mDAgWuqi+65TuxK!G5*5xe-y*a;WY;s%A_we?T@>B^?AZeeB*n!h-Y=EzUK zj=-OBTG9q``0ByE?{@rdcm)}BFJ9+RHQAz+C%;X)Y2=i?@d5nx6ALKx@Vv{YiWYP8 z1(Ovmo4#O8YsZc|d7CBD*p0a1so#&Tr6wojGHU%-Ck6|RIo7;mLxeQ^Kgg~COjW{) zVGEV0$m{L4UN3K~fb{QyH`a&q9B%j$J z^BHr9`(VX?t{&mHS#H+oMR@gHHLKD*w!DH>*E)YZx)EEV0J0iaH&k&APA)_8b|J}1 zTkY;Wt1c?>!rC?!k;0{ogJtTRSw14qX>X`6780co*yX>(!2@9VjX?&({`NHpwG>WF z^NJ34>k(e)1p6++{znD)H49-puida-ipfq^%xh@j_R&spl9)=i{M`+)XT0?cZ#hY7 z8rbe|of_jsml6ElD_*-QyH3Jsrr+DAO5AzWxIw#_iz{3e&u_nmVA?Dt1Q|1*_Ngai z5=22ZL{(*i)7slCP>|36e0!`uoz7UkZ0Z*i#7@T5)OR;D*0Iff7YAlps{1$RUL#3(Z2J4K7E9T|OZKb#(CuW(qU3b3TCM76m9UrMN zEHmR%XpE*L(=urim{Po7fpv|z8RA?19vU>HP-76dE_W;Wu7=OUde|P8QZ$222=w8q zbe-<^03<+tO!#dk=8>qpj*FbS81J|{#>zc{ExW=`2R$SM$_bN2Lc1S`JLf5{oYmcnVYYQPE z)wO4`DoJIBBveB3`T6}5=Y3w!*Yovw++pOME0R;cA*49-j8mjII-yzEUT6BoUS9yK z2(#DyjoCSZ8|KE{RH$73X3aM@5k)Eg-=bhe2Gk}6E>^=6E$R{IUX{hIa~JVaUh+WG zx<$0?c&*}4a-0AB`K!JN4FX4)bbu)-{eOeH6hD&cW0n3TOvo?0 zsXAO2fdZG0c*4bq_Hk?tRq4fnl;F{|XJTIROmbJ2Rh+?oVWX~`&DjSJ@u@NFz^6l@ z->O!RjD7wW>c)$=#X0}gPrZ%x&SR&Vz{NfF&o^Fri>;Jer5QT4j=mH9Q5&nfx@V68 zm}XAE5Qy%VrT~_I>;FL@Uz+Gt*)u1T&X+}N1Pu1?>~>yp5d#B3({)RlcKMk9(=pa2KJx)?mOBoxeWUw74ospI@9Q_8C^Z@!M5Kw-I- zc==Lp)!!PK#T)?_4#7jFxrQr?d<`V%>66}-EGZ(A**x-P$+T9)>oWjq^fKMl-X8q7 z690v6eeM_hAJ|>=O|#5CBV+!H(nZZrLcYwo%YaoF*4e@D5$S&%n|^UjE){mdw@(7V zH%LvjRN{slLq{^m17KQhN%jJP%jTX9 zGyHtIKw9OfA3S#OnUjIYu_Bm*V_t-|^rakM8Z>E!{A3W# zHqDW#y>(@0`L!vDF#>&K1NCV1XXkO6I84Muqsn~Wx)NI})e5;lanFLFN3=@kAKw`3 z@09WJIP;fo-MpS}G6HWN5`(+>mk*XoJ-HxX^HU_Je8O}tzJ#K8&_D{xgh6^(UPtl| zz0N8$FaZE$HV!UzLtSn&a||(1yFyD;sI6hlseD{yJRr^jIqj3qsQch3@;a-u>6L%O z^#&W}=N|3NZ%(ME)lyRT1%#R1eRGZ9nGQjKOB9}hm(?@(v}SIjP^%;oK|i4>`N|!k z3At<6qX{Mpf{n6?gANxJCQkB|J`$8H| zi-x#r$roqSbhf*~U$}Ne@jgI*o!)rT|6BP;&TZ~aNMXP9Ha@o`9hv*Of{sj&YPq#) z*;SFpd3sRs!x7nAl8)yx!?ODFdiNgj{|CjG)gLx!KAazK(EmLIkj-FITa0Kru&Wrzbc8-h%Q!kDt z{i(C$=~Zj!zL(uI&^WXlmuWmAc8^0$wUhyEi6{!F&*E^|;KOPf<&DsZj_n(p$u-`@wKA=iV;svM>I-XIN8#q_djB=}@7{ z=GgvnwTs50JC17&yALJ#%tv}U!d!p|{qmqVR%>SMn}HG+`e|j%jt9~=WPs=W$9iuI zYJoVHaJ2F8KC{z#^r{q-VELS>lR&J{#v;?X8CD&*jh1YGc64pa7T{EKgk>?PExRzn zeyLMcAue)Ac3H{(e;V96wJJwO!GkGtdglo2?C_@jQ0t7zW1*2~#qO3ZGZV~-v$*6l z9+iMp*j0)I<;62@J0TLYtC23WZ4uQ=0p@p)6afSykK%XOQg^&$o#NvP;^MXB)@t*9 z&+`cVNdV2+rCRICuZwhhZIi(udM43B^8f1KKniNYErgW4G zvGIPNrD?3ctZ;6U{Y&7yWp>MJtKmNBdLPB6vu~7U=2;jrC~)0@|D}R5E{wZEC6KxP zj-cB(SbR#8NWf+WR>L^qmin_iz8|bzi{{zpA7#{cs1=&6s-7xOTbmhcL^ePmCFl~; zsOn!%64f1>5q1_ATn6|_ZrFim4*CIpAC#~TzlEIzor#x_jtBNbcyOK4SF206%oX~3 zFoFjPGgJG{(uqE9+(D}zANa+>h*hPs(fe)xqr()Z`ErWfIY2 z&go>(U!}g3a+Ag;{ydDor~O<;Sx{%V_pIT_KmBliws{1kOO*K)hkRGMn}lJcNYI;` zXCj(~Rs1sp3PH^7GX$d?_W2}(1Q0N{FPVO;Z9t$HK1a6PC) zFi6$l1GQ_k0@Y+KZ0}n+Td+3Mf2Y-^B{4z0;-TQnRFlG~>{Qt=ZW47vTw9rYvVY02eot zdHUJYU92J5_?;Rd5bMEc$UHtHvc?VNL-K;XuK$mKy=;SU^U|TtK|A7zx$Crq<4+nx zGBow2T&4C0Rm^`~usPYNY2IeCbWP-*0)>Yzk_&GJ&buEna<14PU*1Ct^IAXPNU#hV zi^dAolUTEbH!i}C{Ktn=0O{68RXKG{s-0|C^<@)Vgz{m;we$b+paKCpuF!@>@#+^P zUb-BuL|g#ADfrLQMOk>{lYhfkV_wr`p4wI->~D!&Hlgau#V;46)wXpRetPm-@W*ey zE)-kn^88J?ruo>k3`tPXGdFoF8!VYy+|25hHv7kUWAFY<73$UQ$cl#G5kfIpmho6B zL!*;l#>p_z&cn>kOwct9m*xBHyxLc{zs%>jZcdcl?ZoM{;oKL#aPT37nqA>@#72 zNWKmiNoRzINmD6?KXE*G|I+m=^{Xzo-~GFgX*!+*Xk{S2dL6%9w%2s?kY!+s6C&SQmhzuS=Im|5l9G+-~~)uPX9ZK|{< zwh{L}Z-A}KtZ8bU>OO0Z9b%Xi2vGCj#hG)H@{%^4ETzOy93THZc80Qtsk8cmWc4mn zCR6eSgqTebR1kNvFB6}wB6sxAlPfnl4oA@UZ#IQ#aA{1lxHWU8H}D9*rKm575o}Tx z3y{-_Jw9Hn`6A++J}i8H1k~U0Of4cn0-^$M`N#CKTg|9@0~JbLaG(+hgiyk6!>t)p zqA#b|co!_5Q9_@$yS!%JBy#+{M-7c;u7N1j?jbt=CfRtCP3Q9UUW=*&1iN_vNXRiQ zVTl9fD1PeAYbX!>#|<*BUT(-Ro5P4O^ZA6b)hlU7i(kO((S`>|0-+TB%V|>~EH^E3 zx`dGTL&%4Dyn8uMP;jjEN%fUfX6HSw%nhBzqrxW%?Hdf)!;vD>I!V^`OpE=nju=VX zt0KFPa){2I*7Yz+s#?Yy&Z&qZfxP6Kt?J>seWNCiG~k(=m&Nj*7EUE#MzlEt>B(6N zb*on@YSolYj$u!Dskr-n^qACaVv^Kjam5m(FO_8TDF>v;7B&DMeczV1L>GQ5els8w zvyR!_BjMM%z596g{)s9wz|;@;=>UN5XXAWZ34G$=f1G$$PzNCV8estb6RW~lQfunD zqn*U5^2`nhRd3G-dD0ZlNG5|w`dT%dE|O#ZSp`2aT`%Bq&bhTjO;{Ye$su~GKg&A1 z;6s4cUrS_RFlrCWlTp;B$iZF5OaPr{ZCykv3giUYBBPCUxcFE#6iGLag@gVF+k&zP zQd`@=T%0#jZ)yne7Ys*VW!5)m-&RO&?ia+wCml(XU`#B`x48lsfv{t$cRZl<;K^?6 z^Np_nR)Ng-nHeODb#@`|LZ}@P$$U^2&MxwB87$zjM!q1NlP0en#PK&8YpTG37#SW9 zgl%-BhGwGAN|HVu9GjrwylhzAMkDPO7r92D_AXmzH948oTtActoQejdsA?o|HjJd4 zRr97+5i3nP!d>Ux{@2kt3oqwoEeoYAwv^80a0D!;tI+d_aG`H^2a_rhKYJ<=?~|8Y zRq(61UE;=?=g;p=S7IVrts{Y>RW3gN{<26!P*QROTIR5qObsj@j^js3>y{SPApRq0 za3$6M%lh>%DN7Mqo5|VJbS90ZI(D){Q@MYYQB;`Z`4`JcDfLUvXRJ!JM*>r?WW!=5 zkJF`8OlNyXF>FdajSB@IS%okDZcu4f8%=!e_<*VIG>Lh$zWzF*@c0EiMRCsulYEZZ z=QT5IQFEVJW6zO7hH!Y_&){2n1^+A!Swd!WGBdMe)P8zZ_&jktUgSgB6mks1H$a{q znczRqW^umg{(~`2d6FvwU;ji}AYS|$V|p)$?Za#Cq(8;yI(1H_iKPQoNET*_9nUQ; zj#|eiWJ#*`1}p75F{UUDwycW(g2IQxl3Y|v-*IHgHz_b6l-80J!l)e#yub9$a4iV( z*rNh(j##>I7y}cX5ib&&x1TJz6~?39l$wMtnA*wJvS@I8U1Wl?43len;pc#VKG-8s zosmOvIY>!Q190UX*+Tg}%`8{!IYnP_S@%8K6JRZ35=T6LCi&G!n5O*vu^zHC9kFh0 zeKzXtNp-ZRMsp<|>OeVFY(e4qKkbm$>SLfImSp@oF-gS0;3iuiihW9m9rLfy zNs#(WoTR=e8%V-V=8|p3B+_4ZjVOc&^RWDpppp&Oc|3+(FaSyMUOE`4g7pj>3f6T)I@YNn7f>rDEd+66PlJn!=H5%POj zBuBOfa&_+^NEXd$D*yc-yDput!a^heOCI&IAvm6ZKV)*AKXddX~vsn5S$pG<8QAR`QIV#{}_R=$pV zap>0H5gYU{1(eD;!n`Dyw|(xBJ&T|Q|M|(kv%eD`mZdE`PH?qoQE;JSN8d~#-MQ<| zObCq*DIHpi|6%mbv2_c|kGn}{)>jjSUWTS89nFx8*A=&#wYmm%UneDnMsej8f1IpE zaJ9?oy_*gGkdr@zT=QZs`pMA|taG1J|R8xHO=cyTcUJwlD>5Ozy+4&;Y+a1xnw@3?0`ymUcT|s zF9FxKtg#>HzzeyY2;4PV`kr(H4#FFx(y>^qIkx15Jmfk|?^zbiJA6dKL}wR*C2$z? z*sJo=lY*O{@>=Ath3N_86`{$=Vgw&9++X2&&;0Sl`uw7F`z4I3u(P5ecZ!WAthr6K zpSw;mBf*T%sU!8SK`S>0vI|C;?=K~vObbNef7SCO(Hl=3i@)iK2M#rqzB-SXYpEpV zbjp5lNgwaX7m(wm->S8lXM-dl(~0w%$sok4;-QTI&O-V%hnn)UvRP7nBrH>>`~wC8A?C zb$@um0hgzmIJrw<_9-WcnSN;Q=r?k~1D*J6($o~bT%8;5MydcTqWtmmqw=`EXXcdA5SisyLo3Q@hG5K;99 ziKR61v0ti)qUdKyOPjP;dBrHcA!fGxJIol*v4! zkB}maIq~=BKfzFj<^f)}E(n&g^(80YL?Pd@No?$A+-*c=*S5dBk`MQ5g1yMh@NPJI z#^m~%>8upAc#gRyOm^em!}zaBik5oE*%pV9a4u(U(x)X527!~Ez$H4h?gZE@rD>3budICqiaLdUs>H=_tm@(zUh zl#Qx$wY(RcII0B7F@IlCoBy$rBa-GAk#kQek)dqSRm1;&BJ>`lcND8{W??qHf@c^- z@+Z-$U9UE&L(iKbH)%ZuHQEZ5#%s;~$@q*e zC`^D%o;xn=9c8Ix^Y#uS7%!=BU(3uK$Q81wo`uCv@}M=di_?ZagQ@;(`~ zr*ypYmVOv8mnZ#ifz_CvB&hwCOX$^P0p%0UkWp3D_+mQe+o~tqEG^d)OY4ENE3)Ak zrVJ)la*epfb~1gC?l{+|F;kuCcTrffB(!pI6U{PS^1Qo@#rr9H={m}U0TJhCN&0Gv zlB#5fu$QxNbd*YMK+|hLOo8V%fYViV5R<}Pra9C{7Z7lEkYKza*h1Cv4SJf;`3ro& z;p$rS?x!wuBj){e{^4b5C9jOWm!ER{S%MH8-%`FXak3qE=JfhxIYBP&J*C<%x%^<6 z;$>x)>{sLWd$k&f;I9#$a2%R%<#}VEAe@17a!S>3JSXp!H`S8op7i5U_L2X8t}7ky zcKoIVO|fLUW-jU_i^YzeyL*@&zXu27sZbfbJq5Kna5X19}%rd4C>ov4eEK{FrM~{0|Bu z;W;+^B2S?SIxABWhpdeMflNxRT_nN6+);WoPH!0`Giw^5bjq4#?+^e*(_F|`Isftj zy24FEyD(lvGEtNsmbE3u_Q2e2S7NoXmJMR$llJWS2^^j}_@$KTJCTv0+6Mhrzz+c& zCX4{e2$bqy{kXBE;9->8EHv84AK}!mb^#WB8Bm*3K27vZ=-q0bGk>Qq6Fsq5s?Dl- zp(4(`T(cSA(c*qE)`aI*VB(iazVe&1vrWJ=8)QMhJ#XHE`8P{cRQ&sZ6$*WD7f`QW zK)@Kr=p|MiGB6lp+ORwzCo}Otol5%gR%rZY9cXr-SqWfD2aY4?9i@`6->QoO_>E4y z=wwrcRBIK0mY6zi5XRW56;y6$l~%%XN{fMVWS4cZ6yjAuy2lG+%gElC9veg3L5)6<+fA zI9W4sYUh(M#?3gY#AHi5QrAcL1XQ|R;T+e^^iv$to>I4heZllmg+lTTTFVbF*%I0c(lhV0@2%gGUR9qo-5A}DWV zSfqAG$kOn#p%fxzzkKwp8%Dabs(0H|$2aSO(-g;pmOnIq?KwkpkHFv$2<&zI7wnA>8KEyzDMyB-qbi*GB6KBb zE~_NAsMm5ES79anxSPihKA0VyLKP%4ck+p2wmOm5$^DYEV&R(0#U?p4k%*-({_PJJ z%wA4JyxbD4iBe2F&?l7t==F?|W7?s_Jx>zRE$eJ>0U~J+mp5`nt49+jgkcGk@E;=^ z0$?B+E|-jcTME73pw<2eCVO=r8cy>KJW9k)idin|WSAYK6mL8rCTOSBOVRsB&m}(W zaE39SMsrALKM>j>B1)e|-OX5&Ng9kf#yp<)09Wu-7POZg{Ehqkwxxx$zm0t1dKE2p zcL&HiwthsB5*^@66KY4bW-K=YlB-cN<@mjcE?sqN^XTkeaXn_(sUxFz`m5aenHjw& z21%2Vf_G6>Y@fHcDqFZyadr`KnFx?HvjX}nr5|yXKjOA|gqB4?c>XMy z4x46OfJX$R(S_bIO^O0ZHI2_j)2peQz1s5B-E1$4o{8dJRf)+LToS2;`F*OFZ*3GJ z?p*a`pBk_*G!G{&oiYwbp8yshZW6!+hTCmos&F0H!CoMBB}yX^v(fCs*I?rK4?DUG zZOmFNbm*2tuT18Ug0Nsq{RBCQMf%f3%??bSiK2#A+cQ=Xw#hL<7DExuTwo35;Z{oxW2B*I@GL$lX@{Dy`xcW9AUYMgy?!mO|WheSa zbs_~!gT1j44ClD$zz60|^!M441~>L*u}%RS#wCAl1I>pf9~m#U!1^+6HFbrYh+@*h zLSn<0M(oNyU8qYUmm-@1cu#?og%|TPhH0V+gkPb4e7|HlYSqb=<^C@Amp-i{AzPDE zSgily5OVkH_~sSwx@*r1l{~?a#Rr}aPd9Ri6MAMQMIgLF@)P0hi;0I^S<)R52)%s> z9$*cRoz1N#o+eCm#w#%`pGWk1IvcxEH6^Y-tMyp8dv0pjgm#N4lr*MniRxFXmMPAe zW;AlvFw7#s{Ba8AI!qh9AUYyYCsT0h3|uLn;gVfqfIo(HdX`j~c#R&T?$D7aU98@@ z>=xTc>1I@6yQ2V3{&!v$Jrh+otDsN7oN}gQ2A7%de8sU8J=r8BC7;RvaIN9i#%3is zdH7>`{(mlR2Y?6zyUObr!9a41qUiWy6;M$%@M)T^T;qMBOH~M%vis31^$^Ax49!^!YlNgcaVZjL%{%={$`s~Hg(cDrGZbXDsD7FW18{`=OvU0jiZjjjjY6?RkkE8X zQd*n}laZj9o0V1ICC%@*xZPV(hTJh#4xaJ`D081U;U3&g1}$W!QdA6cE3aIpY4r2% z5>7ddKjQ}E8h$W2j5Xjys6Wb|L}iS(#GTUK$P*#|O-JJ*PZ$^5t|D)f9D{#=^5X6*UOrQjowo)oh7eMXQV39smy z3E74cO%sQER8iuS5b=AhYDjx~_+|0eLbon0U(DoL zhEkK)$Lb5tp63N?-Gba#E6WWx+wiged;o5p(T7ip$p|S_|aAXa-Z3_Nrk{;T>FfLL@TUjTQ7-c0SGvZATBsBw<4Tq|B+#uTG zwTDB4aWS_;7OJm`_G}ESDM^X&0n0EUeadGN5)-|xv~2ELUD_>T=tS`N#u$UIJC&|C zRxfv!Vt7Y`$#{zeW31e+vo7BCWDQ_Be~JOi`oXHZAJFt z(HPjJ7<|wcs+q|X#9)ruVhoa~0;-Cp#0e$qFYgXXWlr zm(`M*Ct~HQCR4kKE|04#d1IBNziSJv)ZDF*yA-``8NV@GVf}bb;ZRP^bo8a|8_gj7 z;8J&N3)pe!Hd(HZlwvhJwG4BozzV_Th3-gkg+@SeR@7qx0%;LS@ecD^#6l5wSQ+(x zcu1}Wln|&B81^~u_C6z8R-%_u!mO~RfLILGQzTc8b`>|=49I1Qxu<4WOzSrE`-r+( zl;>`LMfBd%ep$6pmJ+VjKMV5GlwGS?7MB-C77Qw(jf3y>hQAP>21uyePvmUsb_{&>2_Q4mcVlT2nE@{$A0iYO;KNZ7J#t2e0;#uDLlRpt8aQeeZ zLGa&50Kdre_Yn3kl7z=7@WFi;9|7n|vL|CC-veEGpwS$_zz{VExZq&|kDvtx0IGBL zodQE%FTm0HJAg^Qkl>x=95D$8LSL3F@!mgSb9(=#{tCp}jy2Xn+88NR@)i|Iuc=ChPAXi-Uo;=%)9l6_D(QujnKNhJ?3-GW%P* zn{P2JEK$JX@%*?Z5?W0-==_ccxT1joALrpgM&SoFE10t>sD0lC|YsJ;5<3;C=bei16DS+j2OVraT zIAT(~j_OCR9$L8s8Ax_LdDe;N!bVB@{}h>xmNfHTQA*s~rE8PiAsFo^S}sd{#%9dS zWfMOw*GEmw6-qit0-uY^MwkyHpEd<2MArCW18C)B&4>e4B+dBoi(w`B27s{*hSJ5p zGE0fa1xOcEO6*;60(4n_%5s*cTyY+i_N!Q?+iz!8m1wYCjd-H^c3}#na5m<+;~YkP z%Oxxc=?i62rh~E3rWcFWbw}sPNliN^d`sx3Ewo1_#>$JW^bwkt#XBhg%78l)w?_?7 zHxGxZhyF$ZXbw|uhDqb2|D*tmkCd{SbfiGz(?;&}#2QJPttQ2{T(t}@keQrPb(C<_ zPtUjEEb)N#O$DIDlvz-x)uUFl>BPfx zJo2SruNYIKF^|S)-z#2}D~|ldlvcH_$lt_01s8p4hX0)VV6ZK6#MzNbW*mBd3lASv za%2mM*Q@^CMORQTIb{$QIL}=E*_6AvjFdcoSI0T;Z$PZW4vIE;tJQX}to61T6%pwqqT0`mhirBW9EmQ>8O zvw^EEh~M=Q-V;~THD^3oy-&nv`JNY-<8@e5Jo6NwU}G&4eIwW#T#{T8b8D}@bnp@o z-#~a<%PdssaEzMz%?_Ibgw|*8b?tjVL|fdo;$-EXkq~$7K=8o9(8^4&`TIgGfc(lv zuWWgP?#NguaOR!J0=GNBP1Iztojy4vcrqGpFKOV!z_GO5c-|?((s&Lm$W`Z;muz~O z0o2~QU%c~1ddAXFFGN;yHYIBVoS*FQnRgeKXo^xJ`OFQ8@UU8cq8f<})a)0>y0mlH zb=dsyu9l5;iJYAoQA%X~u2{=zmpvbUZP0k5!?@RSi53IIt5kLRME%F%)FPEBU{^SO z@)>vamr*72ITic+7RIiY7bESz3g&&{@>HdAAe4efFTM z%Q+%=a#C+e*5DtM>s_kryiB7}snGvgN}(6c_=lBSe0bDVfGJ1Vk+}Q6-#~@4tFEU7rv|8AP94sRmF2v)g>eTnuw|(9<*iE^s@-wk(zn>?EEDqJ&JFknx|h)+9k|9 z$?+I>%YqXTbjK0C*(0$#Ir}1U)*CL6T_VxtSFUdz!IAMvdleJW{uX5bM4O@gy(4OW zT7!nA3Js-IIqKim85+|M6>uLiOX8wcM9N-A#7i-AiIBEtoo{$Djpz?9^SOWIDl6c| z(eN;AHtWw|GgHA=H9zm&ahPY#9{ycBYp9aWt8He3wE=NS2o|$E1&grFm6n#b#Vkdm zV+IutA9ZO)y_*%4B`Sa`iJ|ru%2uA0!+VJG78lo+ZY)ulv$+2m`g^9d;o9iOtbv3e z@#u@foj6i<;+1&T3JohRms5U8!9+wxHx^GYMm)&K>8&HpHQpM|jT^Cb(>xQsyw7k}z z@V|zLHIq;qhS?Q^cP@20!v1aLYu36jM%DCCt8#WbaFLhi0)TDt_KzrSwAZQD{)v5; zKqJ~Q&5n&}-VO zmx$FN7eA-bmdrzw8Mi&bF!Rs7k1XS-*llqxdp1&vODKYQqU}wk24$ zRzpDqFKHX`G%+BKC}|ac1HqgQ_?YY4U=L&3vyy)Gf}gULw<~)owPB0#A}85w zj##6sX2ZH{je?is;v5aP>y`yPnUYbJ#|j>!Y7z@h2_ctb1eDzc^Op;zm*YS&5qkjZ z`QAYxcVEylQq%=1v;qi$c^uY-ie2}GR;=^f4gJ$9#aF9(AW5LroU8gePLf$*QO!9_+pfZ_Ibm83O~r^wU#$Lq#l*O!Yupg zu)53*yi<=|R^44q#-?xdhIcO?hF7VC?>kcY6W-Rq$#p)ZlBW2aU9Z z_`w;=dQY6F)~fws2W7ab`7q|NPHcMwGJf66@|#46ODj8ZH3uWP`fbZ_b-h^?lI{vI zKds38Zy4UR2*c8O6qnYmVx^>Rd&s7G`+BV2q*?BLEwbqiY4bqg`pJVsb(9UElH@w6 z+B_B5gbFrB;-^q{f44UI6G)`vz}MHzC`4#$OL|!$Io??#hFHQRI53XM^dNrQf$PR4 z=q@81tUT`BWDL;X`rr}r0i3(OW~0OuBrXnC1^BSoQFkt~ZQRB!YO`}Gqiv$fGa5S` zTdZT|C1K`)UPKy9@e8bs;)k>iX^a@-+4!FQ!|n3#Zw(d$yUjgcs~JI{Ql5#P}+H zo0oxrm3@!RW9=~8yX_ULA7P8av7MH-8$)lTh>f#4$Ytfb9hKyTpAwB4=KW@6ryQlH zjxZ*bxa(ryP#}pAz@z_s4HhK)?u=Cnay=FbY%@l(>r_O!dpa)}gdux9!odmiwoy`I zYMR8i0z=M2PZN$S0xBxBJ81afeIGb> zVrb%vlWCK3R={8Y&^B1_5NzZRas35EuM5)QXxA+d$YsT<5U-f`YJJ_Bl@$Ez;hvaO z<=wa*@<|`WJXVoi+OpidBB}r~uP$~|aVyxowne%kJanSLjDW06yq-mE*yp@%vI6Uo zrfOBf4n?(NMc<0&WJW+UgY{1e7@cd)!wtXY5@;-!#N~7h>rC~B^*s{i7()LXgb=9< zA~6_HOahvvAcj&boSeFNnJ}mCQIym|Xt*@WX==YYua~Ak{B3GvNmDbX8dY8WoyC`K z;ceApWve}x3aNhAwkDI=_GphvlYo38BviQ}>9cmdCD6?z|sAL7ZgC)dq zvLfY|>SYL~+wE@NE=}?%Sb~Y!p>MxxI8V#f9|?=Z>5PXF=8V?!{aBrr>#Au{mimiV zS8}k1tZm-Vp-DdN$_a@lDjRTZ<-RGy_+#q&bN}EgackuY8?%dESP8e9>f8Pn#O;eQ ztKEjCr`6#PeVX(Me4Ya^KO?gKcRwYt;I#J*&e)32RSKs+j(R&eBOsEpq>VuUYoJxtDEpm53Wv6E>)#suw4R;;| zEf;}cV9Z#7vnPW?L%Ln%phn8OAGNC5gm;@i*Lax13CocoG~m+*$^Z1X^v!WW_Z*cf z@t#l~^E!^Kn4(2TtZZF~HlbzCV0FgqK%qKSd4y9fc{s*URj6+_<_4RH{>w}9KKTa5 z+RI&H5A8AQy-K?#93MLJMDuucrSELENh1mv21)AX!>Wz%5>*^6jt)avr*e?w(Z z{dD_L7ge#<&|1C}ld`1v!_Pc%8iZ93TBAjE&;3|Z_dSA=g?_cWRc*^;XrpDyluBSjyDaWSV(hk2iIaV2Ki5_St$EyJ zje2D$fMeT(viLsZIz;FqRW9dX|m!f+Oe;Dj%(`|5hz8h~6@Z@EyM4H#g=zS*y=pHCB? zH}3mBP#%niI%$=ilAWfN$m&v}#USxK3E@q)7|#CBTL zFb-xjaQ#NL|Gs6s`)gV+-=MMHvEw6% zj$>j%F3nQL8GzMcvYtU`c+-OHn16>|k6|XeAsrz@y_O(qIrfe5(?qze`%YN=ExW!i z-kuW)kgjnr)zOe{>!CJxtlXUu#N{bOXk4TCs7&{-37qDnY8CEfv!!yRk`md)-4r9r zOuY=bYzFDS8&`$%sRm8FY#TUMu53HrX_0)C)+~~zl$$U@$arNJd5st(6Hyup`S7tm zeN6Oc0P!NVvc7G(+t*j_(i_N<602t=PCSwP*1X%l@#ImVbZ04;qX#fCBo*sxPnpfd z)qhl)j>s6$n#T4Mdyb0ZEH9?03*X3CDi{-+RVE-7#SF}0ra%4}Pe)51DMvn_^8 zNqN_!>gnL@kzG~yXvIH%6>Dqp;O8QoD$&==y37B)34w;Ds5%In+}GV{CL=pV z2Yuf%uT*Kn^E?yD2ls3e`V1vPVHcNU*Rd?D+l&@simHUG=SV7OBo%P+7jl6?5Gp0Y zqe6?wof!vKnI55rh5VM~lmUuS7%i+$<_C1{LeZ+S-{)`4P)UZh%+VREmm^__kq~t$ z>+$7-@WPlEUVahs`}jXlG=NcnYW!mc2y{*i0Bg#Rf%(7myX#{dk-sIf0;e|Cj# z*k;+S>?+7;GC~?0-1j=ZZHWp~$LK*m)}UXfPhTw~O;qK=Ac^M7ia54e=-g z^R$$@Qh|kcC11yeqp&HyhW#pZ6ci!?4~0U}XM2AjI(hH#an0kPt#xS@N%r{S4S@m> z$lq-{43}gNo1hK*F3w22rs%Se@JiYVPjJgBFBG;j_Q^m^9sC`xR!M0{1m+v^plUdV zL@AkY6C9#>`>DUsWLa+Muaq}6PJfJ>39T<3P8O_E_}Yt1QDwLHNH4eia0;n@oN1dU zs(h?MkzzKTUJx1~b77-l89V)?nyJIc?yQ2`!jj)y@OVj>`ErIR)BH)H<*kCx@woIL zrCzbrV6{4+mj5JDO_h;;7-^3{GE!1i3d=bS98bWKBJHLBiY=oE^NA@8U3t{pdLEN=Gc3RL$iU`pkUi=#YYkgN;)s-!SxoiZh88R`j{;h16nleH##6GY6xhGwyR)i~IUYD2Z;$MLep`%QB~w z{5meEh$fSG*&mH+e6$6(xfK*u94rhoYA5>~hlrCUQS(aQy43EA?i`~YV63KTZ%U2| zgO5dqdscHmfeIjgf;Pb|S>(Io4jDKY1{Yo)Gt1%ZA5Ly-l4IUaRuoeJFDbk*>fKF^ z4q-@dd|$IH+^S*iI}LifO~A2P`Vu1A#eG(UU96Fk!!w?TO5?_Zx#6+)}u}3%E zHvIJ=v+wil@X@>&)+IhOtJKhF-UNuRV#-h!GJNB#8f)mxkTI>Ko58;xZP0leVH@CQ z$FHXU_-t*eT;pi`(?+HyFIn8ppU8DIkCmX8AXiL{ixtHkn#gaZV&y`{ZCkH1Da2=p zHk5rL z;SI#oaplyNlkl`%jE_-|k5z5to>ry>OMxRpcxv`6U!n^!u|>&e5z}85DvNMF4h~=d z@*dhDic*riUB+%zbM?OS8BQ8cID-R;5GI4qNY<{5*^#0c5qqN^ZVB39WZLqHFNZLP z#ka6Slzn=>@y83IGAMdRCtt`&*o2fgYY~yRG^4NNH?vRq_SdgaC{{HR zmGY&Blco+!mEp4>y^8&G2h(|RtQXJu;nBFf;ZCfEfx+$bEe;o#p4iBlrUOjPd-5Ye zE-};pxKZFw?87&^F80U6)B6zKc`g7bIe;<i&A3DDKC?$`Mt!o0P8f%Y9nR;|?3O(X?gDVUH53&?@_-;Ow`v z@~_U#TXWxY*MvN`;B1OaO{`A_Dc4){&inUsYF@kVW;gPU=~7~JV0xH52NwFo^~ij>0L6IlN%WEOfTeF$C&$zKwWCNu`@;^?8wk} z5AoO)9=CCg5cBcQY1!4!`YakZC4Z=wc-sESYq4LsWh*v!(OB@(_~yO;S&a{)K3e^`E?m?uJ5f=yV5z;0`7l7!=X9LHUC>3`SxBjXtT zK*bmG8Plx)DLlQ%M-+8?a}I2Iov6~i=GItzEu>oW>)o<*>sM%vzW`)&NskP@j7gtaIHl$Q^q}_FH->ylHxjUFK`V15sj_l*T0B z?rqaV8x6Q+@|i`#{Hg34FlHceN&v)A-N-Su>U_zt-Y9-PpL8|cd{&EBg8h1bc3*HG zi!n^N$#cKK$@j?@PKG53mF6F(4;ZcFtgPVdP0n@{Tb8@fDtKU=+p(KLq0{(PT0(Wp z9k^vM00vp8Ky1NE`d9j*LZ>}G^pKTm;ZUluX>^tX*Z)y;-v3m;{~v#y(y?+J>l}NVCYUDxe; zKJSmmy|O+vy+Ok5_eIKfD#}!ax%rvs$L|;Zy@y#nh1D^zPC3VH;m8N}X#Pz!pSxt; zSGJ?4r0Gst_iUB+C(Z3}1lf&zCypqwlY*`is2Jn;3$Q!qr1;OFcquW>k+{0(8r3+! zYMg`&OHLMPmr%-uACrN1b*U5~;Z<{n@D?&_EFj>H0?HA>wG~c+ zCUWxIXGwJVSjUS6N1KQOS$+Eu>Z8Osu9((Kl*g>ZqC{2zP!h(ECP2v~aiJ+bq8fW&L}29| zS-0}nd=9>roDti}yqA!nPRNv)L�WVs0gbD{!grz|}9L+h@GtyM^1NK_>~UyPtUM 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 z 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%0DJn-^BvuTFA9edZw)>?P$xkPhp9_#UlT) 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

    3^Kke6IE{fU%#x zaQYUceZw|5p5Ny_1$yVsb8?@3r*pX-C}!lk$Zy1Abej{09x05JlHsfOeX^n;;Q>*S zKpmNVt&i;*o)hxpM9`WK3vRE|wQs)*D%Vl8HKU{!G~jQ4!}DeMozGpGJ9hf8A>uO3 z|G}}w_A7lp@REh^lS60~nE>uWr=zM5=#{1fm#~xC%FM(gg(^8lpkqSE>7r}NggTuaPrL8S`A6B` zt*Tuu1SrtSlHEwSrq1OVP|&h2|2oxbq0jGK*{-wPYubtI+rPRE?&cqvOPB=e+;Q{O z)oSeKZFvrn6T#!r1Z8_0Rntc8OLtyfXNWuyTAw%u)V9n-053CpOV&ph4u-wHINm(TaYfxu%w7pF<9SUK|jE$~cvg|?HFI0v{=t&^y5|F^yD zaH`yu@&vIGVcFphGm2q%#N4=Uy>ZkFr0@-o&uss$X2}*wfQ20vB68}oS{~@1lg^ej zf6COXnr-Lzn3N3UXzYN;D~T5MPI(`bMh}YxrT&Mv`z<)iP@d)e^>3PZ5LXTZzLm`$ZvnHsJY?+S3!0%ZpKEw)l49A z79vfE$JanmT@$C*%H`J5uR#ea#)5hBUnI6&A~##*5xMeL)=*PY%g8SsoejaZ_e+xY zl){4#j5=_+6`~0zO0z=(CoF~7-Uji$_5de+W=h~lcgZqaqWD?Rbhhr`MLIe1Qy7=( zPN*UpX>Dm^@i;b&EUro${y@f6kYgqBifUwBJSon7VHOHwBT_I7>1etvCv-n(8M2Zd$4>p(~hJ1|i zR0$I@K|zL>0GDDcVQHRGg?dWms6RpXI+?j6!cFcptoKZQ#@g%rP7?OcK$c^RUD9cu zL&p|dWU2bihdE|(;%8;Xa64lS7t=_9Y=b6R$klX2vD7N0^Qp4(Sc~&Jc;^N;a$OJ2 z)v1|_1NXI}BzSI}o3FXTccoj?_;j|SZVd6eq-+_j;^fAH!jbCkj5hN4egla(h1LF5 zIa(8uKh1Xmu@;~WK75>19`tos+lPXuYrB>NRc9pFexK)jV}CigN3wQbxA}Cnj(R|^ zsFyff8dm$sr_a&n4_ICry-Bo-SSs;pldmU^8@C)mivLBH`zIOIj7!g(%$!ZfOC(}+ z=@va&>gBLojVcXuLjXL_A=S zl0<1TR?b9vvN(`xos6SVo7hA$`kzR`*buO`@fnr4|8u;`pN=KdW=_%@jL7D2*!m*7 z9!rH8DdPjKH~S%zqU635dMXI-e8(C3mM7o|h&Dp}5VX^G7}3HL(UI)8mLxsOBIDO> zkrQRV|6Fx9G%7GsCNV}^+<>{&%076rF=5Zfq+ELU-X#YUM8c`F4ZM#$leikGYwuAi zu82$w51P+Q5dVhob_o3J$T z0R>#tB&k0A_?9t4=vP6tHNsY?O${>krWe=$nEr;YDu0^e`HmX3X5qc;n_yDMEhhtH z(0wz&HX)6DL9jJNFC|{T+8T!KU*cQH*&o>#y}asO2+O1E zEgIiQ@ZoeIupc=$(>U%Bv>EHzO#2Y#D`K}Aip>QvOeYhqCh#$GY|cfqegP0Zqr{1R z`f20!fz5|=h zXl;-bJ0o2v3B!^sYZaBS_ndM|pr*>G+0&HVq?KAP_Za%z8^Jx|F4`HS8n&Q-flc>w zG?9~649-E@KW~}g#T6F1526r}w`~)n)+7>jQq7dbXaOvtddM;rR%L7686;B-DYeIt zAn(k(^t$$aE4A~QkA^;Zq7=`j0e-I8DDrR(tG=!$o2d-YU1i)#Ga1as9gGmH2*hE)jDxI&EBxR*DZ@yj1|^o}IYPAQ+-qiB`OgIW zSa7pdt8Pxd{)dh4829$x8N=Wji<{OE#D&ljY-%e%v*Nk|3h@tw)Xd2vckX|$OE69Q zUC`k{i>(KfCT!0V{YX&l!r(-D3U;yvnA9js?;lc5pM3A7?PCjoU|d7t8q!r*8W!TVFr(g%o5+u2s#^U zABZB#jca(c&{+7*(=j2h?u41eLVvnJ-Csz#_(4@=$t)P^nwcmaHWxaAF?1- z2H{#?{8A}yJXnpjX3uAY{dlv&l5A>NBO04(MEW^#Z!9q2H%cEeBfYmjG^Yi?1>x^V z9>`jyX3CMmpETw@Ul$vdv8Y7*_c{D*G~4N--JUaxp0H6-{vjPHfKCrdg(RGUZaWG4 z%x8W35Hq(biYyHO6)(d>(D{-tOv&BO3&o)npzM0I;bs8bIvB3D>W0kgteMNY+NM9d^9J z?!b}qsja|7NVl}%K)h3c{dTeSTM`O#>QQ$qXe2li`Nblf&aZt5H3ciCsOI8hZ!`Kc z_*r@BQ0+Pi6OIJTRxd^I08RMsjupqQomGDOr#r4SvNefjO(Jqam&6QZQNb;nygvR= zKD0#noBDOdxPJ#2+$0pUUYNv8SWqmB7T4`NRaE|)1miOxj!4;hHSJ_r(L;n1iiZpHeedO<#$EZt94G*`?EUsMD$||N~lu1i@H;f zQeShXtrv}7!&CiGX%U%dM(e=sXru(reS@%94G^zO-ZhiVpV%su7n@(If?b<~eI zX_S5=yX3>^4W`bn{Pv7!@FT**(jb8&F?Hp97$L9lwN+qb8P5LmXdis>XA}TT_c>U= z_g@0=q6GlLl&Fsb_-7y>@WWA@Jw^LW_5WcQcIfiJGZ1*dCl@0eqX+?uzNY~q z>925_*G8KQRm_NW7T2Cb!SVW)%Zfa93;^i$2A2hdKri{wWkuD^a$6Je5WwLWkM@{_ z!3H6B-QXAIr97lcw6b46N;0^O@sTHhtrG5!EpM&Ol2*>El-Y+sBql8mcX5Dn zcM^uCj0V39Sf%|3cv?(l_D?x%clB;5W0Rz}lu@hW#I=Ap(Xp*dDBRcr!@K5X3+3#} zR_}Z|?bKj+6^@CYgAQPPdpIo)cPjm#2nJB0M~;;?RmwGTDIP0WYTW?ovubO_qrxWX z8F4a5zKXui#psgOuw0M#NEjXR0o)wP^{6ssLhykc+?_Tp-f+|gR7SYB9Y`@*sDUc0 z?AV^``ghPe6}Qj)^6i3iwTP+!q#pFlYDYe+uMu&W+0WJOCk5YR4 zNW-j-QCn$z+vaNx6SH$ZM&=OxMLI?$g01F?*1<#dr#p5Tl^D(ctl>c&hGCW8j&})I zVn1xXfzxAwQuY0H$HVc?vJaO~G#RI+CYIK}6oX5yV7z?yWv5K5bS-uK3RIh&u}NO$ zUa7d$$U(Fib(UVP=j*I}waoUJra|M_XMkWP&0L?U7ElwO0T1{iVJNI+a`bYz~ua^JKdD+1if~P^i7IZ06EpO{c714lunnNU6)K; zx+X57kgGmkVZ5{@^9?K4-1zd9+;>=iE1hczhFRFy?)Oc$4vjZt<;U(fw46d4I#M@& zhh5)h_No+}E&aEBg=JMIr;Ui_$f~e>yGLJHJ%Ni6!6BA9e|%D@ezi1qe3D&v^dtA7 za|m};BlW{-#$7bys$gw170>acD4(*pWG)r4)5xaM5&Lw$c`vxZTAzC;cPe#2U3RY! z%r&oW$}h#JK74wpzuM`VuE|gE*8o511BciAwHn90=M!bu#ozLNE53Lo0FK`x!@T7>C(a!yy`4%{ z1&y3}dtp$S9QQh>B*gnB>cU}!qfgZHtpDLG#HCGfzU@mqqZ0*Y+-)AWJ(hS*2BXH_ zN`mT63R`W~^-D;5M26|JyV7AKT`TfWIyx-4DGbwCfVwy27nv$n|R){=Jpc3w70ZJQ1Z`){<`pIvx>QJo=T?%QoNkj5L_7 zn%^52^_~L(tI=gnka8Ug0D23a`!Mk7ZXdXYRPD z#N8nq#O~FQ#IGHOyL8l)zqJ#)-m*9Wt;|6-I%_RFK-bsoK?MR$Pru9TF1HqW6D(M9 zP%$VgGa&w6e-Gqr0NdTF#<#?n_kIAy@ER0KX&4{{hd{<#cnyR$7|I5kjndD@@76&FSwx~W^NL^nwhsI^DeHqde_{LWo6w_mXA=9)bc774v~Jm z{^80U(W24eYrL;qbO9QCe@*_?E?)!T;259q}ICsNJd9;j&&FXR|A&suY0ZU#j# z*~no0Tcy8b4d+kDciTH#RKP=gP1f&F7gOqAIt`APX5Y_G z-&+A4ocbh1Bpkr`=3U-lg|IL45z5m;XF3Y=XY>j(vpBN(Ec%OD-=fTp&A!69 z-X>UpH#6ZNu~HN*r5FB7jFxazWTulyoo_YC`x%vS6B<&)iM{x zb0)EP(6EkAEm=!=X^QzYf%6mc!hjhV-P`d^v7wM4sT{Z zkZEQfq-^w^&Z`~uAFeVeH&e5kqOK)K1!n5Lt?qs^5cNl1tnU_Yu5&Hb!^-Olp~W@RX773QO0JdYZbxgkG6sO6fzyBthmmcUgE*+DtJlVgYd$!@2_S zE4`68NS8ab;xhmhQ@2S8sG|KJoEFz5Y2-XF>jrnW?B?ixY2tuI0095duXHyR`Xkfq zBa^v7UAeTXp;VcSyX2w}j+r^Lg9MWR3ThFv-q`T1Do9!X7to$&U@O@ z%Pl4D=~@~Y)EE4o@wtJ)!pc51j>qy$ourar>6N7-S5lU{6H$t{c$t#p_EPj<8Qa2| zKFB82SUrUAsZIQ^m6=!KR=pnRbxA;>rT|V4^jGM4x8SeP=2X`#tT%^{3Qoz6nKDx9 z5X1W9K2wAxky~3Gsm+sJU*Lv8&y?i2FXR`;Gxq0QQQBb+0H+KivlkAaRxx@iuT!QX zYWj;|ltmad2FimI@BDwa(uUh*GC&boX@~qTqI?#+q~$k91i5z?y z@LlX{0+UW_%Boh(0Id}M6TL@A~#A=8LeIaM<|CH-ez zj+ky(_8)ytWUl~=(Z>iiPWkc$vQ?t(M5j7Q>4F@2D|-f#i$EF(wX?d8r;eLHy449a zD-2zrVOM~zM=xvZ$8*E#TzG#6GmUlqxhe5AwD^G)h9nYU`!dgi zoB1`fJFMpLJA3T}+g4Vgn?9npnMs*Vn2Ax6$7zY-FwnzkzbYsZ z6Vy26?Y!3>al*9K!9=;A8rMK20tE>lp~pZPr*>_2E;Nxxo=zrPRz-m8amlZ?tR`nF zc&09YI160!I8`cTh(pw9>axRSes9l9{bQYPo7wVZN) zpK@}|=BlbXJU@#Hi7@_gD)qU_?90jP^slNXiDVTaAuL@n@Ko{|0hJhL%_(8?_A?Xc zH*tbH{hGq%Cn2e{ZX~R(KwP+qmTXS)tSQ32BuMz00!!7DFlVatL>Q?G?0j2~ zEsv^dKl_R-Z=?&h%qHpV6Dmt8`S>fe5b{MmV_kI*ZF(TC_HWa@wPc0-tNPObgB7lo zszd&NKVB z`PJg{(i2NLXnGm(q}u0dHD4K5*gR?m%89ShG5LVQoYWyBAN(QCGoNwcN5Mzor^;-P z9B;DaZYl$Bkk_1^_J*^!&SrGHBJJ2`FRU_Rb&WYlFNSiZz_bpWWqTg8 zk`D=C@Q4GSHek?9&oJ2XOrvKBeR^1~Jj1$jwYm{G`NZc^uY!?spav`APH&2 ztxHDXtP_|8&O86OPGot$sXTyi9y}z@+$ZVwbe?&dzSEmWFSdU>8hZPy{!BET9ItcT zgzbeXcl&Bf*(rIywvhT%>7BFFfd2E9cj*HViJ2W+1e!$K9PMcuk-@gxZ}h?sha%mU zpWhZXOUnNgk2VexkrAY<-OHX(Oij31i5|=S+Emr8-a$O}9QaRA*{7?zJt4 z+|4Yzd2O3Z%KmDW2B;uWOQ0nfih01Q)j}H2D7sxyS{{tfWmUzx<$8abfvGe;tI86` zd5Vpeccwk3&&zd5bKv=El=ynL_3eTmw0|Fb1o zDDklHHwT7|A#J^i8S+hfQ#ZqHhiUDqh4L)5xWjr^tEy^K(k=U6EvSU*zVKg}$k&xJ`u%!SgO8C61)QS9L zv7*R+3~VT|BflUf_{DdDohh#KCOS)_eSb=Ys9@WLHl99g~*E z{LreZrd~U|%jw=bl+x_BgaHfIy0^bf9=Xi2I%-b6NWJtJSvkFhuRX2)(~Yd(_xuuK z99VWOw>0lb7VBBDp-jU|@6yYA01(S2907=>rL11X5e6Ce87gr3IXJNCT%SRy5Qk+l zJM9<>2aR{^rD7Jj5#8I*t|>KEum)DM+b0Q~(iz<6VqDzI+%L>OgUKcsrb>;9#yfL> z(>680FA@w=W{8YmjA&H}T(td84EaS>Wp%SL;>AT{Cp@U<*KYq@5N}}JRwdtAAkodU z-9X!0V@{ECx|UdZRDE>kP#(JpzP0q2c#W@9_-UF>o8;i^;ef7*VtkQG#Er6NT-E=T z{^BE5rT%m)X)2?Ae$*v$51PfT;_Y~%$O1l`0!qDi*&Ji%nVMlTJn0JyP{XUJpVEpP zN2TL9){2{sLnZ?5U{P~8tO=uvS<)>Hhna|9Q}(__Y+l5Eu%H*r?ULut8HP z<_ACe{nN8nQ%(o0IK?@Xtt{czH5bz0ecEqxQUqn1bhjM6@`f$qNZ8ty?QS|dk5q2n zn(!sY)Sd^Qs^US44{)wgP;?Y`!TAq(ZED|7XfPN5+92~Gy6&>cUC>`vJBZUgP};M! zcJquzv-Ov;|FZ*09zvzIfu$hag=r`!qO=^H5 z!&Ux=`fC`oonQOF!&f+a{wO^TFys|(8Q?znu9gV&S6y1B|4$-&SQO{U^64)?1TgPR zXTXi_pc%lEKb-0OXOc6HC!94p*u8LZ+Y@%~ARyoPs@b86evuQ?t-G0LmY?*46*TGN z;69i7i!DRHzw76^gSllIaPxmLI-j}uX#;it@V~JB`}-lSvntkD`p7;-7uo;MoL1o( zol!*8GbaMb{JC|LCmiJ-==Gdd*FAF)26ZBCc2IX!=g$DJ5hg~euY2WT$3lZ$W-&kW z^TdJg3X=g0x0vFc$qN4^$utb~I{?=;Z$~lL7sQFNN7gUDv>@+p*H0_UK7GNwh}(TE zO*cmz*xu$^L$Jrz&OU!F4NtogYGHAzWk#+Ai<@gXRaTp&9v`c}06ZHQd&?81OM#yQNEh>THxa3@2d&aqTXIx07kBG={TDOAh{DwKdx#yX^bt~WiXnc%asnF*U$!`s zl13Z1)U{7!h}{{38!dgBQ#s>!P#^k|EulY!BE0Piw+Mp_xo%s{wh2roPxOW15A);! z5o1o&b1;KR zzgjx&Jx$EqVfJ5r>0S3$#n_H1I$N0iPt8{f(X%;#w8(ke2Z!D^ux`V~jSI=PR?++j z6Bm~7dABV*wsPxH(A?nRAvsa$C(^7CX+3cm*C7?nRtKK|A3qmowg~(`hR(&G>Hmx4 zpUrLNHX}*0nVFfn-!Ik7+(vQ_Nz7gHmE?=0ncL<%_iHXQ_q!;UE^fIiNrf&yxsxPG zD*68W5%0(2ea?Bkp3jm>q?&Dp{x#M8WMzWjNsu*f+XBQlkek1;+H77B&6=d(3pRvPVx_~lNRJafz%JI>ZTyBbaenaq- zv8}&F-Gch^YqY{mFPoI{E50UQUJ1i{jm+U+48KfFv@RVcfAZAFa?E@#U$Hctkmp3M ze@e~MFzRv9qb&%dOnqYq8Fu+`r4!(Dy1O!ghmcb1^kI+9vqdk zLnC;0{{lwqw@EMnY_lQmBC}B2V4Hp0iPr-E*?BGZ=Lr2?MO^3*C>Or`JnO=S&n00S zbzQqAV6N=1@~9b2Nn|L|bZR$i;0UU=n0=kVu)$p8&k@RYaS`Md2;n|ls2n!wy7YM! z;9v2t4%r4nZr_uaPc;_{sq&s|msQT>H5Wb+%HsdF4{*HCDsmzZP5vUw#mDrpze{$# z@Z(ZbP;wVB9&$>4X|I`(os8ZUJ(pbcLYk*gQG@2<1~s==@vz6@!*BM z2{G)I(QqUcHy5=t^GZDg&It`hx0rX{0^I+T@|>DHLuog3_$93d=_qQ$1d%hKy2O>x zFG2%KE$MbGm+8@!A{}EFM>P)gm_ORvo}nHI%JfC-yfjyRtF@o5R^nNmpItp-@AAUo zD&BM`xGX0v&D{Qdg_r2&+3$spS--DEOm{M2^vEkoyjRS;oSs#X1oOpgPqI#Y)2^G% zFj^W7Dxc=;&SSBEo0~s2@O6Bm(*m5cQQ=p{8H|gB?(Th1`-!_{A7An#foyw} zAfSbRoMIzrU<%Bp+w-|+C8^k2endMzSWmV8^N&1Fds_NFB#r>^C@eqkmQZ`8ZaE%% zo2y>HMGb2?2K;pY;&G~D%q_yVHR8N1=2JRLlW(N_yt~B>3!`}*H?!9G;)-8+%z%%V zm>F8PLfMbtGnPg#82_Fh@%o=JN4)f?GY&}LfBcj?spMtR{P}f;1?H4wlAQVFTU!PR z8#QSKp_vW}>GL!vkz>kc>veO#mo9nFYG`Ahq;FepPNCwVx03_^Gs!wQn6H<#dSM8y z@BCY?61qg2hv(vCt5R}h#4fzD;WwzxTteLZ&m4j0a2uP0s1!=Q<*!W+^2yJAYvB;e zHyEb$2BUZ;d&tTGeEqgbfpBmZp(wdX?7cA|t{{Z3im%JMuEyeq>gx-n7YwnWmO5A6 z*JEJ?eSyz31@o>Z_V6f93oS%sp3qqQS7u-K4;-nNKhC zEPghvJ1otAEi0+1x|iH89P%h;&mYhiyIqameDT>N9y|IKGi$pfb|?J=&+Z%D04G15Y#p;vf*M|mM# zm-8TxayTbgUi9Is;nP_PB6PcLS&wV@RRQ>Pc@ZeSC85^Zc8`3Ra;o>LwcN3bpJg;Zt&Ey;#Q*WJNV?Co_V7y<6pu3bJ`6;wWg!c3a13@hQh zP=5lIGCUWx!OTu1L`S~gm3~Mab zR>-~_8+WZ2tjSln$&uEs^2mglS+Pt@cjs5Y!sp}6+}3o6u~i@*M{-3S(_K)udSTGF zSaz6{>lGYHsWV~V)N06!Mupl_bwhlH+|>{-BgbpoL=tHMK(*zQac2EqdJB^0P?F`T zuGd?#Q*dT&JkvA!f;+UUCO}MSG3EU0x zUY7n`Qp-yd29zBQN`4`c8k z)ynZBe=@<~5E*moNMm2NPb8D5nWmgIERN{3-jm$2XFz>>HkGhT93}*lZH+;GwT)#< znIL<#GIR-dg+irFeCMDDW`TZV+~GPhepV>{a-%Uz%Bn8AKrSxSH*tfzB3MTiP)-a) zex0}qg;^!kxm+O5G?l!QbDVpz^_2HDAC~F1rgRZ<0?zs*TaDWZj*1jPJq~`OgPkxX zhyI~F_{9$X<0Dvs-BJT1{YKEZfq+!r&GXA<$cgK`Bq@zvE*$>Q$uCZ0aFuR+6PiwU z-N8$zctxUAOqNTOm))D$N~uH_kN}}zEJSg|(wL_vh+QoEY+kKG$@m&I0!lc?2M>d! zYF9(#@$bKWd1JAvcQEt^%~cruMS%PMm{;QJdGK?*;EsC#%!7g6V0fD<#{Nbi&S(Ur z`jUH=jL=q8QGIC;QbjsMdxgvGqd)Cy@+&zFT|t)rmZHGakUaPVJQgaxJGq@itiYLC-fmyUf9p&oN+avsZu19j z`W8zQ7iFh+FMdu?*wM1%q5aQzOl8r|k*jX<$-%eHX&Mz~*`5=Z6iNsz;$`ItT|Yf54k{LRPR9qLePSZg zDC7=@nzW^_)^)un&m~P&N+LPq+IgQye=pF+O+~CEbuMPu+2qbH@T;@vP9%fprX>9R zsIwSY_qf&YCZ_Wl%h71D#g`WCe-^YBtqQAYM30kKBwG?Cl1=OrtC88t_7_c+;c09TRo$>E1BQmp1NP%}*TQki%!OKc<%zl219xz3b=c!Ugrv|M>4ls8^I8^?Z2q_(y z3tGIz6FUxv>*4cr81M zc2L&u>}pmPP;o?CQ`5Mxt}<}2;5l}a?RbagWWd$t!?`+_+-bmNh3J)tq6yi_Q{|Qd zPzg)UtZeuA=nThxS<1vKJ4rlvd&Y7ru0z0yEg^$yKL{1fdL8Y>6)L^#RacW%{pzk0 z(ee{a_cVu6{O2uHG9heu2gNNJPk9L*aZ>Qw&xJs>H@I8-4*s>x4UC^QBMP`%VofMw zkt}~3^RauxU$R3i%~+!Bz|@-)rz4&PrOV)DISRek+Mg05LN7ir;;0H)Yw_W*4M9`i zTa%>$QN)5I)~^i_DEZSe$cFXY4|Ig_I0zoqp;acy|BTk=fx4D2AgL14Y6f9Rqj$3O zqQu0t*%Ua4O%>U6+ri^TlBr=%k(Z8A3)joiM87;>s#V=%D_U%J+-Bjm3*X} z*_Mf~9wX^jWPsVd7T5RH?e4>RfKK}ectK~-;9WA0-J<*{On-xtpJMDgojd5UAt>*Fbq%&RA?`PBzVHx@{FJ{ORr5=v3=FE$AX`4s2=Th~ zWmlJI`>)wKP-Dr0;h7{U6cmAT7U5%J+ zd8F8z=l=y%loeE5a@>y&PU-FIh1-&|(JUX(t`(^7uwV0ZNW%-1EPPvO5CIXi9HkowytGtyvpzbLv7es&joAHx+=wqh4Il9^^Kt$nG4Q zo$sIbTqEhkp^+USh|1r{mZ&#eEF756?tF6H63UC#CB%*_{9t-`{tb_By^oKS3W9i{J03}yx zE45s5BbH1|#l{_m{qTe$?x=-eSXQ#Kwj z*quO*gU4b?#xxd=$0^5HO$I9-Nvs0uL@jSR_cVUAN>l>&Fa>XWiXj^|SSJ)YtPcev z$1P^a9NpN^8_4=S67JMzY;|S{u2%{3cFawqsYUp6;$pv&hQFtMutpZpuwN$|>ETuK z)3gn6$Av9fKdKRJC(!T3)iZwDwVQqZCS63jUVp0Dj0=-%G|wyYIAM_6A=0Ff`_N2x zNP+jx_utI&?W!^{5Q};yUh;DV=NwJqrI))w_Yj_JmuoK-P0{y}NHT-+>(b{d72m2p zvz#~5(R<#4jXP?Iy^ZwRD_UzOyS1w+XyHiA$0wQ%_k<{O2m2f^g!MF3HX+)yP9;>E zRR5X;RrJhXi41FMe0`PCuJ=RYj?d7e#@v5SKGUK@l!bE&33(?oC5zegv}B?$Kb=Q* zkoy%;?Tt6c=?x1|2mk(jA-85}8qIqjSP-q#eD>L;SJhD;Cr(1yvuz zq-idgIcc127N`pmu^!A9C@e0Uj-L5HXd%(N9aukerYInH$dZ)HAIqMa|z97js1ao%~MRHh>H>nHN=G~n*idFJ%!@M+*Kiv4S=M(eiga?^y&ZXv}by-f13b=gIq`ZX-=>axHI~s^gKv;M+*)9vuOBb_xBF8lY_%lK3``7!X*IE*uC&9|5K8HiT^o;aFnziU^Q7@FT zTvV3Y`7_CF!GnGaucn+G%V}1TBrpy@(!5S@F%zMOLYEm9uK7C zwcWx^RlT z`X+0p^Qb7Tv@9iE(u`UfcG@4<62RQ8a<7!`R3r5- zdp5R>nTrAkIG0Il-00Dtwh7+Nx6~;MrIChPchXT7?SbTY>GZ|?+Z6ygu)lO6#O==6 zwQlRY*V{uQi&Fk0qPM989WkI}eg5*vu6F_Ewb)*=Tg2=A0-iV!F)1s#>C@*9iw^8m-@rbKZr<^2*wv8PXvx{%i?rJtWfvY`k-~yYT z!P-jN_0}~+>HSV>lA{J4vST0auPuG-P@l4>DK2erIU%CO+pT|%j0d|i%f=(Q>Zyfq zQWDfsul-y8zuN3>nr)px)Ym58=a0=7YWX_koo9pvHG&2|!a2L`GXoq~W1BIPbgEyaV|W6sLlu8ExH@l?!e47L)X_uEg}h1D1*59scZD+rr;r|8F8($` zr%V_7@@fMd_?pyV?ohUv2>)etT^P(W%@)e~tI5S~JN1eOvXp+k39dP%Aao;WGn5Meouak?fBDC+Y2Q(FE*U^C1t#({CAS9DfVMv0;;Y*EnUvGDnAWKakD zmcpVg&s7_hT2nR1JDzy~b<4~Mc3TKA+{)>q^6el$p2FZaw^B8^5)7xUlkE*13Ng2FIPz;VFVzD+&8C;9R%kZMF!s8PU>E1 z@g;JV&AANHXOP)BtQpu)VcEQ@`jF~KW(E`12umi|Wp;cZ?@F9UQm|k#@hCv`Td>8A ziwX(F(L|z~^@8|s=Xkg4!e_LW`M)7FmPS&k{rq4HXIL4PeiXf876B`QG!HL@J7TPRU=-X9jmPm_S#2&V z#E(z+<~48=3?L(x|3mWiaZPm3h4Jg<5hIJR=wBm`q;0VPK$MnhbrE=x`yuy2Ea$ae zNzOB1oogdo5eCD;_=tC? zPz^K5XMS?2yp(qjWP;v+i}^o(IcFQK_ZLzl0befk#;7_52n+49eBtBF4ot0)?oF1p zPwk~)^|H#-H3P{(6kDVZx5R~+B%+yH5%NtPG{;ltqVVly`@u}`Bc0hZ11o(kd|z(s zdBVY#ySKF)3^mL<_zx8QL(=`ta`M=(N+sK##}`>wv&glALKG?OnS%TVGuyj3dTZ!(>&d>AKw9yQ zohxdLUOdMi;x~-{iP2;^U|n;zMmELo<$C&k;YO%lTAlN#SRs>{*6M2^J5LPZnOG;nNt$Xw5hekg-V{CN0R1a zC(IwK3=mUKzdVkhCA-%v){h_;T8qW+Qa#5L59s>-URr_NvSeLoXGZqv>!P&^q6P0o z2r<0t-|+=~i5q_^%ay6}SD0lPbUIyJWed9KDyCk}%%43;ixS`5Q-qRW1=dB#ds+P$ zzJjy4T}FNI*GU_gRAyy%y;vHwFVie3cZ7BZ)|Epp6d`maMPO3>Ux@O4)caHTL}iNcy$X3yJh=Ov zHT9#?!-QwNRbak1gLkhlX%iowo^?Y|A%8#9Sr9?Sv7Ox|RI-J5f1aRc5x`)E!ZdxS zHfwiCJ^TlZxtXEsmJ7u3;RvXVTf*T5$|M@^pV<>m_jKzj@BK0m#x^$V;h8Oq!V2)p z8zRa?`!3#*mhz|7<#uH%O>HAng_mXTWqc8yO@ep-5Q-t_vZ6``@-=lw=oLyiea_uC z0!2JVvV-$8MzRIJ&!nr4XO8@kzWhqNotu}rKsU>)Vemq!<66#ECy~8X^<|;}9E`ZkmBuqZsY-M{K2kdI&-Jo30Lj(waYUC!q>GGPIS5+Wfm zh``)&12$5~14cbfOs+4%BD*u;t_bnP(-NOj%G%F^M0nez`P-uS&F(8Pybx1SxwiIH zdH>?K7r988L{%xSs999^xt{50`p z#YwV!`pZHHQFyFNMXbw; zKPrbUlVZJ^h0K!&pBi^xFH?UbqVJTwoJ+rvHNj8mSA9@fPAx@QD!AM#?FuHv9H`2a zSi9=$M(&jBeV6m(tK0geG;ljzctkbg>V45~Dlr`A7Gjv@8mIYtQiP+KF_Mo?Q3YGZ zO9%8blX#&KS~;FH>?!wqgrW??Z&~E0NjDfL!!sDQr=JQ7iDt}ZgYd+V!fl2rYO5(gYI=4J-Xg-7#$bRdNX`ib)-UV|mOGCdd{bk5YX9)hekgf)(9!wo zxka+@2Bg`&HA9V*EYX!5aE&S)B0yMA6<Ll)o=&NFb}spx$S$9H_|K%y`)1i^Mrhum*yoVhH}t7T z0QOxwHbMWJI}5HNz>0qzDaglv>^oqjj2#D+)->d6WG6CF5M7q370nKmxcrSo6>*~eStT{DGHWVneDL*3FMYnr01F?u!z5UK-3PsO4E$L z41AVFQ5WLfk+k=aWRz(}06R4}y7>e=nYlb})Q zgHGN6tiT;Lt(T98I^#U$Ug=)Nbe3a-O6+1yxk;@$)pmw2W+yoUHg3i_M;T=}E4i$< z@_xfH!`muv6B~YIOGpW5%LDg*4M{lrHRGDgva>Eta|sk|W_K9p-I8KEUz@5a;(L~V zPcQW0hHk#$Rke-}S%#l7dP)RaA3Ov4*)PN15HA?L6HrJ}g&m}2@>XT2{(IRVDBq>C zwD%3b=ZIYRWnPeXZiM|tYp?8643`WSr##bA(TuXz8zO0w=qK-bEi zS+$4b1)Gy8gl96&Au#M430Mb$ng(~;&tT>E?4)XEL}xzo=1;KK@=M8aaD=_lKjDE* zk7-|<9F&7=F+xHaaZ05!>rCpt<7yJB_Pyb^(@7+T@3j?K|5uGMi3-0Tj=6;K8G7Pp z{O<>y@6>gBVqXNm-lcMCwA^E)Nf+9$8Z4hpeiHfj^e4b8JG)AsN=@wQOP5~M zg}!smPGGEBR@4ppX?C6X!a2U$DQ+&(_(?7==68JvK1F!^#DLN@BZRmjmXQO3l`%u}S)New?inguTx_NSxBC(M_vj0QB zZ)wdKt8N>)C%)_xAhiKczFbXsBz(_01GVJO8_#a}pMk8e&a(M>Q|G6thP3{_xu9Tu z*p{$gGt@D*p;+)-gWUN-u zx&PGW&bNiO9(`-~*{7;Kch4O3!E8UBy6KbgrCh-MIim9mBbX<(TsFnkC@6SnF!=Fn zoqV72r;x|l6&~}IpRg~>7GVC)iV`lV6sCjQiJA3yZ+Z4ELh1W#&qp+-ehg-nk_KdY$sELe_oiTELF(F~?JGQh@g!UtRXp<$s{5k-6~k z*r{{x?>H1~`{o5WIJq}S$l|IV7ZtS$Ted0i>~N-CmaeKEb^B;qWs{W|&iQ@t$_hv@ zarq;>L;6dBQ<{XM1`OPm|MS7bRBcHfVjHA0+aU4%fwF_6OwD)wi@?*D_PvXmb(cO; z%l-3JfW-0;X)nTzS(4h>OCR&8z;XE<03G}R01twb#XkHn`g|Yr(yZ{|-}v)atyQqx zod2Z&rBg_L9qyxJ7$}uzizRxT8U3V^cfjo}pWoX%n|Aa`fd#Y{nX^JWGQcS zi0N_Bk2M-dNh}vQ+Y+(6a6-!;Pw%_htD-UQ$pt=tEi7Nto>w^9!Sls|$UY3rG3HN| z@K(DiUVg>wQN!2|yv_p#O{&9#QDN%Xde%l2A&p*4%z1lSmorwWj!)3nXld%N( zgQgmrKPg>xwcSAg&?`}v-)JGpPphmQvu&#Kk5&0tF)op`B+F3yp8Ds)~<3C+CE8%b^|tr^&-<3>Kq<_xXc|2QO!qZ+BiDIih2 z7tt`azpOe7}5cFsG2VP-U?< z+gSN6S^7fh0tTGvW;5MV(!^+iH1#rx#1Lv|ICpOcBR zz~jEw`{#s=KB!aBjA$U2Z^iXmPwpJl)R15?lVL-b5R;>#p?CTn9R7n<!szl0ct&Z=<5x3(MIV};tl_^dBx3&;q^q_RgQUi*~0`9m^|oW=DOD(*`TExu9%E;S2g?b#bbtMr~O!?&pX^8b@tnheIn! zMS90{#<|6cU)WIbU-9FX3ZDvNF!986+886ln`mrPB{JL|mn7rmSet#f5PaxM_87Xo z8oDHG3n!1A+CmPJK$X>XM#7(ZfWcIMm_3Co4DC{fTv=?(=DvR6=Kq3mfhDJz{ML?{ z9P-pNohlX71{=Q9+LrQcIoYwklhfzW3BRsX$i$fvgv-pX&nBKHy)S}MT=C0~p;bC{ zv7_dkxQc@~QCs4nwZc6TTh~nAOU%wOnM7WXKV!5U>Y6kc9m-jItv>Im@X6C&=b*xp zvad(3RVXZ~@j>E6;Z9^eUS7ltF3keJ!1-AVb-U`8{(&&C)rma@^%=LKD2i;%@Zi9j zckG;CTYB&&eIbva3jn7bmIKQ(81Ho-pp0!mRDKgJ`VE;z%kRm4zvaBmK&`g-q_3D8 z##gaFW_J2`zRk>$jSB>;t*@c7Y;=xYKWjY>5NgimdF0^Wuah^oIq2B$x7YZeoD~%} z5-NH_lA8+`%Ov&lY^h%#Iw#VMI_KCcaUGYsA1bsrW|-M$hf5G`wQ^Jygr8E?8SX7; zRWmW+y*38`@&Va)Jq9)d4YJKremO?;c4(3)2pafD##fyBf%6t)dG=oVkfR-}4vu&h z$02kKSxO%7S6+~%7rZLoKrxIiakjtdRGaXe%19<%P$`44U_JH`-15n}=X$b(2ubF$ zDv8-WdG?i_6u`%)i8-1|1=P4dLM*U#q{l_o3T|8rS|6bHd%_ zl#RGQ(=xAS*FNe*cYAvBVMY10g*dXH7a9B4-gHs%3;^#0ptS;J*_8P4a#H0jW`bm! zT3VXQKE6zH{3NF8kLhHDr?GsS)R1LN{-}B-dEz5gOU|p3q9?DWrgsSjwR)kesx}M_ zo9)~C@*O(wGs7xuLlS|z*^vb)xD)L@mBAmS= z8K)Zb^AfraTJqP)Lho@8Rp5`S3f`qlJ4c-xj+wz|$2}Qe_z#5nu?ROcGj)XydRzEl zPmo-iC{X1G@h8vbcy1)EeEBxuB{>2ZUx{?kICVBozNoH@BR2D3PfF%cK(qyOM}X4z zI3aWrrwN=RpR?*2Im{?=ep=%3O~IN^7@?$4(|Lr~%2Yb* zlrMlDa*?3&>=fkXP?eKa0QDA;3p|4*H-x=fKJ~aRz%+9i6R%%(7U`$;o~lALXKA*a z8dqfNuF$Z!y|rsn#r~mHDeQT}yv`Mtxx6si$@PAYakauJ`$Zp7Vwd4hZSW~6P`>ErJQP0N6ZLIR)v z6Zk1Qed*o>jzrsXq#3;#-`yn-`C=ne3U{ewK@;4g2TD|<5QBzv4k zSB`4Xc(#>78Co~sybUa>cXl&|a2W|0z23WSCwBtYr%H^U-|}d4dSou>IP}ehc{&%f zLrftgdXb@f3$&qji#IeQ7u2xVW$8WJ3NHneYqLza2j`S!ikD0Ofro|8r56DOL800g zBI79d-xL!I@AnFxNTaF%BQNVT)E0W!Yv0?d-4lrLg3ytIy{6zek_KZvb93?BA@}c# z;2H8}+2BQptp5xmA`w~!s2CpcHq2%lX8tJ4s7|GFZQspXKw(qg4{Ht6vhj251X1t4MF7Xl)4LAYyYfg z4tb%F0)mi0HPC+X;<_HV+rxN4x!S5CpsK`{+sg3J{Q0IGk$6jfM;qNF)70kc=`0x^ zpyX}x%&O{J;v16hds2LWCdysEVm4+mKsv4a7;<@*!^NLOF5%k0O|OgGr`L^25F^uRkxR~S=EQ@H`r zBamtU>sK%q%Ar61F+{C3W49I@bcJ-TQw?plOfqeX%2{io*Ytk!YQIoTI4}v@FW+kd z_sA04-3DgEh$-%9y>OY4AT->YXmzi4AIwL&y@Ou;47{3EW+fPJ%w0YA_9eB-qu#$T9E@|N<=O1>kVvfq^pQdMe5yFg{I6?$3aju)0Oj*d*HovVzx zPIpYUc;2IeWDC*~p;cK`@X^7{xw`dmt0WAtDP*`8%*$zF%#E>XQ#!`(Zkfrb+oOGV zI(qp8%o_?R`@}eMAaUzgt+#0e`UQCtgqW;E%c z-fyv!vZ%~*(HbAwW##y=9p<(&Ez70@gCEET47cOKR;8RP^53c~k~@i{&5NAuo@aiV z=x8+I6sQ6}GQ_YB`R%=9FS9;&i(ZoT?OaAIuSx$zI;|>=l5j!grpO4*f#z7B>{rPR zcL68cR}F3WuJ6#o9YeeQP(%VFg#tAg|Fma5ouu#o{Mc42gP}P=usR%(AZVcyQ_9qE z2eBaGW6F(cf1;Fl1o*;0oN-c~L!f>y1gGe_QEs%&CN@EW=0&`R`p0^JCR6{)epyti z9|g2Eg!aF_G&n4%GSmR3+zm$IJYDi+Tnmi{+`wLpzTJ49eSbfa`wt6r2GY$>Qromf z0bHPh1Or?9AkasEqu7P3g>r#ceC;hf3IB0Q3FF7T;3H{O)vc?rs<#5ie+!&SY^d}L zO!EmLv7P{lFsU^tP$sHNp~--q?g~hil8_HQnP$e;wQnXa%DuAY$5_St;T_LO-+!(l z6K=?j|AwL~xpVRTcq>y&II?KBe--J2P&$t+`Cn7@X&}UGB%5 zbh3gS8|XVbopsReI!aT}LoXwr<%W0xi@~iX%|?@31{AHuxS*L!C~3JVNcOWaP1)dB z77Pr24)RhlPdvrBB;`GrgMg)B%6F@krlkeCL@2hoG*s0B>Jm#-YJK`5Y9cTJnm49$ z$8W1gIe<8)6oW+}Z0Jm;P0?)gcCG#%Eqmw0cP~JtOlE&@9gz{2LRX zc21DMT-@{QhmO_g$MBdbfF%pn3j9hlmkx;y+&`U$02&Z9fE5nP;Gh)WVswBU6J?p_kb3e7k2hy~x(-v<{MxzwuyZckvci6wr5MYQhga;CL z=9o0hCaSO;LB2j0`EbX)xZYti^EojD*+0kFN>{ZtGtSe#Gd~@Lqo2#Y9_vrdS1`96xc2Cs&zW0;cvHw& zXSQil#5-QDka)pK)X(B)T5qo>2K*c{xiq+K>s56;AYbLh(8F zBn|$_a>Qe!N5p6GV*NDjVv;Auu`zS#-UscRtnhqP>sd|48gClT6H(d{O<1)QB zQ64Y4tVY>V@N>c}z2r?O@SL)Bq4#Fp+-<^0;EAyD%Je|uWaF~rRT^?=Ke%Xi-}&d0 zP{@Izi&$)G@Wem^I*I?1Z_O=veQ)pSLSkGE>X9400XMaZRZNG~r|W~Z?}}}iqTG*! zTNI4O&b>I=u5zSQ;4QvEu)F56IAPo5ZoD@?lRcB@nGWP0n%FlwRXl|%cV^A6q+gY<|0WUUc<>PcIVnt3X+h&1kCze@atZBfW;=7`xxd;cfO+ zUIoe8HT)u+u2iM%AC%R;{OF-ZP4iJz5&M{vvpDY!w$QQPawK zx#oHdHypdT_~eqerpWF-`pT1ZW=bp7O}1N>ja0A1+PMrVv>-hCjzIn0QloyI4bwPJ zg7)fExXn#Zj8Z5nAY||3kM;o5Z3U9DV4=uDsnOzE%3Zk?lnEIx4Xg{rvgFNB7k>!L zojjji6YMEBk5ZZw^~v_Ad|uIu1OQ2?bijQ2b-HJUl3$Ln@#v-3>LxiKZ>5J`e)XR% z7$VhLC0j9+B122_ZkjwXCi5JptnU+CrF3C!Q+5)d$%Xe0Ja^z}w4V)|yB2zT1a8IM zeHruN9=amaY6cB<0WqCW|9%ONrz7CwW{1(nJZ!?l-Af)jy~G&@tEo!^<6vm{Z0fDE ztM4@vA32tt;!pFeO+oIoCRwuVHBN4w=T#il3MyH8OQKzuHO^1x*lL^Dvz%BpZgn@- zsk=gihok0%Z6C=Bgr2GK0n^Ui{hm;I8Y%OgBYXOVE-N2Zizv3QUk1n5(Vln*auKd) z64s*Poh<+PK`MNQR8w)uC^OVY!gK)e=5GHvA*qql+sd0CP9(L5F5F)JZEW`F^EM>RbDA*N zt}K1z`nl!JvmrObE%%j9{Q(vTyo->dDK+a(Og8HKK#uGl0j99~?-aB`pWH8Lyy>Yj zI9&7ShPwu*f$Yz!k~Jr#>a&-yt7viUooA1b|NIA80s=+8tmm}TaIWX>2CbWi8m$1X z$><5jvJqu6bpXvFn-{&QxFH~fhEsI@MjhbwJrSpZGkC|r~EHs6-<~`Fy z#Rhi`eih+L9F}TPR7%1hah&hHICe;LP|gIF(>M4-0Z8UqYG!fxsa+5U7!XQ{Z-@SO z#~t{mJL~B5C;*~0g{b7u`u99;G2Z6JW6jD&OoUi~w;kDaJz2AiBJEhdXZ2Z;4){4f%~L zW7k5>SUCS;wT7z6M~?9(@+@~yE3^m7p#!My15z0hfrFUEo=|p% zZ7g_!Nbjzbs2Qr7gr;#B2CVaHqt&+FWFpe)zM!b0p9L2iZiZr+tqbCUv8D~-V5ZVo z#hV_5u`}(z8dGB9KDz9x`L(hE(L`cH$U5&01^O9%YZd=UTE+QkmhNrKajvakD-xP+lmZeE3J(gck)4AjFCiWkw{kg8yC~My-4dCQ}hao8W8(TO~R<# z{B&whxueE$F3^b8g%A7OfyHPhSyxqWiHqNju`mC2-o+dq*M{?LHI+E&t(~Dv+wpln-T_X%BHoZ3e#o-S>rMq%*k#zU3vm5CFf^JN#80 zirQBFeSmR?oK1aM>D!CUFBwh(2-si$@)-J_u{HQNt>y^9Exd(eOFip_{ghe2Z^LcP zk_1Of&ksg%Ns}5DGUhe(sp3qu$3dNN0Ls$q+ch|imRV-TD}%n3k-x(Up3T(5jw2rz z$#hPN&iiVUbRL`;wv4duKfwDlk<8&gwiOQiaQv2UXq+y}`8)FPd0a zYP`&vZci^r>cz-+PPcgO+rvKVV#xcFQXNy{5LE}yg8lC=siq3+e3ASy++o){}*hcq?uF)ydj2MZV1bB^5Vlbp-7&gT1w^H#R7wRzA5uw0R9?XP`2NHl=XG4ind#7KBUGwom;Hq| zKJYHNpXo|cP+ob*uptTCD0_K3lH?jWzagj*U47h>T>d+(vT;1f^u&pu@j+l-+eTBi z=YP#};eZ$8z5r$kDoJ^b$p9cKX11D=zL8&yTsoD+S&xon9ufeq13i02L!Ze&k@@4gq`uu)^&RJPWL?V@K2W+abC4}P3UiB0c_*O&a4}G18iA*$pf*z=78Z@>>c7%PYnQ|MJ-)D z+*^}D+-3%6(wWHT1)i{9LzXAOF+wKjnL4>KV(j1wT7krL(=k9prvwQDru96Q+Dwyq z!b^L=3#2K%S~vx0<^tGyxx6L5bUgdyrT?lqHXi^1lYlEmR$KqX0syd_?=LTZ(duE}RyX|}(J`(&KE3NE|joSUM{w3~^R@!=zZPyHoSA3blCyA*U59ON9d zFB_@+u~?_2GcO|kG6A23cuZVKrGJwBv{K*f#%jgc5#qak%$hyef35rkW`E6}ty#tE z*wJ0qdW+aCFm`C2rm$+hG2NQ;-jlHzXN>b}VR280PaF>p%#{HD4>_wi!xw!n%X%c4 zG@>cxf>tRS9(5?#7~NVB;!1fLe~CZuwx-~wZGcR(2_vf#GiB{A`{@sbJ_b%r=h0BE zS63BqcnI90wco4?U{h;2rPtoT~HIYS(E7Y;rHAUZL$i@swufPAhu-&~v{gurrtPU_LIBurB8^{_A;QyZRH&>7m(0qN0`S zK0nj4S8h*;{nvdGZ;%JrW-(ZTP?aIx(axXzqt1ZDlCr$+XG$0RBI%EB%GwX#@0h(3 z`g2#S)+F@QqCyT!U?WH(lTypwvWjX_LGVmV&zB;S_I4-5{yW01o8!(c>Y_O6^0wwh#>3PLvoeyO``_tb z7;}`GS&SLBW*`RfRId0>*aPIxGW)$e3u86!jD~ykxgx@Jq~OhPVL7f|tfqp!<~^3s zs&0`l1IiVdS5m9~y|j|Zh4Q(a)2g~Z^n!5yMXx|5iI@5r@%MUE^(6pyDQUBu@7$OS zd$;P_z06Oew~>Et^lANR2;#WZJH2|V=MFIoBh`Q2eZ%d1aRrpei*+xm$Lm^B#ci%3 z%g5`UB%CC%Sc9!0&s8Qw1)A_oH>EpR??$Hah`uHg;|f`wI0_whw;}Yx62JaY&^8N zB*6tjH|svyuN{zPLQ7O6Jvs z>F}7`c_!9*IjeIGRH~3uG80;T9CW4uZt_<-)+FDF1IdFKOM zXOr6~*JCdII|Vf%c*L>;M%$ajZdjAV2GZG7YsluC{VUaHLf#2EpS&Hh;Hc5 zNbPCln3847uNgs@R4;15cb2FJBdN3up-xLcJCu$7G5w%2FYtSY;PofInJ|I!@|8ib ziWo1dq-M!5#kfmJ*n`XCP~`Y8q(ZA2qrn&hkcd@?%23>rf_QkJZVxZT>MdEis(Nf2 z?A@9-kO2O+%2;Hh(*@FuXY+Kws6)%1cgWJ^VeGS2ordn|!6q&4zc^e!W>^@5515L3 zq=f~OItLCPQ4^c%YRTOo>hYM8plZ$`gxqJFd}?#HUS31tJD>kja^1C#+9h=y%WMCz z9`iqPH-&zD&)+)hnfSuwJ9dVTiXcm0rAFT&R@^aK%9v)uz7n9SD# zB$v;Uh$&@87ZF9i9Q`9?pYlA5-_u$h$#Da`R4%SleXvJ*4tpxQhh9&%A@%xWF8p6{ z?$>G3_t-k_QH$oEE!~Gkv*s`23oDQsve054MN(b5w5}=KKDm&wB1Xp?B$%6_Cm@?tt15^S zvLCy7<1SBM`id0vSWp69}e`tL-68`D&raD~^*` z^mr)yA}K@9D_yz?+xtIzS`{U3s&^U)ARKE#gvD=|(l^SC>Aq~={u{W;1#z?FACOWA z{PA|gr))U^#_a%cgHv=m!5>h0!R{&@AJwkwL7o8cRKtv|F`U4|f`WY7LK|*TkKd3V zzG_~cqAbF5l65xIonzw#WeY(az zf%LYH)acCgHGz`;pOsOS6bm^m@4uPVsny=A^mg@kaV{l8zUMvv16M-Le>!(!vg_$a zG?_j6fKU4gqS`fEY_Yyx!l@!9y;?foxUHmfYa244D;XD-g>cJ97Qxpy*`uMn6v!a0 z2NefNXD5h8J<`KJW(d~Mqp<=P58WyV-8H5yb}( zI#IygTk~K86BSD$#*#w%0jTJQ4+E$=P4267QNRqvM;)yfYbf#`|Je(w(>fi!EO^pyIi^TwObTNKx^&vsf5U{Cs$%jcoHq3}X}&bC^9 z8FhUXxpbW1(ikOq|az%rZorC%ZvFb<_o*!xmeUT!sG54(E`sUEj zE(%mP&%5{4(q7t2O~#Y(*{!$6_H_L9c)pTXWcxyXqm&$@E3#TGsaPJ2V9q0~*L&|C zIE5+oqG|r!K~6!{(e8ZF{8p=pWg)9yf`{M5mwpyR^CAwYrr-Y56W_EO)VqxQ_wJw? z%y812{4UC?nJXtkZ&-0RoaOMQ^Beh;7#)a(+NM(^g|?W-4N-8&pzg`X>Y!YOZ2?(b z--l7FY|}B82KkvWGZcEB_(u?#+?SPGw^ttm`xli^HX&T^CY zGTxAdO^5|LouVs*W>L3j5YJS^d`IO?ub>_gmGGlHi&+%rx7?yL`9U&|r~+9C2e#i* zNY~cnzJW2S?hG)f+H(YwW<>KiqI+N-gRsz^gkEyuv;i##NN*<&i|ZRn#CWJah!(qP zlsvHi@^ZOj)IhC2romTD@)elBE;0FgcSqX{$s>@`Hd+5o@qITKf)r@TI!@lz0rwD9 zN%L$S3NYa6)b>C4cp674X}N+A95;>BmLNC%>^nH>)cGcY1e59P=kF+Iz?*SGKc~81 z6jbPI`lzSVmz9l}vI;&!b@~Y1ttB9b{NI8;;U(Zm1=!WG#zIZX^yKajBg^c|DreH7amsj6)|2JDzw$}~($ls|Dp*n+|b+7!E zbzjJ2k@Rn`LZf_R`WfYSwoiK}gCmOT!_Q%VHg+R^MB^A@F%O|4369z_b7MG$x**Uo z`u<35E&Akiv)^}tTmUU$OyBnKTvh}y0I(%>`8!TP!2sU#jo$avdy_DQOZ@1zEjnLXhhrX$}(Aiu4ol zETPui2-7hOnWr3&ga@QZhWn-OPYLV|4G2lV*uGFqdd==_66({dr|v0-y$rRr&CXN4 z4{#U#nLO*e$^GS=x4zIkm-NDizH|-cZ9T{_xX%@L30HI*t|mkQ-+=(gO2>_`y5j1f z|K1wi2J52wfS;|RV)?ShM}b+g)-HL<@f@R(ITrkl$g7w+5gG-2hNM^ec%>SYiV%0D zH=XG?Ym)a|g}FGbA7tE71KAXAV|q|dWN=z6pmfX%r60oNmRj67xuS}z1W6RfS%Yu= z>DXUN#tM*Zz*q%s-eA4~n8)Rs_UIz@rFAKViN$U#nOvpo`Vt>B-N+{^OSYIpT<*cv z&mu`D>4zvK2;$-11eI3(7TbblerPwi3SFW+VM@f&o>nOl zRD?J&BB>ML_{Y@aJDI86x^x$6r?IF{EN0Iz1O697dcZUBF|{rY;{NXyp1giS6o7go z>a(fk;{vqoF#Gm4iuhx8X?K3#0w%9^S)GHMzd4W3a#a9$ESoTApz<(TL0&p5KH3^> zr{}nLU02%9EU0b$3Z-){L{#~IVVsh8e9uiVoV0m$^r3G%F=xt_Wc(-skz~%m2y%JEvgc3a-U^l| zLE=8>rp&thkS?$LWS`Sk`{W*W-7El?3XA+BUo_eK$gZ^KykYh+l@u5^()hhv=Tk;1 zJ!QJN)#Gi!-O?1mUUga+Y$+ey)}hIC+^|5+VW1d31lpRYMikzEmXPPo>If{;rJH&U2W zxNkk^U$vK)cNfenHmTMU|uEOr~BTHVdvhCW7)?F?V7w_5r{9h}N*HB}c z?GAVCb13Wv@#G68i6*|O;@I1pnqwuO1{Q#b_ z5%Ms+LSd{CbRSS3($t2_h>T2bhg^S-U;r>j8I7{mVT}`0LN{t^2_jV>>Bd8NYjxcM z-)QOo%S9Evg+X_*^@rkW@??v@o#Jhid+jySKf)8slBYq;({eg$4?4++FBHJbIxrL9 z%6w`Yz(7~5+wjWFm;3qv5sjMBvz19QdIriDQ_Vj63Q%Ss!p>e^J1MM(uUnQ~tG(`_ zcVCQh*nck`00*ZJc>}*Rh*2lJ!P@msDzV}K$l)%&$y$S{DtQ(;Fkx*;Xw#XqI1zm1 zEyO%9NT$KJHG@xA_8NA`%wH|NL19U_E5GFd+N6*KmUp&=9GV&vGhg1T+_t2sO}zBf z2ZBJA zS2mi(r9zmUM&D(|wnt!duxz|KW8B>04C%&?1)5D0`|xfG#;iHmNQ6ec)oy)(m6C*F6R0c88j@@vs+G){8KX8dT&+@3bVrckg`5 zVA>gb)&F_uN0OhFyD-$sVyEw)K2)N4|h+kZ92$&XoTxd@jMWn;&*&VB^hM? zK@W}>HI$W_(|>bfPy`z|al+bB%BSGZp?bG%=qEuVMLs$}Q`=lMj^hIlgSZ z`pRYm%F6et$|VPDXP2nQ%)35c1mHo-RB3nQ%$w*a^5*xIx8X!69m*i$~Vt1rV z*aZ-`wDp@{wTGx@uBYNg+wdCAj&ds^a9_M%)PUyX;7f3u1$>T9jXG*RnrbD2O^Kni5T{b!)bs=M0KV%ThYD*$A5=CrZS$ z?0{N}wQ{#HaOo*nd*7@YSIqmy%O!;s)LIaPJcLEOb{H9G}+ixOMX`2ioTajsf*2Ju{dw_ zP5X)TUP;FA0pNX69A^0BFW%UCLgL0SdOPky9XC1P+5jhNo>x<-!{Ou&>9LrU+xfdEeQjf)^!h zxtt0O>6Y>GMPdWyEM`UaC9c*iD z7j=9e2K_ZW_bW=GT@E|`P5t_I8H1z^MkRJrtrpB&d!n5?;H%9Ijn;1*Bm1lp1E0X} zq#Aw(wa$*eL={)&r%f?=8k_}dje`~D7cErGzGwh!3I2ET9UR?J%q-&c@7Mwai#a6j zflg#Zw$-9Hes{)|ruKKM0pVAS^seh)60~_IN4NuLd~Y4aFsV735QK0J-tEN_Q(i2ylBJRI~J-Btc0YX(@TQ z2_c-{fLz9Q5N2pBGHCzv5>Au8GlZuDZve0ux57tHp+R8rghgj~=CrfT@Q^uQN$wnS zFet;h;6{gSZ_b4#AiPTn;47^@0(v!6idsFD4d~OUxrH*iH=o?}23JE(I?M?Z0OC}} zVChzAB&B`Z8?A{i;}zGG%H`wN)R@5bQqavc))&%3Kn(F5qr)0hZX&y6v=&MA`&*sZ ztr-|7Wo9Y26)sWZZpf6tJm@01W?d!UMgYm`v-QT+ok;8+b*`uBL z$TdDqZvZg?A zTY=YtuWZB*?cIA5;)_`UL=W{>+0{say=1>&EC;@z41^@67V3?r?FVfo{Pq9TL?(tD zD6jvBAe=@h9>`(LZVh`|p+B7r-YCS-#GwrZ0k-)sTs|9c1_g-7?8rM?FjoYK+)l>5 zHP)b6?%Az_)QE3YaAs1IKa8rprK+di&%}GK5wF1XUo}Me%)~2Q-jhq%7}}hd3RG+a z{k{kQY_$wZ;P^1>DoVp=U5#t!CM7i_e)Km;I-cQ$(gzaNoPINbiyMiW0YVr#DZy_6 z&nmxEC;<^y2G2LF5F2vwYi=lzbv6?`NJ=N0arnvCjKJoiMDQji!sLueioU&?679fg zBECsanh<(sqYrP$&EA*}W_VRI$-n};AF&r+`P?@>;;GdUCOg6t%&@G(jAkG1NV1wr zRux)Q6)(uPV``f$2T^^g5lWk`^2X2_xkeXq{iMz}* zMTv4CXdN-D0IKAlC#Yk%tEDTg(W7lr!{Jz;FL|FWr-EmdnH`?<=$ZR!s7;-q>jE=7 znXQsV@N!RdyH*Rqt9PPM+(Y{wo$S;Du_X5P|&1Z=!^Yck;+yecY&E%zT& z>1>d)&Zmhoe+8Uxmwsc5LE6N~*9JTxw7eS7mPi`NK)#&R@-;lt85Q|oN?@}A*nzoP zX0MR4bw;*b!7+E)fGnRg$7wS{CB}6cLPwLSVx~s@$1IEs8L-ewR(+O*eq5^n96Yq` zDVaQNw5|-s9KC9G8hwEbI5WXuG$z;spS4P(+iNjDQmpyCMdK#oiX2 zw0vDv-1XA-QUdhfSVMEud0{BgK*q>LmVuLyZmMkCjlU$x!39aE*=wE%N({amJkb*0 zky9&d2XGnT5>=Vhh0%zaJHtCC~juozYluIan?U|5u-JLbUvA%RtQ z__)f{WEj$^YIH0uiKCmD{HFWS7=8EG>t-*@OH;p_UOm#mjyCzq8TcHdjDnD<`m%`( zl>}b1tE5Lv-fBpL=}E=iolk?qvv@OSpB2`A#SbipF)mX-2w7bc*(uuViiWm;!>(;z z%cc{5Gx4wX$jCd1Nvv`MyPhB(0OR-n5N}+nKDqA5N_~!3Nhysa59n?{`>P&A{_K|+ zeaGkYTF@>+HLEElKFkL47M~Dhi50&*==~)W-N0sD;vc$Bh5q|ZxuXp8XmKn9(&c$Km1>Yv0qCE24&EKtq5@%?Z zlNGo=_;+8xF5D%zQgs_z5mTbT?e~Y)~mpNmW%7~ za>fFclaMbAepFZ@#8`slXi`_QY9J7+8v{E;%9yjJ@0c( zs}`JaE=keI)HD>Z_UhlyWvzN;4;FTmfLj=MVGy_!7d0wP;z@uf-?(fh;TK1UADmQg zc(*O-PcMT2K!CM931c1o^sdu2R&fjtXmmY9KDCkMg?pQ&q}t2GGfi@$>bdIloDudl0CV7uiCu%;hzUJ|LL5``hL^&+re_*^ZW}Xv9 z8V!;Xo8|W7V+?}cqpW-gc$X3~q&ei`gH5M^o=*A>1xwHEY&YBfm=4pt8P3{ybI=Cn; zz~9PRlUO(G4pZv6Zvqu&lnBRtjzkTdihsUqnIDxP*YASf`8wI8vPN*qbd?1DIOT4U z;%>RdAXu}?VnJ}Ak!^Jd-F+5%CDH&@1&}}j%!a1UoiRG5Q+JHMy6-U*WknWs$m$0y zU|GTyzXu_$mw<^=ud%6p0?d(e-d{G>j+mY(|4+32rBnBU!LH3Io=WsT0*Zzn?i$Nl zQAg6yzqQB8QNE1UopzDSrMI1kO`-n?-(JS2{tX#1qEP2(Sb48;7sX-QRm?us_gL3H zvuGXc#Sr@;d6-h*8Hr1bG|~#XVxG#>HMzgDJo!!Xs@*e2dt}>TN5V=@Xs4E7SLfcb zqRgP2DQZP<%`hBwCB?c%=+Tuc7_&Cpo479HnoCJ*rRhvw+b{7pOxKaVP>DRyuPnZ# zCjDy|HDD;~dj{iLQJoqC_p%irZgP;uBz?igQVa7+a@?L_n(lZ&Q{jGCMsq?t01Swu zN)I?YYouDX9oBc+b|t-n64=z|wn2j;WhRP@NUtnreF@rLN9uPeE*G6I1glou(CVp7 zZmL3pxuOL97Wb5iR?P|IuhGDkJn$99Km%)FZ4I1EF$r$_`Y2!5&-JzSA-uaC=g!>l;Vt71JiuH8fN6~eAG$=^7@f8`&a#)|QhFv|@M{h_!r3-tkR^dy;=z9@Rg|G`%D2P~u(|tH zf71q#;;Z}V{C~;D86tm-{gpCS zt&GwyWOW)ax8AEIKaw2s7#a!Vs(D@cJU&c7DgN~}Mb`ayFSwJNlpObzD%;~<-F@ME zUc`5MsdHY%$W!Av>?g*+8j&9_U1wuKGOQGfO8gW!4C|j`i}nj^M%=i(_P@I!*1A*j zPp~upWnbcU_$7D%Q&@i(UbBaL(E1?$CVY4J&I0qAQS`DcZWrrvtMB%-eqWS?-i3IE z{n`tbx)xmCmIo6tC1ydEHLZ7&Z>bWW=I76=aOtN>=PIWd`f_*Z>K~TwzBB2pDkxiQ zFVs68zwcV1csLji0^A)a zqfN{G2IBMM#8==VHSoX5Q+{*h+`rib@=0Z{$MBqdZ1n19CKhUvxU=IcR^q|aEqf?X zQp4wC{`DLwZ)^lYkh&=}AY^yT4+Y*b+uj^-08*G=F z71}cfe}^WOS=J%fYvAvF%h9cs(1%0P$KZD3P-z5MvccF&#NyxvS{a|FVpbsuXL1%Q z`<5vOGu)=YxDT{|gH3at?_o^Z5mPb#^!SGZ}_^y89tog9OR{#%y zwN1+27@F|3MaXhc%zPHk0zd@{6p2X>Y%x%o1wUrgX_Hp2l}P&ELbGz<4`xY-0hfa& z`HrJh1^cPk7XaJf3NS8tg|D{s^E8O5o}C#S_r%H_wTwwSb2d!8_Bf{5rM(63kG8F$ zp5Oz0kGh5^y)=YTFG9tp%+3jTdJd}Swor-EV`29oX2$=$;{ z(Ll^~!G=evQgV%zKG^N}lNB^*|YjzY~@S__4qu=RmmU^r$H)TkE3+K|i-&o^A6BsHW%$!ip(SYbufv zSbl#<MIT@-;^nJhve$$0%jkR01;E@q_H%opsq-*%KFa@K2fuW=8pS1h=DVpuER% zQdMXn6(AnCvr05C3{EI_-ezy>-rH_4`0wb3L`#BSP?F-)JNoVsVO0$Qeh*ZhQr(Mi z;3CV+5%$5U3H0qyRc&;+FEOX=aOp;2mAj@_vTTO?mz~>N^g~5Cz)(p-U1s`XTdW1C zuwxWV7Pp6EYE25CUSL#@)7viWs~;IU80;>~9jf`cQgtwj2Fv!=H#e&(@N7NG_&`cf zaMJ+Y0cBToVL$0_`NH!AL$;Z(Qnms|IXqeekO`F9?uW{3m7Vh!tdN0H2bqdD zOLdW-fIyc`rG3l4 zQ>^?E00@Mul`CKC;%E3!j6P@Wwml+UX8rm`h1s-9luf$E!EbWwkF}XZR<&`L8wB-7 z+d`&Nn2o1)mY$$9W_^@xp4;q7*YKlFtvB3w`;*=%mb4+J1a}Ct=c?)gR8crdh%e;; zBndF=WoV|^^dG!uGtzXgSOAl1>S(+N2<|>ho{iOnF8BM;+_EYjd3n7&=8zs*;}KRR z1ihAJXf=AVw7W_kl&sE5lMhD4E*u$4eS4tDHC>&t`Q0D@F-r7XDb5}Y{ZYd%b=`? zrxCuXo17g#r89{n_6FvzTI3C}{zXCYXsN2tDv_yU3qGC~Q*Eu3qjbtF(7S+Y(lc6B z>Lt;=eiz*G3$E|kH!kAlZzR52rvG$#!zsvDYC1jq2!wa{&J5AsD_+Q+g?Xk{@Fz4t zF7Z0tGUMQh(!KmG{Gn0Z)k$s^?8Y6z8-*vm8(E`uN_ zOlx0_<~)Xs-kxd2UqkP{1VvG@|7ggx3_JuxYShoo(3LnxHk+wmeo{!^C0FFjNeukC z`Bh~ZQ~AGK0X0ncmA_*A8m2rBSG_-MtA|(d{VY_i+m_976KCm5k^}xo>eo6&k#O{k z7=a9k;hhU6#itgpafd+=zjmi`5&Zp{c}>8FLaYm zT%XLreasK7eW*r;+Any8rW(iZsD}e54Pa&;4r!LAY~a@giH9$-E{tdhBWFtfXVgG+HZ<=9)2|ODfV_EM7PiS_u8^qDvgZ2q#P6d1+gv@c zG%!LLNBvms-bpoLtH1zz51MP%BNQpDDP>hxQ#xzk=q~~O_8tbCdfWiCznHO9`cjp- z4O(;ezkc62@mx#yn%aQ1J(oIBF#!o?-bOgFc|1V-@bVF#U6JxfGyRC+lL;yvL;G7o zEwp=HXqEdRq%gznS#Sdp!(_U;?pX1UE{2JI2j4l1%hP~31xw&l>F+mE13NC`su5Y* zg3YpWH9I$P{;z{R-KQTY$Gb4uiSDs@Bqp{G15?iAtPDvP1AKY}e8Rc7NqIjgIp9ro?H8Hx z=E=;G>%B+U%~3`~h_x+3$T@XrS>bpeBW+ZgG8(;$Fe2|~cZlZL%QRH7iCkCa*!rx2 zyqlT%5n-6d(;b)6@R6rN(MY9+OCXM_>?0`s3_8Ayo^V$Vf7cCkdenB83Sq~>pRmXC z!0MQk&~F*m7wdM58hw(uT}O&(b0sG;CDGhzIw)|&T$a|;T&-P-V9661ii}RAnSBCn zq8dypDcb8{OCyq=vaW0A>XcOdu9DWZj8F#TVh~DtByqxzapH3jhWd~t8u=Wfa z1*x~wOW&i8SY1GSx#@Hl|ENJ$_aJRbHgbG&$KkYV45&)-?4$ z5FBT3qMSfb|4SZg(>Ud)#a)G2VAzgXAn5A$N!JqH)UyiptTSIAc06B(NeQZnTZsYp zHxx@xsCkb*9q(*q017LfP*HgWs((cz@Vqk;-QhLdapUM!mY#`IRrWnP{(k#}4Sd)l zce=L({#l9`Pf`v`^`>-J_Va3Ul=y12RNRNj`Kouv8J(TyD`mY=IgqGmY8@MGF+NSU zwP+&2Y@iz)$6e{V2czuk7DgiVYKtQ+dd7LAfbRy|8w3bPB-f+l0WH|&%Y17)#zCVc z6z8<~9=3&?Y|?59Wo;s+ghDHjnY(YMmCUD|oj;rU;z^;}N)|Vh8n{3a?gL7hm*WvanmTmB$2 z#3SbX!7+bZ;%Iam%7!@a|G1~SJ1DxuUBa!tzV?%lj-l74$n%BQH z8m$K{(9YUe&h6_?i8vMYFz@$gLP3@bv;(Ote_#VI%LE>E#vH*4l+FG8ZMOc$PV5&M zXhqeHisbNWpS^CTb9rb(aM@6vUzG)djIPw(S~q2SU{WTkMv1sRe6UC4UN0d~`LUvE zP2>jUS&{GxZslyzlY2UKzh@AfZL<962r-$spZIWqM*A(qnVcY%&V!_*Iuyj}3Nanl zG-Q~8BWpR&B&WUYTw4r8M83LwAEp|R?43@Uu1(A0VLx#dEHDMjNXm7;VcQjx-RWF3SSPYCLMST768tN} z{lcKOgOYuA^{lDFp?2#m5?dbCH4OpSJ0%AKtG2RRPHxg9uByV@ExU)g$^X+W*kCuT zvl)PQ!UyOq;_wG?@=$Xjp#YJAaSmm#0(%%V7M4Q6mJVCEd1oTEUg-Ra7Ns0C{Lrba zSP_E0FE{BUe|wkErjONTdOC3`Rw1SWujN^xb0D(C7Z#*cej6Wrz#bnxtE%Q)T*1Lh zIPt%XD{MMs3t!2ulAHSUwXMpp^Y$p*7TtvlW99j~X=tOajKI#a@%^+n4z<&Z-NMs~ zJ&a9OTKk-5Z}^W9;x*WQ)1ZD_YN4{M-i6;OuMkhJiRTyaPiU^RQfgRVj>=E&!I-Z0 z;#X1J?9o%fg?ati$z#!?yY{4@Z~czv3VhdUS*o5GW;H64QM-UPNSH#0aYf8lMnaldIhHag<6E1^-=7^&%QP!i4ilX?+K#u z^tI{fbnTZngxCw8z+mW>a_K(^*e9$P$}jTf3;AUHKho znUi%Vf?5yxWt4cLhjn+B&XxwZ6(}!w0upjiui;KyrsFwj?=LjcilH%G`ala;C{qdq zMV9HotGXf3dR!H3C1YPrPKwqYKH?+xvj$*%`;g)HqGAQ2oGg7(-{?&<>fG>#QM63X zw;~Fene*F!=uaG#H$UCu;j`v2|p4SLmG0094~dO zb;%UTHDN!oT-6V6Qj}{g+A0}YeVM&it=B6uYm?Gdzryq05Bjdz{&DqwN#Ni*(Xao?O{Z$yweL3j_3liA{aiHz5U9DMq)GDPCb___~i@Ug9Ep?Y)}){D8sFgyQ%UT}|I=LBkFkL`{)r{p!kt2Ly0Q5USuQB+xy zez!>=4X76N)FZ-fOpZSvqmElO`>0aDr8_o!P^}sr&qm88krtYMzy{o&kN_-ZD^V#Y zBLGY{_u#n-x?t`<8^Wn`Y3AK3OG8EV+wuZ;!84*Q6>^$ge-S0Q{D{u5@<9xF?Tw^2 z-1|g`{Wds9PBe`+k^o5aE9Qydn(MS7uZ)xyBxZE1CU<;Bar{c&?g41c$(_9M?tY5y z$SwptF1F7KJt$T|T#%x`(}lyK_R4!xot*u5;C}yJe-g}0Tqt$#EKf_Um0o}Yy#>26 zp;|p0(YMFTd@}-Ls9J@Fm?cec9V)+s?4wW|9`jU-jdIcFjK`Ia>$M$c5gfm?Fq<J@q$jxXlz*E?#O7BCC#f z?f-d6{a4l#1}_Ng7I>Jyys+$Xja%GX+$SsNo42#9;^l+!)!x$#x3awMCp;T#bYyGV zsW)c#2odr(Tp5)7sR7^p5pbi3Ts)sX9@3B4p)69BT(@5IwW*FJkP+WRL_VHsO?~yI zKMnl;eb7hFvXI@qtfrtH^LDvv@tt3IQ)bZ2de8~yw^PjK~cl4Xljkt!TrVl7E* zXFtCl-%cZ)C*e^5FbmVY=lv)FY0#Nf6nIwT`~J`Izxx9ul;#Tj|LdAauNQvD{$>IK zFQEVeFwk!nlDN_s_W?8W{o(c3TO?#4kO@$!^m#)?9>4;qF#r#Xu;Jny>KwQF;VdTc zul%zLhGmU@1D}_LyE|zyvEF}vDW@ARX^eV!zW)r{c~-5Ldht>_SY9QKKgk5pnYVCu z_|}-LoV6n9axwKiW4tbilKIP$V7jIyTq*)|N^-<1lUR(@weLHSPz2BTeBk}KhNaKT zP3(H3?$>9u((f^!K6l>_|8P;3TdL9Ozpu6Lk0A=VV+MDA|91X^>l~7C-?i?@QG7a7 zhM;L$d9b{+=|_$IT0{Qo9J~HUSMCsb`Y^8Lk)Q-8XH7c_snyXM!tMkpYl!KcE#Ep| zW|B%}W{#~u0S|KZDIk;1CxMnmy{KK;Gt7|?>G=Ur=XTmCUON#sNY`$qv?= ztbR3~?|ps!1m8UsBG!$mKE0QZQpq9WTO)1t<5N>5=R_s5T&jZwwDMIZuhC1pc!%No z5pmQ5(Efx_!602Vwo-SZ^I!*4ENh6EAn&ttlOxS&&Em~Y^8)pK*obva7 zYR!K4-CcPzQQ6WjBg+n#GzCpG8qUr+3KqhsBBsSf-Re?L78!E$(hd`uN7*+}`}5ZfH8>f7020c{1#9&g$R4d1lxFRqYRd0=O& z9;!DI5Tvi|QZw_5k8;scH}yVH&a@t?S(LghghTwk&Z=)Q>GZI2>DgK7%cRN%O)+Z; zx?blo%}RaVnE9%wmtJxJ6c23VVV0dQX^2x-Z#+$?C=C5nsljPo(=F?;*Fx*r(lOKs zkoI`&Qmef@zn~Ko9FmUvW?e|t1P?iK{nvM6zJg#mFZqlyV>y`I(DZ~zR<$s$*SRx^ z-Pc)oH)Q$3N4<7nTGd*Jt@_eMCij7l(5DA^N<}+^v^VWSQljlGQ-p@jo#3~3A(y?? z8sYIghs5sm%m}r*i?sl!Gbf7G#URtY2hFB;ipi(1148OzGuQnbUu-AefDS(`lTiFh zQsyTy`-^m~BeOoPYT70~mCsw7Af~F&G2T3F9Y2?nsVbakJG7)Gi1ij_CRD-n8w{sf z1B76*E)nVjc!nknNy@NmHT|*GMDV!7Me$aIe)>CX6Y3yRxI@flqXh4tsZ@ zu~t-N3h=VJ$ z$aV~oVm>G^gWL;$KVKw&odkO2{QFZ$$9X`K_dIQG+QJd!iniPM40p2px-Ju=$;R73 zH-)v@$-j&Kq+o8>wTl85c#9`-O3TbS^0?R&9X27sQrXEu;|!3jUEHn+bFv(j7b0Ch z%#>-kXF4TlWLfzof_pRgJZcxC%4x_=zeU(3$z-}!bswo?2%DCxspwbmOgu>D7Rj+EQ$jZ0BIEI{ zbK8B&tf@mn+zt)@N71?XGyVT>c$;BP!yG~mGaEC*9CM19^ZA&Nia8&WQdu?^C-k*!}ce(=|lPIq;t`1>`|CI^wK=Q;gy zh1FCkcX*RtvgH4sxHa70NkH)hj0gWI;U9Zr7#Y`s2O6r?)=NB(S)I)jg=>D!x;s?l z+)Po?Ge#|xl^{E{vfZrBc(4G^4e=-GR=3n!u#JhJi1_q^mQY5PUfvr~x8i(9&)`;? zAPQ|pIvaps*}a{!2Yp}oWG_fTC_O(ZX-Z0u)cg?HkSlARzI3TW$v;9?_E<1ybj;V* z^vcv_^j_pd;|HCiPWM-;2J#gz6`%3&yc3jR8neHEKNV`F^5yQCk-WCS0fdVYm1}EqDX!bvB#7q&%VZv;s-AYJ2;R+%PBJY6^emUT=hMUR=1` zu~(dP42rX$ynaZYtm1J>H>mk-3QsvAV#c_q)I4ZFmQEa3X@jmYZi?S2;$bf4mLbwD zRnReXks|7?1@?titd(8nLP)ut*$fwLJ4pEu#tO95i{Cv>^u~rZP0835zI|E+$E~$H z75o>b&TAU3g!d|0%{1l@I&KIj^284#DMFCwc-qQQFfOJVIVV29EXrP$)P8neo#OqQ= zTZi;;^{}YHb(5*1(#$6-_d-$X_p5q?OTGX!_<7h3A~i0ZAr_2V)H}$%%DOXaD#E7ZsOpA=^mZ0>eTHW zw6FFl)o!43KVA8-x5bvg#>!X14SS&K;SBHI= z-wZuZDb8z#-YNakV*5n+f9j6!m`A8jmOH7tmV+2GS$c+vxOJM=g`_?W5H}!GTw@Kl z(_}g-=e$oZTLamqlL>gxpptR%n-szx$nj!L1x4BW?Aq|n#(fiev7n?r?9?H8q>lBP@i(&shZJK4 zR$G!W)1nG#XQbolC%|UcYYuTOwWVFHOQ3;|J**a`m2EB7^^j|VajTprlWbBM?nZ0& zs6j!E&3|F&@n!RISMGy^tXj3LrYaQ9%bpQF+%9V|46u?^H0n34gCL0R)7g|87K
  • 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ȕ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 + /// Unity Editor class which registers Project Validation rules for the Starter Assets sample package. + /// + class StarterAssetsSampleProjectValidation + { + const string k_Category = "XR Interaction Toolkit"; + const string k_StarterAssetsSampleName = "Starter Assets"; + const string k_TeleportLayerName = "Teleport"; + const int k_TeleportLayerIndex = 31; + const string k_ProjectValidationSettingsPath = "Project/XR Plug-in Management/Project Validation"; + const string k_ShaderGraphPackageName = "com.unity.shadergraph"; +#if UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS + const string k_InputSystemPackageName = "com.unity.inputsystem"; + static readonly PackageVersion s_RecommendedPackageVersion = new PackageVersion("1.11.0"); + const string k_InputActionAssetName = "XRI Default Input Actions"; + const string k_InputActionAssetGuid = "c348712bda248c246b8c49b3db54643f"; +#endif + + static readonly BuildTargetGroup[] s_BuildTargetGroups = + ((BuildTargetGroup[])Enum.GetValues(typeof(BuildTargetGroup))).Distinct().ToArray(); + + static readonly List s_BuildValidationRules = new List(); + + static AddRequest s_ShaderGraphPackageAddRequest; +#if UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS + static AddRequest s_InputSystemPackageAddRequest; +#endif + + [InitializeOnLoadMethod] + static void RegisterProjectValidationRules() + { + // In the Player Settings UI we have to delay the call one frame to let the settings provider get initialized + // since we need to access the settings asset to set the rule's non-delegate properties (FixItAutomatic). + EditorApplication.delayCall += AddRulesAndRunCheck; + } + + static void AddRulesAndRunCheck() + { + if (s_BuildValidationRules.Count == 0) + { + s_BuildValidationRules.Add( + new BuildValidationRule + { + Category = k_Category, + Message = $"[{k_StarterAssetsSampleName}] Interaction Layer {k_TeleportLayerIndex} should be set to '{k_TeleportLayerName}' for teleportation locomotion.", + FixItMessage = $"XR Interaction Toolkit samples reserve Interaction Layer {k_TeleportLayerIndex} for teleportation locomotion. Set Interaction Layer {k_TeleportLayerIndex} to '{k_TeleportLayerName}' to prevent conflicts.", + HelpText = "Please note Interaction Layers are unique to the XR Interaction Toolkit and can be found in Edit > Project Settings > XR Plug-in Management > XR Interaction Toolkit", + FixItAutomatic = InteractionLayerSettings.Instance.IsLayerEmpty(k_TeleportLayerIndex) || IsInteractionLayerTeleport(), + Error = false, + CheckPredicate = IsInteractionLayerTeleport, + FixIt = () => + { + if (InteractionLayerSettings.Instance.IsLayerEmpty(k_TeleportLayerIndex) || DisplayTeleportDialog()) + InteractionLayerSettings.Instance.SetLayerNameAt(k_TeleportLayerIndex, k_TeleportLayerName); + else + SettingsService.OpenProjectSettings(XRInteractionToolkitSettingsProvider.k_SettingsPath); + }, + }); + + s_BuildValidationRules.Add( + new BuildValidationRule + { + IsRuleEnabled = () => s_ShaderGraphPackageAddRequest == null || s_ShaderGraphPackageAddRequest.IsCompleted, + Message = $"[{k_StarterAssetsSampleName}] Shader Graph ({k_ShaderGraphPackageName}) package must be installed for materials used in this sample.", + Category = k_Category, + CheckPredicate = () => PackageVersionUtility.IsPackageInstalled(k_ShaderGraphPackageName), + FixIt = () => + { + s_ShaderGraphPackageAddRequest = Client.Add(k_ShaderGraphPackageName); + if (s_ShaderGraphPackageAddRequest.Error != null) + { + Debug.LogError($"Package installation error: {s_ShaderGraphPackageAddRequest.Error}: {s_ShaderGraphPackageAddRequest.Error.message}"); + } + }, + FixItAutomatic = true, + Error = false, + }); + +#if UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS + s_BuildValidationRules.Add( + new BuildValidationRule + { + IsRuleEnabled = () => s_InputSystemPackageAddRequest == null || s_InputSystemPackageAddRequest.IsCompleted, + Message = $"[{k_StarterAssetsSampleName}] Input System ({k_InputSystemPackageName}) package must be at version {s_RecommendedPackageVersion} or higher to use Project-wide Actions with {k_InputActionAssetName}.", + Category = k_Category, + CheckPredicate = () => InputSystem.actions == null || PackageVersionUtility.GetPackageVersion(k_InputSystemPackageName) >= s_RecommendedPackageVersion, + FixIt = () => + { + if (s_InputSystemPackageAddRequest == null || s_InputSystemPackageAddRequest.IsCompleted) + InstallOrUpdateInputSystem(); + }, + HelpText = "This version added support for automatic loading of custom extensions of InputProcessor, InputInteraction, and InputBindingComposite defined by this package.", + FixItAutomatic = true, + Error = InputSystem.actions != null && (InputSystem.actions.name == k_InputActionAssetName || AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(InputSystem.actions)) == k_InputActionAssetGuid), + }); +#endif + } + + foreach (var buildTargetGroup in s_BuildTargetGroups) + { + BuildValidator.AddRules(buildTargetGroup, s_BuildValidationRules); + } + + ShowWindowIfIssuesExist(); + } + + static void ShowWindowIfIssuesExist() + { + foreach (var validation in s_BuildValidationRules) + { + if (validation.CheckPredicate == null || !validation.CheckPredicate.Invoke()) + { + ShowWindow(); + return; + } + } + } + + internal static void ShowWindow() + { + // Delay opening the window since sometimes other settings in the player settings provider redirect to the + // project validation window causing serialized objects to be nullified. + EditorApplication.delayCall += () => + { + SettingsService.OpenProjectSettings(k_ProjectValidationSettingsPath); + }; + } + + static bool IsInteractionLayerTeleport() + { + return string.Equals(InteractionLayerSettings.Instance.GetLayerNameAt(k_TeleportLayerIndex), k_TeleportLayerName, StringComparison.OrdinalIgnoreCase); + } + + static bool DisplayTeleportDialog() + { + return EditorUtility.DisplayDialog( + "Fixing Teleport Interaction Layer", + $"Interaction Layer {k_TeleportLayerIndex} for teleportation locomotion is currently set to '{InteractionLayerSettings.Instance.GetLayerNameAt(k_TeleportLayerIndex)}' instead of '{k_TeleportLayerName}'", + "Automatically Replace", + "Cancel"); + } + +#if UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS + static void InstallOrUpdateInputSystem() + { + // Set a 3-second timeout for request to avoid editor lockup + var currentTime = DateTime.Now; + var endTime = currentTime + TimeSpan.FromSeconds(3); + + var request = Client.Search(k_InputSystemPackageName); + if (request.Status == StatusCode.InProgress) + { + Debug.Log($"Searching for ({k_InputSystemPackageName}) in Unity Package Registry."); + while (request.Status == StatusCode.InProgress && currentTime < endTime) + currentTime = DateTime.Now; + } + + var addRequest = k_InputSystemPackageName; + if (request.Status == StatusCode.Success && request.Result.Length > 0) + { + var versions = request.Result[0].versions; +#if UNITY_2022_2_OR_NEWER + var recommendedVersion = new PackageVersion(versions.recommended); +#else + var recommendedVersion = new PackageVersion(versions.verified); +#endif + var latestCompatible = new PackageVersion(versions.latestCompatible); + if (recommendedVersion < s_RecommendedPackageVersion && s_RecommendedPackageVersion <= latestCompatible) + addRequest = $"{k_InputSystemPackageName}@{s_RecommendedPackageVersion}"; + } + + s_InputSystemPackageAddRequest = Client.Add(addRequest); + if (s_InputSystemPackageAddRequest.Error != null) + { + Debug.LogError($"Package installation error: {s_InputSystemPackageAddRequest.Error}: {s_InputSystemPackageAddRequest.Error.message}"); + } + } +#endif + } +} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Editor/Scripts/StarterAssetsSampleProjectValidation.cs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Editor/Scripts/StarterAssetsSampleProjectValidation.cs.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Editor/Scripts/StarterAssetsSampleProjectValidation.cs.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Editor/Scripts/StarterAssetsSampleProjectValidation.cs.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Editor/Unity.XR.Interaction.Toolkit.Samples.StarterAssets.Editor.asmdef b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Editor/StarterAssets.Editor.asmdef similarity index 67% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Editor/Unity.XR.Interaction.Toolkit.Samples.StarterAssets.Editor.asmdef rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Editor/StarterAssets.Editor.asmdef index 640de431..5f0f819a 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Editor/Unity.XR.Interaction.Toolkit.Samples.StarterAssets.Editor.asmdef +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Editor/StarterAssets.Editor.asmdef @@ -5,7 +5,8 @@ "Unity.XR.Interaction.Toolkit", "Unity.XR.Interaction.Toolkit.Editor", "Unity.XR.CoreUtils", - "Unity.XR.CoreUtils.Editor" + "Unity.XR.CoreUtils.Editor", + "Unity.InputSystem" ], "includePlatforms": [ "Editor" @@ -16,6 +17,12 @@ "precompiledReferences": [], "autoReferenced": true, "defineConstraints": [], - "versionDefines": [], + "versionDefines": [ + { + "name": "Unity", + "expression": "2022.3", + "define": "UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS" + } + ], "noEngineReferences": false } \ No newline at end of file diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Editor/Unity.XR.Interaction.Toolkit.Samples.StarterAssets.Editor.asmdef.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Editor/StarterAssets.Editor.asmdef.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Editor/Unity.XR.Interaction.Toolkit.Samples.StarterAssets.Editor.asmdef.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Editor/StarterAssets.Editor.asmdef.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Filters.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Filters.meta new file mode 100644 index 00000000..d8d3dbee --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Filters.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cbfc8c172e97a1a429faf76ac87aaf06 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Filters/AnyGazedAtTeleportAnchorFilter.asset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Filters/AnyGazedAtTeleportAnchorFilter.asset new file mode 100644 index 00000000..994d4a8d --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Filters/AnyGazedAtTeleportAnchorFilter.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d64a030b16ad8df2bd1b42cd31889771dc2eea19b29a7e6e5b91e56da4a1fe1c +size 1767 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Filters/AnyGazedAtTeleportAnchorFilter.asset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Filters/AnyGazedAtTeleportAnchorFilter.asset.meta new file mode 100644 index 00000000..1244146e --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Filters/AnyGazedAtTeleportAnchorFilter.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0f906c94e2aa0c3488832acc1db04295 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials.meta new file mode 100644 index 00000000..e1c62776 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5cfaae8b567b8aa45b7a432b5bb5560c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Controller_Grey.mat b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Controller_Grey.mat new file mode 100644 index 00000000..4c15a8d3 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Controller_Grey.mat @@ -0,0 +1,185 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Controller_Grey + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: + - _OCCLUSIONMAP + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 1 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AO_Texture: + m_Texture: {fileID: 2800000, guid: 85e675893a909864d9c237e20202651b, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _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} + - _MainTexture: + 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} + - _NormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 2800000, guid: 85e675893a909864d9c237e20202651b, type: 3} + 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} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AO_Intensity: 0.75 + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _BUILTIN_AlphaClip: 0 + - _BUILTIN_Blend: 0 + - _BUILTIN_CullMode: 2 + - _BUILTIN_DstBlend: 0 + - _BUILTIN_QueueControl: 0 + - _BUILTIN_QueueOffset: 0 + - _BUILTIN_SrcBlend: 1 + - _BUILTIN_Surface: 0 + - _BUILTIN_ZTest: 4 + - _BUILTIN_ZWrite: 1 + - _BUILTIN_ZWriteControl: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _BumpStrength: 1 + - _CastShadows: 0 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _NormalStrength: 0.2 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _QueueControl: 0 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _RimPower: 5 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _UVSec: 0 + - _WorkflowMode: 1 + - _ZTest: 4 + - _ZWrite: 1 + - _ZWriteControl: 0 + m_Colors: + - _BaseColor: {r: 0.75294125, g: 0.75294125, b: 0.75294125, a: 1} + - _BumpOffset: {r: 0, g: 0, b: 0, a: 0} + - _BumpTiling: {r: 1, g: 1, b: 0, a: 0} + - _Color: {r: 0.75294125, g: 0.75294125, b: 0.75294125, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _NormalOffset: {r: 0, g: 0, b: 0, a: 0} + - _NormalTiling: {r: 1, g: 1, b: 0, a: 0} + - _RimColor: {r: 1, g: 1, b: 1, a: 0.5803922} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] +--- !u!114 &2844382753039495902 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 0 +--- !u!114 &3175206980477369162 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 7 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Controller_Grey.mat.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Controller_Grey.mat.meta new file mode 100644 index 00000000..a7766f30 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Controller_Grey.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 99685157b02e4d446bbecb015645e5e8 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Controller_White.mat b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Controller_White.mat new file mode 100644 index 00000000..1fb0960c --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Controller_White.mat @@ -0,0 +1,171 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-4601201219206549488 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 7 +--- !u!114 &-1555896807369559897 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 0 +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Controller_White + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: + - _OCCLUSIONMAP + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 1 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AO_Texture: + m_Texture: {fileID: 2800000, guid: 85e675893a909864d9c237e20202651b, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _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: 2800000, guid: 85e675893a909864d9c237e20202651b, type: 3} + 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} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AO_Intensity: 1 + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _BUILTIN_AlphaClip: 0 + - _BUILTIN_Blend: 0 + - _BUILTIN_CullMode: 2 + - _BUILTIN_DstBlend: 0 + - _BUILTIN_QueueControl: 0 + - _BUILTIN_QueueOffset: 0 + - _BUILTIN_SrcBlend: 1 + - _BUILTIN_Surface: 0 + - _BUILTIN_ZTest: 4 + - _BUILTIN_ZWrite: 1 + - _BUILTIN_ZWriteControl: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _CastShadows: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _QueueControl: 0 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _UVSec: 0 + - _WorkflowMode: 1 + - _ZTest: 4 + - _ZWrite: 1 + - _ZWriteControl: 0 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 1} + - _BumpOffset: {r: 0, g: 0, b: 0, a: 0} + - _BumpTiling: {r: 1, g: 1, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Controller_White.mat.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Controller_White.mat.meta new file mode 100644 index 00000000..d8848181 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Controller_White.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9f12d299d16099343a3c5c0d7285822a +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Materials/Blue.mat b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Flat Blue.mat similarity index 86% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer/Materials/Blue.mat rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Flat Blue.mat index 93221bc5..77b4186b 100644 --- a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Materials/Blue.mat +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Flat Blue.mat @@ -2,14 +2,15 @@ %TAG !u! tag:unity3d.com,2011: --- !u!21 &2100000 Material: - serializedVersion: 6 + serializedVersion: 8 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: Blue - m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_ShaderKeywords: _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A + m_Name: Flat Blue + m_Shader: {fileID: 10755, guid: 0000000000000000f000000000000000, type: 0} + m_ValidKeywords: [] + m_InvalidKeywords: [] m_LightmapFlags: 4 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 @@ -55,6 +56,7 @@ Material: 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 @@ -67,12 +69,12 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _SmoothnessTextureChannel: 1 + - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 - _UVSec: 0 - _ZWrite: 1 m_Colors: - - _Color: {r: 0, g: 0, b: 1, a: 1} + - _Color: {r: 0.1254902, g: 0.5882353, b: 0.9529412, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} m_BuildTextureStacks: [] diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Flat Blue.mat.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Flat Blue.mat.meta new file mode 100644 index 00000000..766f2016 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Flat Blue.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 91ff3830fc4055a4fb0d0d2be32101a7 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/FresnelHighlight.mat b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/FresnelHighlight.mat new file mode 100644 index 00000000..dfaf135a --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/FresnelHighlight.mat @@ -0,0 +1,176 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-4454421181341466485 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 7 +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: FresnelHighlight + m_Shader: {fileID: -6465566751694194690, guid: e19b5bb6cb8e91e43b1b5d81a069296f, + type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: + - _RECEIVE_SHADOWS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2000 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - SHADOWCASTER + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _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} + - _MainTexture: + 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} + - _NormalMap: + 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} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _BUILTIN_AlphaClip: 0 + - _BUILTIN_Blend: 0 + - _BUILTIN_CullMode: 2 + - _BUILTIN_DstBlend: 0 + - _BUILTIN_QueueControl: 0 + - _BUILTIN_QueueOffset: 0 + - _BUILTIN_SrcBlend: 1 + - _BUILTIN_Surface: 0 + - _BUILTIN_ZTest: 4 + - _BUILTIN_ZWrite: 1 + - _BUILTIN_ZWriteControl: 0 + - _Blend: 0 + - _BumpScale: 1 + - _CastShadows: 0 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _EnvironmentReflections: 1 + - _FresnelPower: 1.5 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _NormalStrength: 0.2 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueControl: 0 + - _QueueOffset: 0 + - _ReceiveShadows: 0 + - _RimPower: 1.5 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _Surface: 0 + - _WorkflowMode: 1 + - _ZTest: 4 + - _ZWrite: 1 + - _ZWriteControl: 0 + m_Colors: + - _BaseColor: {r: 0.7529412, g: 0.7529412, b: 0.7529412, a: 0.33333334} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _FresnelColor: {r: 1, g: 1, b: 1, a: 1} + - _NormalOffset: {r: 0, g: 0, b: 0, a: 0} + - _NormalTiling: {r: 1, g: 1, b: 0, a: 0} + - _RimColor: {r: 1, g: 1, b: 1, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] +--- !u!114 &743812867147283137 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/FresnelHighlight.mat.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/FresnelHighlight.mat.meta new file mode 100644 index 00000000..5d946438 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/FresnelHighlight.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f5ccd52dc494e054fbe7d7161dcabe25 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Interactable.mat b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Interactable.mat new file mode 100644 index 00000000..23072731 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Interactable.mat @@ -0,0 +1,183 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-3335879748548489386 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 0 +--- !u!114 &-2536893978736553219 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 7 +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Interactable + m_Shader: {fileID: -6465566751694194690, guid: 0927d29e476ce5843b1f7d2a96943c51, + type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _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} + - _MainTexture: + 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} + - _NormalMap: + m_Texture: {fileID: 2800000, guid: cdebec39dbf81a14688e1de8d12897b4, type: 3} + 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} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Texture2DAsset_46c74e5059524c9b9656d53d13cff555_Out_0: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Texture2DAsset_ced3e0f4340741a1b36c259c8f49d0c7_Out_0: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _BUILTIN_AlphaClip: 0 + - _BUILTIN_Blend: 0 + - _BUILTIN_CullMode: 2 + - _BUILTIN_DstBlend: 0 + - _BUILTIN_QueueControl: 0 + - _BUILTIN_QueueOffset: 0 + - _BUILTIN_SrcBlend: 1 + - _BUILTIN_Surface: 0 + - _BUILTIN_ZTest: 4 + - _BUILTIN_ZWrite: 1 + - _BUILTIN_ZWriteControl: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 0 + - _BumpScale: 1 + - _CastShadows: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0.05 + - _NormalStrength: 0.75 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueControl: 0 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _RimPower: 4 + - _Smoothness: 0.2 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _Surface: 0 + - _WorkflowMode: 1 + - _ZTest: 4 + - _ZWrite: 1 + - _ZWriteControl: 0 + m_Colors: + - _BaseColor: {r: 0.5686275, g: 0.78431374, b: 1, a: 1} + - _BumpOffset: {r: 0, g: 0, b: 0, a: 0} + - _BumpTiling: {r: 4, g: 2, b: 0, a: 0} + - _Color: {r: 0.5686274, g: 0.78431374, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _NormalOffset: {r: 0, g: 0, b: 0, a: 0} + - _NormalTiling: {r: 4, g: 2, b: 0, a: 0} + - _RimColor: {r: 1, g: 1, b: 1, a: 0.09803922} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Interactable.mat.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Interactable.mat.meta new file mode 100644 index 00000000..e48cf95b --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Interactable.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 76618f7490c40334fa7b685859587d2e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/MaterialPipelineHandler.asset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/MaterialPipelineHandler.asset new file mode 100644 index 00000000..9cb58d23 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/MaterialPipelineHandler.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:66fe21e9949cf9ba59dd31ab1be22e94b2001cb9ee6500bd5b9dded869b72de7 +size 2837 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/MaterialPipelineHandler.asset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/MaterialPipelineHandler.asset.meta new file mode 100644 index 00000000..ca6d0e51 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/MaterialPipelineHandler.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dbe8dcb68b75cd2498ab6c1d96e072a4 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Telport Anchor.mat b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Telport Anchor.mat new file mode 100644 index 00000000..8078c71e --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Telport Anchor.mat @@ -0,0 +1,171 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-859374318456194000 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 7 +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Telport Anchor + m_Shader: {fileID: 4800000, guid: 8d2bb70cbf9db8d4da26e15b26e74248, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: + - _GLOSSYREFLECTIONS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 1 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _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} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AO_Intensity: 1 + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _BUILTIN_AlphaClip: 0 + - _BUILTIN_Blend: 0 + - _BUILTIN_CullMode: 2 + - _BUILTIN_DstBlend: 0 + - _BUILTIN_QueueControl: 0 + - _BUILTIN_QueueOffset: 0 + - _BUILTIN_SrcBlend: 1 + - _BUILTIN_Surface: 0 + - _BUILTIN_ZTest: 4 + - _BUILTIN_ZWrite: 1 + - _BUILTIN_ZWriteControl: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _CastShadows: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossinessSource: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueControl: 0 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _RimPower: 5 + - _Shininess: 0 + - _Smoothness: 0.5 + - _SmoothnessSource: 0 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _UVSec: 0 + - _WorkflowMode: 1 + - _ZTest: 4 + - _ZWrite: 1 + - _ZWriteControl: 0 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 1} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _RimColor: {r: 1, g: 1, b: 1, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] +--- !u!114 &1825622308456155611 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Telport Anchor.mat.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Telport Anchor.mat.meta new file mode 100644 index 00000000..086afc0b --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Telport Anchor.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fd3c5d8fce991e04f9c11109dde95b3b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Telport Area.mat b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Telport Area.mat new file mode 100644 index 00000000..30347fdf --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Telport Area.mat @@ -0,0 +1,171 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-859374318456194000 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 7 +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Telport Area + m_Shader: {fileID: 4800000, guid: 8d2bb70cbf9db8d4da26e15b26e74248, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: + - _GLOSSYREFLECTIONS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 1 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _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} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AO_Intensity: 1 + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _BUILTIN_AlphaClip: 0 + - _BUILTIN_Blend: 0 + - _BUILTIN_CullMode: 2 + - _BUILTIN_DstBlend: 0 + - _BUILTIN_QueueControl: 0 + - _BUILTIN_QueueOffset: 0 + - _BUILTIN_SrcBlend: 1 + - _BUILTIN_Surface: 0 + - _BUILTIN_ZTest: 4 + - _BUILTIN_ZWrite: 1 + - _BUILTIN_ZWriteControl: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _CastShadows: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossinessSource: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueControl: 0 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _RimPower: 5 + - _Shininess: 0 + - _Smoothness: 0.5 + - _SmoothnessSource: 0 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _UVSec: 0 + - _WorkflowMode: 1 + - _ZTest: 4 + - _ZWrite: 1 + - _ZWriteControl: 0 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 1} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _RimColor: {r: 1, g: 1, b: 1, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] +--- !u!114 &1825622308456155611 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Telport Area.mat.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Telport Area.mat.meta new file mode 100644 index 00000000..2ac82cd8 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/Telport Area.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: be1e10ce8a6f8cc4fb08d11c7f722469 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Materials/Green.mat b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/UI-NoZTest.mat similarity index 81% rename from Assets/Samples/XR Hands/1.3.0/HandVisualizer/Materials/Green.mat rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/UI-NoZTest.mat index 0ed1af8e..305b6001 100644 --- a/Assets/Samples/XR Hands/1.3.0/HandVisualizer/Materials/Green.mat +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/UI-NoZTest.mat @@ -2,14 +2,15 @@ %TAG !u! tag:unity3d.com,2011: --- !u!21 &2100000 Material: - serializedVersion: 6 + serializedVersion: 8 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: Green - m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_ShaderKeywords: _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A + m_Name: UI-NoZTest + m_Shader: {fileID: 4800000, guid: a661e7516de55c047905f40ca76fe701, type: 3} + m_ValidKeywords: [] + m_InvalidKeywords: [] m_LightmapFlags: 4 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 @@ -55,8 +56,10 @@ Material: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + m_Ints: [] m_Floats: - _BumpScale: 1 + - _ColorMask: 15 - _Cutoff: 0.5 - _DetailNormalMapScale: 1 - _DstBlend: 0 @@ -67,12 +70,18 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _SmoothnessTextureChannel: 1 + - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 - _UVSec: 0 + - _UseUIAlphaClip: 0 - _ZWrite: 1 m_Colors: - - _Color: {r: 0, g: 1, b: 0, a: 1} + - _Color: {r: 1, g: 1, b: 1, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} m_BuildTextureStacks: [] diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/UI-NoZTest.mat.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/UI-NoZTest.mat.meta new file mode 100644 index 00000000..f548b6c3 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Materials/UI-NoZTest.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6f3d696f7c3365846b6dc2402afb3d3e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Models.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Models.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/BlinkVisual.fbx b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/BlinkVisual.fbx new file mode 100644 index 00000000..66c46bae --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/BlinkVisual.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ef0d1bff5ac57e9e07fd06a17f427004f0a0fa637dcd1eb1294e1047fbbfada +size 34416 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/BlinkVisual.fbx.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/BlinkVisual.fbx.meta new file mode 100644 index 00000000..57e97035 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/BlinkVisual.fbx.meta @@ -0,0 +1,111 @@ +fileFormatVersion: 2 +guid: 27b7629e54b332449bfa3a4065ffe17a +ModelImporter: + serializedVersion: 21300 + internalIDToNameTable: [] + externalObjects: + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: aiAmbientOcclusion1 + second: {fileID: 2100000, guid: fd3c5d8fce991e04f9c11109dde95b3b, type: 2} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 1 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Models/Pinch_Pointer_LOD0.fbx b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/Pinch_Pointer_LOD0.fbx similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Models/Pinch_Pointer_LOD0.fbx rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/Pinch_Pointer_LOD0.fbx diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Models/Pinch_Pointer_LOD0.fbx.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/Pinch_Pointer_LOD0.fbx.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Models/Pinch_Pointer_LOD0.fbx.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/Pinch_Pointer_LOD0.fbx.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Models/Primitive_Cylinder.fbx b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/Primitive_Cylinder.fbx similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Models/Primitive_Cylinder.fbx rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/Primitive_Cylinder.fbx diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Models/Primitive_Cylinder.fbx.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/Primitive_Cylinder.fbx.meta similarity index 93% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Models/Primitive_Cylinder.fbx.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/Primitive_Cylinder.fbx.meta index 5f307250..788f500e 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Models/Primitive_Cylinder.fbx.meta +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/Primitive_Cylinder.fbx.meta @@ -3,7 +3,12 @@ guid: 9e1dc1c14313460d872de39e35129b39 ModelImporter: serializedVersion: 21300 internalIDToNameTable: [] - externalObjects: {} + externalObjects: + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: lambert1 + second: {fileID: 2100000, guid: 76618f7490c40334fa7b685859587d2e, type: 2} materials: materialImportMode: 2 materialName: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Models/Primitive_Wedge.fbx b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/Primitive_Wedge.fbx similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Models/Primitive_Wedge.fbx rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/Primitive_Wedge.fbx diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Models/Primitive_Wedge.fbx.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/Primitive_Wedge.fbx.meta similarity index 93% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Models/Primitive_Wedge.fbx.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/Primitive_Wedge.fbx.meta index dfbe9327..ce4bc915 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Models/Primitive_Wedge.fbx.meta +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/Primitive_Wedge.fbx.meta @@ -3,7 +3,12 @@ guid: ab3a79eba4de4be0ad5fead9fb858190 ModelImporter: serializedVersion: 21300 internalIDToNameTable: [] - externalObjects: {} + externalObjects: + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: lambert1 + second: {fileID: 2100000, guid: 76618f7490c40334fa7b685859587d2e, type: 2} materials: materialImportMode: 2 materialName: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Models/Reticle_Torus.fbx b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/Reticle_Torus.fbx similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Models/Reticle_Torus.fbx rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/Reticle_Torus.fbx diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Models/Reticle_Torus.fbx.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/Reticle_Torus.fbx.meta similarity index 93% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Models/Reticle_Torus.fbx.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/Reticle_Torus.fbx.meta index a0f3bf0d..ab2019d1 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Models/Reticle_Torus.fbx.meta +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/Reticle_Torus.fbx.meta @@ -3,7 +3,12 @@ guid: be2911572dc3afa448d24b4e97edc5f1 ModelImporter: serializedVersion: 21300 internalIDToNameTable: [] - externalObjects: {} + externalObjects: + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: lambert1 + second: {fileID: 2100000, guid: 76618f7490c40334fa7b685859587d2e, type: 2} materials: materialImportMode: 2 materialName: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/UniversalController.fbx b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/UniversalController.fbx new file mode 100644 index 00000000..7e62e3ce --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/UniversalController.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:348e210fda42df410db93a66ee4c0602706ba3d3ea01df78e393171bb1567beb +size 317024 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/UniversalController.fbx.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/UniversalController.fbx.meta new file mode 100644 index 00000000..5b4bf1cb --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Models/UniversalController.fbx.meta @@ -0,0 +1,116 @@ +fileFormatVersion: 2 +guid: 147ae308eec018b40a7b312ae58f44c7 +ModelImporter: + serializedVersion: 21300 + internalIDToNameTable: [] + externalObjects: + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: aiAmbientOcclusion1 + second: {fileID: 2100000, guid: 99685157b02e4d446bbecb015645e5e8, type: 2} + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: wire_204204204 + second: {fileID: 2100000, guid: 9f12d299d16099343a3c5c0d7285822a, type: 2} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 1 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Affordances.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Affordances.meta similarity index 77% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Affordances.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Affordances.meta index 3d0f5210..6c3c8c2e 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Affordances.meta +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Affordances.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 655ddbf8e8ff96646b9be8351916aebc +guid: 9982c3209d4d7ff46accc30b5bfb40cc folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Affordances/HighlightInteractionAffordance.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Affordances/HighlightInteractionAffordance.prefab new file mode 100644 index 00000000..aad20e95 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Affordances/HighlightInteractionAffordance.prefab @@ -0,0 +1,278 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3774509235512974894 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5258331117553129771} + - component: {fileID: 8634317094661461186} + m_Layer: 0 + m_Name: HighlightInteractionAffordance + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5258331117553129771 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3774509235512974894} + 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: 1868228307608861978} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8634317094661461186 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3774509235512974894} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 49e0a5b5ff5540f5b14dd29d46faec22, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TransitionDuration: 0.125 + m_InteractableSource: {fileID: 0} + m_IgnoreHoverEvents: 0 + m_IgnoreHoverPriorityEvents: 1 + m_IgnoreFocusEvents: 0 + m_IgnoreSelectEvents: 0 + m_IgnoreActivateEvents: 0 + m_SelectClickAnimationMode: 1 + m_ActivateClickAnimationMode: 1 + m_ClickAnimationDuration: 0.1 + m_ClickAnimationCurve: + m_UseConstant: 1 + m_ConstantValue: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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_Variable: {fileID: 0} +--- !u!1 &4896237787779704601 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1868228307608861978} + - component: {fileID: 7396278978564332023} + - component: {fileID: 2489836559761890320} + - component: {fileID: 5298392244203567607} + m_Layer: 0 + m_Name: Material Affordance + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1868228307608861978 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4896237787779704601} + 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: 5258331117553129771} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &7396278978564332023 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4896237787779704601} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1410cbaaadf84a7aaa6459d37ad21b3a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Renderer: {fileID: 0} + m_MaterialIndex: 0 +--- !u!114 &2489836559761890320 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4896237787779704601} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f86d13fca2ec430d870c0f7765ad0dde, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AffordanceStateProvider: {fileID: 8634317094661461186} + m_ReplaceIdleStateValueWithInitialValue: 0 + m_AffordanceThemeDatum: + m_UseConstant: 0 + m_ConstantValue: + m_StateAnimationCurve: + m_UseConstant: 1 + m_ConstantValue: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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_Variable: {fileID: 0} + m_List: + - stateName: disabled + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: idle + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: hovered + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: hoveredPriority + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: selected + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: activated + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + - stateName: focused + animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} + animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} + m_ColorBlendMode: 0 + m_BlendAmount: 1 + m_Variable: {fileID: 11400000, guid: 8b0b5aede76faac438e02d2a468f4805, type: 2} + m_ValueUpdated: + m_PersistentCalls: + m_Calls: [] + m_MaterialPropertyBlockHelper: {fileID: 7396278978564332023} + m_ColorPropertyName: _RimColor +--- !u!114 &5298392244203567607 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4896237787779704601} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 629ea686265f47f082ba5732cffad1cf, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AffordanceStateProvider: {fileID: 8634317094661461186} + m_ReplaceIdleStateValueWithInitialValue: 0 + m_AffordanceThemeDatum: + m_UseConstant: 0 + m_ConstantValue: + m_StateAnimationCurve: + m_UseConstant: 1 + m_ConstantValue: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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_Variable: {fileID: 0} + m_List: + - stateName: disabled + animationStateStartValue: 0 + animationStateEndValue: 0 + - stateName: idle + animationStateStartValue: 0 + animationStateEndValue: 0 + - stateName: hovered + animationStateStartValue: 0 + animationStateEndValue: 0 + - stateName: hoveredPriority + animationStateStartValue: 0 + animationStateEndValue: 0 + - stateName: selected + animationStateStartValue: 0 + animationStateEndValue: 0 + - stateName: activated + animationStateStartValue: 0 + animationStateEndValue: 0 + - stateName: focused + animationStateStartValue: 0 + animationStateEndValue: 0 + m_Variable: {fileID: 11400000, guid: 795305341a8dbbd46ae54e9a01d6ea95, type: 2} + m_ValueUpdated: + m_PersistentCalls: + m_Calls: [] + m_MaterialPropertyBlockHelper: {fileID: 7396278978564332023} + m_FloatPropertyName: _RimPower diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Affordances/HighlightInteractionAffordance.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Affordances/HighlightInteractionAffordance.prefab.meta new file mode 100644 index 00000000..c8be6876 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Affordances/HighlightInteractionAffordance.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6b12f432fa58c224baf0d659706362be +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Affordances/Hand Ray Interactor Affordances.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Affordances/PokePointerAffordance.prefab similarity index 60% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Affordances/Hand Ray Interactor Affordances.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Affordances/PokePointerAffordance.prefab index f61b05f3..2ed0a85e 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Prefabs/Affordances/Hand Ray Interactor Affordances.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Affordances/PokePointerAffordance.prefab @@ -1,6 +1,6 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1 &1592230186234949353 +--- !u!1 &6992954569244019172 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8,41 +8,39 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1592230186234949352} - - component: {fileID: 1592230186234949356} - - component: {fileID: 1592230186234949357} - - component: {fileID: 1592230186234949358} - - component: {fileID: 4400848853422611441} - - component: {fileID: 1592230186234949359} + - component: {fileID: 4398500528759886884} + - component: {fileID: 6707959385038857591} + - component: {fileID: 863512645795027999} + - component: {fileID: 2554827892209798263} m_Layer: 0 - m_Name: Hand Ray Interactor Affordances + m_Name: Poke m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1592230186234949352 +--- !u!4 &4398500528759886884 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1592230186234949353} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_GameObject: {fileID: 6992954569244019172} + 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_Father: {fileID: 8849414207674852688} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1592230186234949356 +--- !u!114 &6707959385038857591 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1592230186234949353} + m_GameObject: {fileID: 6992954569244019172} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: c83f12c537584f51b92c01f10d7090c0, type: 3} @@ -86,33 +84,33 @@ MonoBehaviour: m_PostInfinity: 2 m_RotationOrder: 4 m_Variable: {fileID: 0} ---- !u!114 &1592230186234949357 +--- !u!114 &863512645795027999 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1592230186234949353} + m_GameObject: {fileID: 6992954569244019172} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 1410cbaaadf84a7aaa6459d37ad21b3a, type: 3} m_Name: m_EditorClassIdentifier: m_Renderer: {fileID: 0} - m_MaterialIndex: 1 ---- !u!114 &1592230186234949358 + m_MaterialIndex: 0 +--- !u!114 &2554827892209798263 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1592230186234949353} + m_GameObject: {fileID: 6992954569244019172} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f86d13fca2ec430d870c0f7765ad0dde, type: 3} m_Name: m_EditorClassIdentifier: - m_AffordanceStateProvider: {fileID: 1592230186234949356} + m_AffordanceStateProvider: {fileID: 6707959385038857591} m_ReplaceIdleStateValueWithInitialValue: 0 m_AffordanceThemeDatum: m_UseConstant: 0 @@ -168,25 +166,123 @@ MonoBehaviour: animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} m_ColorBlendMode: 0 m_BlendAmount: 1 - m_Variable: {fileID: 11400000, guid: ec1df508c6fb9eb45ae9f181ff6bbe82, type: 2} + m_Variable: {fileID: 11400000, guid: fc690d1505c48cb4696838b71abd2ca0, type: 2} m_ValueUpdated: m_PersistentCalls: m_Calls: [] - m_MaterialPropertyBlockHelper: {fileID: 1592230186234949357} - m_ColorPropertyName: _FingerColor_1 ---- !u!114 &4400848853422611441 + m_MaterialPropertyBlockHelper: {fileID: 863512645795027999} + m_ColorPropertyName: _BaseColor +--- !u!1 &7285531401416438276 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2253081074204762138} + - component: {fileID: 5964744442239762404} + - component: {fileID: 6212858538863823644} + - component: {fileID: 4048650986295294844} + m_Layer: 0 + m_Name: NearFar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2253081074204762138 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7285531401416438276} + 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: 8849414207674852688} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &5964744442239762404 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1592230186234949353} + m_GameObject: {fileID: 7285531401416438276} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c83f12c537584f51b92c01f10d7090c0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TransitionDuration: 0.125 + m_InteractorSource: {fileID: 0} + m_IgnoreHoverEvents: 0 + m_IgnoreSelectEvents: 0 + m_IgnoreActivateEvents: 1 + m_IgnoreUGUIHover: 0 + m_IgnoreUGUISelect: 0 + m_IgnoreXRInteractionEvents: 0 + m_SelectClickAnimationMode: 1 + m_ActivateClickAnimationMode: 1 + m_ClickAnimationDuration: 0.25 + m_ClickAnimationCurve: + m_UseConstant: 1 + m_ConstantValue: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + 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_Variable: {fileID: 0} +--- !u!114 &6212858538863823644 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7285531401416438276} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1410cbaaadf84a7aaa6459d37ad21b3a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Renderer: {fileID: 0} + m_MaterialIndex: 0 +--- !u!114 &4048650986295294844 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7285531401416438276} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f86d13fca2ec430d870c0f7765ad0dde, type: 3} m_Name: m_EditorClassIdentifier: - m_AffordanceStateProvider: {fileID: 1592230186234949356} + m_AffordanceStateProvider: {fileID: 5964744442239762404} m_ReplaceIdleStateValueWithInitialValue: 0 m_AffordanceThemeDatum: m_UseConstant: 0 @@ -242,83 +338,42 @@ MonoBehaviour: animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} m_ColorBlendMode: 0 m_BlendAmount: 1 - m_Variable: {fileID: 11400000, guid: ec1df508c6fb9eb45ae9f181ff6bbe82, type: 2} + m_Variable: {fileID: 11400000, guid: fc690d1505c48cb4696838b71abd2ca0, type: 2} m_ValueUpdated: m_PersistentCalls: m_Calls: [] - m_MaterialPropertyBlockHelper: {fileID: 1592230186234949357} - m_ColorPropertyName: _ThumbColor ---- !u!114 &1592230186234949359 -MonoBehaviour: + m_MaterialPropertyBlockHelper: {fileID: 6212858538863823644} + m_ColorPropertyName: _BaseColor +--- !u!1 &7734889806894075718 +GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1592230186234949353} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f86d13fca2ec430d870c0f7765ad0dde, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AffordanceStateProvider: {fileID: 1592230186234949356} - m_ReplaceIdleStateValueWithInitialValue: 0 - m_AffordanceThemeDatum: - m_UseConstant: 0 - m_ConstantValue: - m_StateAnimationCurve: - m_UseConstant: 1 - m_ConstantValue: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - 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_Variable: {fileID: 0} - m_List: - - stateName: disabled - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - - stateName: idle - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - - stateName: hovered - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - - stateName: hoveredPriority - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - - stateName: selected - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - - stateName: activated - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - - stateName: focused - animationStateStartValue: {r: 0, g: 0, b: 0, a: 0} - animationStateEndValue: {r: 0, g: 0, b: 0, a: 0} - m_ColorBlendMode: 0 - m_BlendAmount: 1 - m_Variable: {fileID: 11400000, guid: f94337e1a5a93c7438d8f8508b246e6d, type: 2} - m_ValueUpdated: - m_PersistentCalls: - m_Calls: [] - m_MaterialPropertyBlockHelper: {fileID: 1592230186234949357} - m_ColorPropertyName: _EdgeColor + serializedVersion: 6 + m_Component: + - component: {fileID: 8849414207674852688} + m_Layer: 0 + m_Name: PokePointerAffordance + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8849414207674852688 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7734889806894075718} + 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: 4398500528759886884} + - {fileID: 2253081074204762138} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Affordances/PokePointerAffordance.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Affordances/PokePointerAffordance.prefab.meta new file mode 100644 index 00000000..c3c47a47 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Affordances/PokePointerAffordance.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bb91fcbcb3cc896468b372b1c762bfab +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Controllers.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Controllers.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Controllers.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Controllers.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Controllers/XR Controller Left.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Controllers/XR Controller Left.prefab similarity index 63% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Controllers/XR Controller Left.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Controllers/XR Controller Left.prefab index e0a8077f..05e658a2 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Controllers/XR Controller Left.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Controllers/XR Controller Left.prefab @@ -1,6 +1,6 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1 &1591450736581743243 +--- !u!1 &838925125806505752 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8,449 +8,34 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 7719217461193035141} - - component: {fileID: 3948495021522208145} - - component: {fileID: 6581167756232844618} + - component: {fileID: 5578866909471720403} m_Layer: 0 - m_Name: TouchPad + m_Name: XRController_Thumbstick_Buttons m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &7719217461193035141 +--- !u!4 &5578866909471720403 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1591450736581743243} - m_LocalRotation: {x: 0.000000021855694, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: -0.0000135928385, z: -0.0049661375} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 8270855663187062767} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &3948495021522208145 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1591450736581743243} - m_Mesh: {fileID: -1120971793077124694, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} ---- !u!23 &6581167756232844618 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1591450736581743243} - 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: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} - 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!1 &2833903026367321022 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5488926764375732961} - - component: {fileID: 5546920259920998435} - - component: {fileID: 3591102075257121437} - m_Layer: 0 - m_Name: Button_B - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5488926764375732961 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2833903026367321022} - m_LocalRotation: {x: 0.000000059604645, y: -0.000000030733645, z: -0.000000028871002, w: 1} - m_LocalPosition: {x: -0.007821825, y: 0.0009400594, z: 0.006571072} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 8173916776436821938} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &5546920259920998435 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2833903026367321022} - m_Mesh: {fileID: 8449303727733987256, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} ---- !u!23 &3591102075257121437 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2833903026367321022} - 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: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} - 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!1 &2920996176376820429 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5551125943416818270} - - component: {fileID: 1311942897710075639} - - component: {fileID: 804292978268976271} - m_Layer: 0 - m_Name: ThumbStick - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5551125943416818270 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2920996176376820429} - m_LocalRotation: {x: 0.000000059604645, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.008775876, y: -0.002558912, z: -0.0074315914} - m_LocalScale: {x: 1.342947, y: 1.342947, z: 1.342947} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 8173916776436821938} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &1311942897710075639 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2920996176376820429} - m_Mesh: {fileID: -2564423107879867638, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} ---- !u!23 &804292978268976271 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2920996176376820429} - 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: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} - 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!1 &3355591549739262786 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7656785331879846650} - - component: {fileID: 3629011562858007340} - - component: {fileID: 8505742608970525457} - m_Layer: 0 - m_Name: Trigger - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7656785331879846650 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3355591549739262786} - m_LocalRotation: {x: 0.000000021855694, y: 3.2567517e-16, z: 0.000000014901159, w: 1} - m_LocalPosition: {x: 0, y: -0.013359987, z: -0.018506905} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 8270855663187062767} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &3629011562858007340 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3355591549739262786} - m_Mesh: {fileID: -8653722315008560443, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} ---- !u!23 &8505742608970525457 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3355591549739262786} - 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: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} - 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!1 &4045590804765120743 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4409659463910318501} - - component: {fileID: 6190287511479189489} - - component: {fileID: 2953040850335233957} - m_Layer: 0 - m_Name: ThumbStick_Base - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4409659463910318501 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4045590804765120743} - m_LocalRotation: {x: 0.000000059604645, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.008775877, y: 0.00152745, z: -0.0074315914} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 8173916776436821938} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &6190287511479189489 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4045590804765120743} - m_Mesh: {fileID: -2014588322676101042, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} ---- !u!23 &2953040850335233957 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4045590804765120743} - 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: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} - 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!1 &5350001822289929954 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8173916776436821938} - m_Layer: 0 - m_Name: XRController_LT_Thumbstick_Buttons - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8173916776436821938 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5350001822289929954} - m_LocalRotation: {x: 0.000000021855694, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_GameObject: {fileID: 838925125806505752} + m_LocalRotation: {x: 0.00000008146034, 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: 7951258207224713824} - - {fileID: 5488926764375732961} - - {fileID: 5551125943416818270} - - {fileID: 4409659463910318501} - m_Father: {fileID: 8270855663187062767} + - {fileID: 1407258461600868627} + - {fileID: 1476312919962420616} + - {fileID: 4772667435036090619} + - {fileID: 9090878679503450943} + m_Father: {fileID: 3831596280851641935} m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &6048850322503762846 +--- !u!1 &1448679902374812222 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -458,9 +43,9 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 8937122768819410266} - - component: {fileID: 6989809552187391942} - - component: {fileID: 2850486098467457892} + - component: {fileID: 4317934089355988218} + - component: {fileID: 2804512364258829926} + - component: {fileID: 6946131598073123524} m_Layer: 0 m_Name: Button_Home m_TagString: Untagged @@ -468,36 +53,36 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &8937122768819410266 +--- !u!4 &4317934089355988218 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6048850322503762846} - m_LocalRotation: {x: 0.18379451, y: -0.0000000859335, z: 0.000000016067826, w: 0.9829647} - m_LocalPosition: {x: 0, y: -0.0032368493, z: 0.024549427} + m_GameObject: {fileID: 1448679902374812222} + m_LocalRotation: {x: 0.18379451, y: -0.00000008593347, z: 0.000000016067828, w: 0.9829647} + m_LocalPosition: {x: 0.0000000071757764, y: -0.0032368493, z: 0.024549427} m_LocalScale: {x: 1.01935, y: 1.01935, z: 1.01935} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 8270855663187062767} + m_Father: {fileID: 3831596280851641935} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &6989809552187391942 +--- !u!33 &2804512364258829926 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6048850322503762846} - m_Mesh: {fileID: -8429650256770907399, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} ---- !u!23 &2850486098467457892 + m_GameObject: {fileID: 1448679902374812222} + m_Mesh: {fileID: -8429650256770907399, guid: 147ae308eec018b40a7b312ae58f44c7, type: 3} +--- !u!23 &6946131598073123524 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6048850322503762846} + m_GameObject: {fileID: 1448679902374812222} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 @@ -511,7 +96,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 99685157b02e4d446bbecb015645e5e8, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -533,7 +118,7 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} ---- !u!1 &6877554675875058235 +--- !u!1 &1698198350110287309 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -541,9 +126,9 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 7951258207224713824} - - component: {fileID: 2046265684884497959} - - component: {fileID: 2101229328401842903} + - component: {fileID: 1407258461600868627} + - component: {fileID: 3825292597872868106} + - component: {fileID: 8302382506611171500} m_Layer: 0 m_Name: Button_A m_TagString: Untagged @@ -551,36 +136,36 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &7951258207224713824 +--- !u!4 &1407258461600868627 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6877554675875058235} - m_LocalRotation: {x: 0.000000059604645, y: -0.000000030733645, z: -0.000000028871002, w: 1} - m_LocalPosition: {x: -0.011533444, y: 0.0009400594, z: -0.007045295} + m_GameObject: {fileID: 1698198350110287309} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.007800013, y: 0.0013757758, z: 0.0055} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 8173916776436821938} + m_Father: {fileID: 5578866909471720403} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &2046265684884497959 +--- !u!33 &3825292597872868106 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6877554675875058235} - m_Mesh: {fileID: 5083779560280695074, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} ---- !u!23 &2101229328401842903 + m_GameObject: {fileID: 1698198350110287309} + m_Mesh: {fileID: 5083779560280695074, guid: 147ae308eec018b40a7b312ae58f44c7, type: 3} +--- !u!23 &8302382506611171500 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6877554675875058235} + m_GameObject: {fileID: 1698198350110287309} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 @@ -594,7 +179,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 99685157b02e4d446bbecb015645e5e8, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -616,7 +201,7 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} ---- !u!1 &8103503810883324120 +--- !u!1 &3658530253221974222 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -624,92 +209,9 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 5729059251352797873} - - component: {fileID: 7013576290909491880} - - component: {fileID: 2937204069651033959} - m_Layer: 0 - m_Name: Controller_Base - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5729059251352797873 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8103503810883324120} - m_LocalRotation: {x: 0.000000021855694, 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: 8270855663187062767} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &7013576290909491880 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8103503810883324120} - m_Mesh: {fileID: 22788929071467060, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} ---- !u!23 &2937204069651033959 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8103503810883324120} - 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: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} - 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!1 &8443930452699679086 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8402887055810999798} - - component: {fileID: 7720275433028147840} - - component: {fileID: 5436389215136348666} + - component: {fileID: 3708264189882788950} + - component: {fileID: 3226976990141940512} + - component: {fileID: 908184320783622234} m_Layer: 0 m_Name: Bumper m_TagString: Untagged @@ -717,36 +219,36 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &8402887055810999798 +--- !u!4 &3708264189882788950 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8443930452699679086} - m_LocalRotation: {x: 0.000000021668717, y: -0.1305262, z: 0.0000000028527405, w: 0.9914449} + m_GameObject: {fileID: 3658530253221974222} + m_LocalRotation: {x: 0.00000013985816, y: -0.1305262, z: 0.000000018412676, w: 0.9914449} m_LocalPosition: {x: -0.012636564, y: -0.028556997, z: 0.027326612} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 8270855663187062767} + m_Father: {fileID: 3831596280851641935} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &7720275433028147840 +--- !u!33 &3226976990141940512 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8443930452699679086} - m_Mesh: {fileID: -4189514412694937182, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} ---- !u!23 &5436389215136348666 + m_GameObject: {fileID: 3658530253221974222} + m_Mesh: {fileID: -4189514412694937182, guid: 147ae308eec018b40a7b312ae58f44c7, type: 3} +--- !u!23 &908184320783622234 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8443930452699679086} + m_GameObject: {fileID: 3658530253221974222} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 @@ -760,7 +262,542 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: be3083a5f26d4e859d594ecbe632f87e, type: 3} + - {fileID: 2100000, guid: 99685157b02e4d446bbecb015645e5e8, 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!1 &4007647503543292280 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 606542200399518481} + - component: {fileID: 2791758539991239432} + - component: {fileID: 8009757945635403463} + m_Layer: 0 + m_Name: Controller_Base + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &606542200399518481 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4007647503543292280} + 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: [] + m_Father: {fileID: 3831596280851641935} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2791758539991239432 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4007647503543292280} + m_Mesh: {fileID: 22788929071467060, guid: 147ae308eec018b40a7b312ae58f44c7, type: 3} +--- !u!23 &8009757945635403463 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4007647503543292280} + 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: 9f12d299d16099343a3c5c0d7285822a, 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!1 &4173161556249022688 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9090878679503450943} + - component: {fileID: 7940978787584295671} + - component: {fileID: 5658544185046500831} + m_Layer: 0 + m_Name: ThumbStick_Base + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &9090878679503450943 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4173161556249022688} + m_LocalRotation: {x: 0.000000059604645, y: 0, z: -0, w: 1} + m_LocalPosition: {x: 0.008775877, y: 0.00152745, z: -0.0074315914} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5578866909471720403} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &7940978787584295671 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4173161556249022688} + m_Mesh: {fileID: -2014588322676101042, guid: 147ae308eec018b40a7b312ae58f44c7, type: 3} +--- !u!23 &5658544185046500831 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4173161556249022688} + 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: 99685157b02e4d446bbecb015645e5e8, 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!1 &4496633296992529653 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3831596280851641935} + m_Layer: 0 + m_Name: UniversalController + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3831596280851641935 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4496633296992529653} + 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: 3708264189882788950} + - {fileID: 4317934089355988218} + - {fileID: 606542200399518481} + - {fileID: 3227744485374104613} + - {fileID: 3290220732042902362} + - {fileID: 5578866909471720403} + m_Father: {fileID: 8270855663187062767} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &5479181676923438292 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4772667435036090619} + - component: {fileID: 8252842386947597077} + - component: {fileID: 430567819290339060} + m_Layer: 0 + m_Name: ThumbStick + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4772667435036090619 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5479181676923438292} + m_LocalRotation: {x: 0.000000059604645, y: 0, z: -0, w: 1} + m_LocalPosition: {x: 0.008775876, y: -0.002558912, z: -0.0074315914} + m_LocalScale: {x: 1.342947, y: 1.342947, z: 1.342947} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5578866909471720403} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &8252842386947597077 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5479181676923438292} + m_Mesh: {fileID: -2564423107879867638, guid: 147ae308eec018b40a7b312ae58f44c7, type: 3} +--- !u!23 &430567819290339060 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5479181676923438292} + 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: 99685157b02e4d446bbecb015645e5e8, 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!1 &5908322354616421163 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3227744485374104613} + - component: {fileID: 8151713988064746545} + - component: {fileID: 2071210351488613610} + m_Layer: 0 + m_Name: TouchPad + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3227744485374104613 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5908322354616421163} + m_LocalRotation: {x: 0.00000008146034, y: 0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: -0.0020741627, z: -0.0052528577} + m_LocalScale: {x: 0.982392, y: 1.55, z: 0.982392} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3831596280851641935} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &8151713988064746545 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5908322354616421163} + m_Mesh: {fileID: -1120971793077124694, guid: 147ae308eec018b40a7b312ae58f44c7, type: 3} +--- !u!23 &2071210351488613610 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5908322354616421163} + 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: 99685157b02e4d446bbecb015645e5e8, 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!1 &6593186904332347165 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1476312919962420616} + - component: {fileID: 3046491538343432697} + - component: {fileID: 5573814406739661245} + m_Layer: 0 + m_Name: Button_B + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1476312919962420616 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6593186904332347165} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.012, y: 0.0013757758, z: -0.009} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5578866909471720403} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &3046491538343432697 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6593186904332347165} + m_Mesh: {fileID: 8449303727733987256, guid: 147ae308eec018b40a7b312ae58f44c7, type: 3} +--- !u!23 &5573814406739661245 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6593186904332347165} + 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: 99685157b02e4d446bbecb015645e5e8, 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!1 &7600421817103596258 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3290220732042902362} + - component: {fileID: 8482456410926060172} + - component: {fileID: 3594184993934668465} + m_Layer: 0 + m_Name: Trigger + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3290220732042902362 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7600421817103596258} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -6.952414e-10, y: -0.012954317, z: -0.020195028} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3831596280851641935} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &8482456410926060172 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7600421817103596258} + m_Mesh: {fileID: -8653722315008560443, guid: 147ae308eec018b40a7b312ae58f44c7, type: 3} +--- !u!23 &3594184993934668465 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7600421817103596258} + 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: 99685157b02e4d446bbecb015645e5e8, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -791,6 +828,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 8270855663187062767} + - component: {fileID: 3718224901187835141} m_Layer: 0 m_Name: XR Controller Left m_TagString: Untagged @@ -810,12 +848,67 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 8402887055810999798} - - {fileID: 8937122768819410266} - - {fileID: 5729059251352797873} - - {fileID: 7719217461193035141} - - {fileID: 7656785331879846650} - - {fileID: 8173916776436821938} + - {fileID: 3831596280851641935} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &3718224901187835141 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8758423527188247893} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4a5f76f9ea8c80547973ab01877f9567, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ThumbstickTransform: {fileID: 4772667435036090619} + m_StickRotationRange: {x: 30, y: -30} + m_StickInput: + m_InputSourceMode: 2 + m_InputAction: + m_Name: Thumbstick + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: 2f424cdc-fe47-4989-a9c2-6fa97f609e70 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReference: {fileID: -60998027439631388, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_ObjectReferenceObject: {fileID: 0} + m_ManualValue: {x: 0, y: 0} + m_TriggerTransform: {fileID: 3290220732042902362} + m_TriggerXAxisRotationRange: {x: 0, y: -15} + m_TriggerInput: + m_InputSourceMode: 2 + m_InputAction: + m_Name: Trigger + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: adbe6783-3cbb-48f7-8ad5-0b09a32b9943 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReference: {fileID: -4289430672226363583, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_ObjectReferenceObject: {fileID: 0} + m_ManualValue: 0 + m_GripTransform: {fileID: 3708264189882788950} + m_GripRightRange: {x: -0.0125, y: -0.011} + m_GripInput: + m_InputSourceMode: 2 + m_InputAction: + m_Name: Grip + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: 7ddc77c6-8f81-4889-aaca-964286dbe1ea + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReference: {fileID: 6558622148059887818, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_ObjectReferenceObject: {fileID: 0} + m_ManualValue: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Controllers/XR Controller Left.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Controllers/XR Controller Left.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Controllers/XR Controller Left.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Controllers/XR Controller Left.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Controllers/XR Controller Right.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Controllers/XR Controller Right.prefab similarity index 62% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Controllers/XR Controller Right.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Controllers/XR Controller Right.prefab index a9d8ba61..f30d68d0 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Controllers/XR Controller Right.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Controllers/XR Controller Right.prefab @@ -1,6 +1,6 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1 &631318195828040478 +--- !u!1 &383438424965467249 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8,34 +8,34 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 3716161019320855118} + - component: {fileID: 4871301772669071546} m_Layer: 0 - m_Name: XRController_LT_Thumbstick_Buttons + m_Name: XRController_Thumbstick_Buttons m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &3716161019320855118 +--- !u!4 &4871301772669071546 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 631318195828040478} - m_LocalRotation: {x: 0.000000021855694, y: 0, z: -0, w: 1} + m_GameObject: {fileID: 383438424965467249} + m_LocalRotation: {x: 0.00000008146034, 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: 3217094005667092380} - - {fileID: 1067765487391569693} - - {fileID: 1149664065565101986} - - {fileID: 9209759161381479513} - m_Father: {fileID: 3475118261464492563} + - {fileID: 2121719750533061242} + - {fileID: 1912516935883159265} + - {fileID: 5534257073571976082} + - {fileID: 8133223008797737046} + m_Father: {fileID: 4312999587465610534} m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1228417906145134178 +--- !u!1 &1830568820149819044 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -43,92 +43,9 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 4538198013890515110} - - component: {fileID: 2593272954759969338} - - component: {fileID: 7310209448969834136} - m_Layer: 0 - m_Name: Button_Home - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4538198013890515110 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1228417906145134178} - m_LocalRotation: {x: 0.17364818, y: -0.00000008609464, z: 0.000000015180808, w: 0.9848078} - m_LocalPosition: {x: -0.0000000071777, y: -0.0032408535, z: 0.024560427} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 3475118261464492563} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &2593272954759969338 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1228417906145134178} - m_Mesh: {fileID: -8429650256770907399, guid: 11cd62256b1d470f922b2c8e6446cc77, type: 3} ---- !u!23 &7310209448969834136 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1228417906145134178} - 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: 670224309865224971, guid: 11cd62256b1d470f922b2c8e6446cc77, type: 3} - 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!1 &2129104537058187207 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3217094005667092380} - - component: {fileID: 6816243177344082907} - - component: {fileID: 6905410428598011691} + - component: {fileID: 2121719750533061242} + - component: {fileID: 4314555765524351075} + - component: {fileID: 9061724193437782981} m_Layer: 0 m_Name: Button_A m_TagString: Untagged @@ -136,36 +53,36 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &3217094005667092380 +--- !u!4 &2121719750533061242 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2129104537058187207} + m_GameObject: {fileID: 1830568820149819044} m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.011533444, y: 0.0009400594, z: -0.007045295} + m_LocalPosition: {x: -0.007800013, y: 0.0013757758, z: 0.0055} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 3716161019320855118} + m_Father: {fileID: 4871301772669071546} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &6816243177344082907 +--- !u!33 &4314555765524351075 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2129104537058187207} - m_Mesh: {fileID: 5083779560280695074, guid: 11cd62256b1d470f922b2c8e6446cc77, type: 3} ---- !u!23 &6905410428598011691 + m_GameObject: {fileID: 1830568820149819044} + m_Mesh: {fileID: 5083779560280695074, guid: 147ae308eec018b40a7b312ae58f44c7, type: 3} +--- !u!23 &9061724193437782981 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2129104537058187207} + m_GameObject: {fileID: 1830568820149819044} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 @@ -179,7 +96,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: 11cd62256b1d470f922b2c8e6446cc77, type: 3} + - {fileID: 2100000, guid: 99685157b02e4d446bbecb015645e5e8, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -201,7 +118,7 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} ---- !u!1 &3641317572183526692 +--- !u!1 &1940194302770129239 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -209,9 +126,212 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 971748149831272269} - - component: {fileID: 2569541872588003156} - - component: {fileID: 7655812912622807707} + - component: {fileID: 3826415840535314323} + - component: {fileID: 2890725886003467535} + - component: {fileID: 7967948701137510829} + m_Layer: 0 + m_Name: Button_Home + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3826415840535314323 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1940194302770129239} + m_LocalRotation: {x: 0.18379451, y: -0.00000008593347, z: 0.000000016067828, w: 0.9829647} + m_LocalPosition: {x: 0.0000000071757764, y: -0.0032368493, z: 0.024549427} + m_LocalScale: {x: 1.01935, y: 1.01935, z: 1.01935} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4312999587465610534} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2890725886003467535 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1940194302770129239} + m_Mesh: {fileID: -8429650256770907399, guid: 147ae308eec018b40a7b312ae58f44c7, type: 3} +--- !u!23 &7967948701137510829 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1940194302770129239} + 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: 99685157b02e4d446bbecb015645e5e8, 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!1 &3499590388232691612 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4312999587465610534} + m_Layer: 0 + m_Name: UniversalController + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4312999587465610534 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3499590388232691612} + 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: 4431590825886359359} + - {fileID: 3826415840535314323} + - {fileID: 476418562824415352} + - {fileID: 2467139442371389260} + - {fileID: 2548892874240362547} + - {fileID: 4871301772669071546} + m_Father: {fileID: 3475118261464492563} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &3971126562083824521 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8133223008797737046} + - component: {fileID: 6972219698470072734} + - component: {fileID: 4643603977460086454} + m_Layer: 0 + m_Name: ThumbStick_Base + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8133223008797737046 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3971126562083824521} + m_LocalRotation: {x: 0.000000059604645, y: 0, z: -0, w: 1} + m_LocalPosition: {x: 0.008775877, y: 0.00152745, z: -0.0074315914} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4871301772669071546} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6972219698470072734 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3971126562083824521} + m_Mesh: {fileID: -2014588322676101042, guid: 147ae308eec018b40a7b312ae58f44c7, type: 3} +--- !u!23 &4643603977460086454 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3971126562083824521} + 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: 99685157b02e4d446bbecb015645e5e8, 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!1 &4136640823569162769 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 476418562824415352} + - component: {fileID: 2902600039765555297} + - component: {fileID: 7052120983454352814} m_Layer: 0 m_Name: Controller_Base m_TagString: Untagged @@ -219,36 +339,36 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &971748149831272269 +--- !u!4 &476418562824415352 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3641317572183526692} - m_LocalRotation: {x: 0.000000021855694, y: 0, z: -0, w: 1} + m_GameObject: {fileID: 4136640823569162769} + 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: [] - m_Father: {fileID: 3475118261464492563} + m_Father: {fileID: 4312999587465610534} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &2569541872588003156 +--- !u!33 &2902600039765555297 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3641317572183526692} - m_Mesh: {fileID: 22788929071467060, guid: 11cd62256b1d470f922b2c8e6446cc77, type: 3} ---- !u!23 &7655812912622807707 + m_GameObject: {fileID: 4136640823569162769} + m_Mesh: {fileID: 22788929071467060, guid: 147ae308eec018b40a7b312ae58f44c7, type: 3} +--- !u!23 &7052120983454352814 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3641317572183526692} + m_GameObject: {fileID: 4136640823569162769} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 @@ -262,90 +382,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: 11cd62256b1d470f922b2c8e6446cc77, type: 3} - 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!1 &4022625689426332818 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3918395025868533770} - - component: {fileID: 3016865672996839292} - - component: {fileID: 687940176838523910} - m_Layer: 0 - m_Name: Bumper - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3918395025868533770 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4022625689426332818} - m_LocalRotation: {x: -0.70441604, y: 0.061628427, z: 0.061628427, w: 0.7044161} - m_LocalPosition: {x: 0.012636564, y: -0.028556997, z: 0.027326612} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 3475118261464492563} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &3016865672996839292 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4022625689426332818} - m_Mesh: {fileID: -4189514412694937182, guid: 11cd62256b1d470f922b2c8e6446cc77, type: 3} ---- !u!23 &687940176838523910 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4022625689426332818} - 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: 670224309865224971, guid: 11cd62256b1d470f922b2c8e6446cc77, type: 3} + - {fileID: 2100000, guid: 9f12d299d16099343a3c5c0d7285822a, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -376,6 +413,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 3475118261464492563} + - component: {fileID: 2983433689305697426} m_Layer: 0 m_Name: XR Controller Right m_TagString: Untagged @@ -392,19 +430,74 @@ Transform: m_GameObject: {fileID: 4283425761326543017} m_LocalRotation: {x: 0, y: 1, z: 0, w: 0} m_LocalPosition: {x: 0, y: 0, z: -0.05} - m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalScale: {x: -1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 3918395025868533770} - - {fileID: 4538198013890515110} - - {fileID: 971748149831272269} - - {fileID: 3016789030709610617} - - {fileID: 2936275983042619142} - - {fileID: 3716161019320855118} + - {fileID: 4312999587465610534} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &6118169511635425143 +--- !u!114 &2983433689305697426 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4283425761326543017} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4a5f76f9ea8c80547973ab01877f9567, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ThumbstickTransform: {fileID: 5534257073571976082} + m_StickRotationRange: {x: 30, y: 30} + m_StickInput: + m_InputSourceMode: 2 + m_InputAction: + m_Name: Thumbstick + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: 8a80d2d1-54ab-40f3-ae58-acd679e9f63f + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReference: {fileID: -8666952849799569744, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_ObjectReferenceObject: {fileID: 0} + m_ManualValue: {x: 0, y: 0} + m_TriggerTransform: {fileID: 2548892874240362547} + m_TriggerXAxisRotationRange: {x: 0, y: -15} + m_TriggerInput: + m_InputSourceMode: 2 + m_InputAction: + m_Name: Trigger + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: 594965ae-7ab6-4c16-889f-f371fa785459 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReference: {fileID: 7904272356298805229, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_ObjectReferenceObject: {fileID: 0} + m_ManualValue: 0 + m_GripTransform: {fileID: 4431590825886359359} + m_GripRightRange: {x: -0.0125, y: -0.011} + m_GripInput: + m_InputSourceMode: 2 + m_InputAction: + m_Name: Grip + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: 615b1144-610d-48ff-a7ed-4f4447f2ed86 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReference: {fileID: -1758520528963094988, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_ObjectReferenceObject: {fileID: 0} + m_ManualValue: 0 +--- !u!1 &4338091395681428391 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -412,46 +505,46 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 3016789030709610617} - - component: {fileID: 8373948243224051821} - - component: {fileID: 1848978295326630070} + - component: {fileID: 4431590825886359359} + - component: {fileID: 2467634753240625225} + - component: {fileID: 174741061115499315} m_Layer: 0 - m_Name: TouchPad + m_Name: Bumper m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &3016789030709610617 +--- !u!4 &4431590825886359359 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6118169511635425143} - m_LocalRotation: {x: 0.000000021855694, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 2.2105108e-10, y: -0.0000135928385, z: -0.0049661375} + m_GameObject: {fileID: 4338091395681428391} + m_LocalRotation: {x: 0.00000013985816, y: -0.1305262, z: 0.000000018412676, w: 0.9914449} + m_LocalPosition: {x: -0.0125, y: -0.028556997, z: 0.027326612} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 3475118261464492563} - m_RootOrder: 3 + m_Father: {fileID: 4312999587465610534} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &8373948243224051821 +--- !u!33 &2467634753240625225 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6118169511635425143} - m_Mesh: {fileID: -1120971793077124694, guid: 11cd62256b1d470f922b2c8e6446cc77, type: 3} ---- !u!23 &1848978295326630070 + m_GameObject: {fileID: 4338091395681428391} + m_Mesh: {fileID: -4189514412694937182, guid: 147ae308eec018b40a7b312ae58f44c7, type: 3} +--- !u!23 &174741061115499315 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6118169511635425143} + m_GameObject: {fileID: 4338091395681428391} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 @@ -465,7 +558,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: 11cd62256b1d470f922b2c8e6446cc77, type: 3} + - {fileID: 2100000, guid: 99685157b02e4d446bbecb015645e5e8, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -487,7 +580,7 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} ---- !u!1 &7325642504921798210 +--- !u!1 &4827784543866730429 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -495,92 +588,9 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1067765487391569693} - - component: {fileID: 1010913343161546207} - - component: {fileID: 8298949448185474913} - m_Layer: 0 - m_Name: Button_B - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1067765487391569693 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7325642504921798210} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.007821825, y: 0.0009400594, z: 0.006571072} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 3716161019320855118} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &1010913343161546207 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7325642504921798210} - m_Mesh: {fileID: 8449303727733987256, guid: 11cd62256b1d470f922b2c8e6446cc77, type: 3} ---- !u!23 &8298949448185474913 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7325642504921798210} - 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: 670224309865224971, guid: 11cd62256b1d470f922b2c8e6446cc77, type: 3} - 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!1 &7670919110547240753 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1149664065565101986} - - component: {fileID: 5821210241915783947} - - component: {fileID: 5320034229441704307} + - component: {fileID: 5534257073571976082} + - component: {fileID: 8967149194210545788} + - component: {fileID: 797108429923947933} m_Layer: 0 m_Name: ThumbStick m_TagString: Untagged @@ -588,36 +598,36 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1149664065565101986 +--- !u!4 &5534257073571976082 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7670919110547240753} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.008775876, y: -0.002558912, z: -0.0074315914} - m_LocalScale: {x: 1, y: 1, z: 1} + m_GameObject: {fileID: 4827784543866730429} + m_LocalRotation: {x: 0.000000059604645, y: 0, z: -0, w: 1} + m_LocalPosition: {x: 0.008775876, y: -0.002558912, z: -0.0074315914} + m_LocalScale: {x: 1.342947, y: 1.342947, z: 1.342947} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 3716161019320855118} + m_Father: {fileID: 4871301772669071546} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &5821210241915783947 +--- !u!33 &8967149194210545788 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7670919110547240753} - m_Mesh: {fileID: -2564423107879867638, guid: 11cd62256b1d470f922b2c8e6446cc77, type: 3} ---- !u!23 &5320034229441704307 + m_GameObject: {fileID: 4827784543866730429} + m_Mesh: {fileID: -2564423107879867638, guid: 147ae308eec018b40a7b312ae58f44c7, type: 3} +--- !u!23 &797108429923947933 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7670919110547240753} + m_GameObject: {fileID: 4827784543866730429} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 @@ -631,7 +641,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: 11cd62256b1d470f922b2c8e6446cc77, type: 3} + - {fileID: 2100000, guid: 99685157b02e4d446bbecb015645e5e8, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -653,7 +663,7 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} ---- !u!1 &7812784923275191998 +--- !u!1 &6163737171295032436 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -661,9 +671,175 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 2936275983042619142} - - component: {fileID: 8115825213372190416} - - component: {fileID: 3816683123715682029} + - component: {fileID: 1912516935883159265} + - component: {fileID: 2643900140894839440} + - component: {fileID: 4876378503311385300} + m_Layer: 0 + m_Name: Button_B + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1912516935883159265 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6163737171295032436} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.012, y: 0.0013757758, z: -0.009} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4871301772669071546} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2643900140894839440 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6163737171295032436} + m_Mesh: {fileID: 8449303727733987256, guid: 147ae308eec018b40a7b312ae58f44c7, type: 3} +--- !u!23 &4876378503311385300 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6163737171295032436} + 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: 99685157b02e4d446bbecb015645e5e8, 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!1 &6847961977512048706 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2467139442371389260} + - component: {fileID: 9211829831748775768} + - component: {fileID: 1317338165740228483} + m_Layer: 0 + m_Name: TouchPad + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2467139442371389260 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6847961977512048706} + m_LocalRotation: {x: 0.00000008146034, y: 0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: -0.0020741627, z: -0.0052528577} + m_LocalScale: {x: 0.982392, y: 1.55, z: 0.982392} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4312999587465610534} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &9211829831748775768 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6847961977512048706} + m_Mesh: {fileID: -1120971793077124694, guid: 147ae308eec018b40a7b312ae58f44c7, type: 3} +--- !u!23 &1317338165740228483 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6847961977512048706} + 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: 99685157b02e4d446bbecb015645e5e8, 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!1 &7461432819638815115 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2548892874240362547} + - component: {fileID: 8881652531632955877} + - component: {fileID: 4546197970950160856} m_Layer: 0 m_Name: Trigger m_TagString: Untagged @@ -671,36 +847,36 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &2936275983042619142 +--- !u!4 &2548892874240362547 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7812784923275191998} - m_LocalRotation: {x: 0.000000021855694, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -5.559989e-10, y: -0.013359987, z: -0.018506905} + m_GameObject: {fileID: 7461432819638815115} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.012954317, z: -0.02} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 3475118261464492563} + m_Father: {fileID: 4312999587465610534} m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &8115825213372190416 +--- !u!33 &8881652531632955877 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7812784923275191998} - m_Mesh: {fileID: -8653722315008560443, guid: 11cd62256b1d470f922b2c8e6446cc77, type: 3} ---- !u!23 &3816683123715682029 + m_GameObject: {fileID: 7461432819638815115} + m_Mesh: {fileID: -8653722315008560443, guid: 147ae308eec018b40a7b312ae58f44c7, type: 3} +--- !u!23 &4546197970950160856 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7812784923275191998} + m_GameObject: {fileID: 7461432819638815115} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 @@ -714,90 +890,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 670224309865224971, guid: 11cd62256b1d470f922b2c8e6446cc77, type: 3} - 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!1 &8852161128374344987 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 9209759161381479513} - - component: {fileID: 1663432946110593549} - - component: {fileID: 7639984874612879961} - m_Layer: 0 - m_Name: ThumbStick_Base - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &9209759161381479513 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8852161128374344987} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.008775877, y: 0.00152745, z: -0.0074315914} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 3716161019320855118} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &1663432946110593549 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8852161128374344987} - m_Mesh: {fileID: -2014588322676101042, guid: 11cd62256b1d470f922b2c8e6446cc77, type: 3} ---- !u!23 &7639984874612879961 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8852161128374344987} - 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: 670224309865224971, guid: 11cd62256b1d470f922b2c8e6446cc77, type: 3} + - {fileID: 2100000, guid: 99685157b02e4d446bbecb015645e5e8, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Controllers/XR Controller Right.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Controllers/XR Controller Right.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Controllers/XR Controller Right.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Controllers/XR Controller Right.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Interactors.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Interactors.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Direct Interactor.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Direct Interactor.prefab new file mode 100644 index 00000000..83c5c4e6 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Direct Interactor.prefab @@ -0,0 +1,229 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8841706926471734270 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6189354538098044173} + - component: {fileID: 664489801923019586} + - component: {fileID: 6059725000919627127} + - component: {fileID: 4350281875766305713} + m_Layer: 0 + m_Name: Direct Interactor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6189354538098044173 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8841706926471734270} + 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: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &664489801923019586 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8841706926471734270} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4253f32900bcc4d499d675566142ded0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 0} + m_InteractionLayers: + m_Bits: 1 + m_Handedness: 0 + m_AttachTransform: {fileID: 0} + 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_SelectInput: + m_InputSourceMode: 2 + m_InputActionPerformed: + m_Name: Select + m_Type: 1 + m_ExpectedControlType: + m_Id: c915d8ba-cdda-48ee-9269-e3993d7c736b + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionValue: + m_Name: Select Value + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: 08e85da7-e479-4e36-a3f4-42032015b0df + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReferencePerformed: {fileID: 0} + m_InputActionReferenceValue: {fileID: 0} + m_ObjectReferenceObject: {fileID: 0} + m_ManualPerformed: 0 + m_ManualValue: 0 + m_ManualQueuePerformed: 0 + m_ManualQueueWasPerformedThisFrame: 0 + m_ManualQueueValue: 0 + m_ManualQueueTargetFrame: 0 + m_ActivateInput: + m_InputSourceMode: 2 + m_InputActionPerformed: + m_Name: Activate + m_Type: 1 + m_ExpectedControlType: + m_Id: 68925782-6dea-49c5-be53-a244ff25f229 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionValue: + m_Name: Activate Value + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: cbe4bb4e-1f55-4428-be51-5b9d2cc24fa8 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReferencePerformed: {fileID: 0} + m_InputActionReferenceValue: {fileID: 0} + m_ObjectReferenceObject: {fileID: 0} + m_ManualPerformed: 0 + m_ManualValue: 0 + m_ManualQueuePerformed: 0 + m_ManualQueueWasPerformedThisFrame: 0 + m_ManualQueueValue: 0 + m_ManualQueueTargetFrame: 0 + m_SelectActionTrigger: 1 + m_AllowHoveredActivate: 0 + m_TargetPriorityMode: 0 + m_HideControllerOnSelect: 0 + m_InputCompatibilityMode: 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: 0 + 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: 0 + m_ImproveAccuracyWithSphereCollider: 1 + m_PhysicsLayerMask: + serializedVersion: 2 + m_Bits: 1 + m_PhysicsTriggerInteraction: 1 +--- !u!135 &6059725000919627127 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8841706926471734270} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &4350281875766305713 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8841706926471734270} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dd0b9921bce4eeb49bd05815b1135ac2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractorSourceObject: {fileID: 664489801923019586} + m_HapticImpulsePlayer: {fileID: 0} + m_PlaySelectEntered: 1 + m_SelectEnteredData: + m_Amplitude: 0.5 + m_Duration: 0.1 + m_Frequency: 0 + m_PlaySelectExited: 0 + m_SelectExitedData: + m_Amplitude: 0.5 + m_Duration: 0.1 + m_Frequency: 0 + m_PlaySelectCanceled: 0 + m_SelectCanceledData: + m_Amplitude: 0.5 + m_Duration: 0.1 + m_Frequency: 0 + m_PlayHoverEntered: 1 + m_HoverEnteredData: + m_Amplitude: 0.25 + m_Duration: 0.1 + m_Frequency: 0 + m_PlayHoverExited: 0 + m_HoverExitedData: + m_Amplitude: 0.25 + m_Duration: 0.1 + m_Frequency: 0 + m_PlayHoverCanceled: 0 + m_HoverCanceledData: + m_Amplitude: 0.25 + m_Duration: 0.1 + m_Frequency: 0 + m_AllowHoverHapticsWhileSelecting: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Interactors/Direct Interactor.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Direct Interactor.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Interactors/Direct Interactor.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Direct Interactor.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Interactors/Gaze Interactor.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Gaze Interactor.prefab similarity index 62% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Interactors/Gaze Interactor.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Gaze Interactor.prefab index 0c4a61af..72b1db8d 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Interactors/Gaze Interactor.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Gaze Interactor.prefab @@ -10,8 +10,8 @@ GameObject: m_Component: - component: {fileID: 7378618157167557198} - component: {fileID: 6766910295942714439} - - component: {fileID: 1646405018166597243} - component: {fileID: 6161168854630649507} + - component: {fileID: 2894763562165408636} m_Layer: 0 m_Name: Gaze Interactor m_TagString: Untagged @@ -47,11 +47,9 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_InteractionManager: {fileID: 0} - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 m_InteractionLayers: m_Bits: 1 + m_Handedness: 0 m_AttachTransform: {fileID: 0} m_KeepSelectedTargetValid: 1 m_DisableVisualsWhenBlockedInGroup: 1 @@ -71,22 +69,69 @@ MonoBehaviour: 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_SelectInput: + m_InputSourceMode: 0 + m_InputActionPerformed: + m_Name: Select + m_Type: 1 + m_ExpectedControlType: + m_Id: 26dcb486-2cd5-4bf0-83a4-8252a6419ca1 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionValue: + m_Name: Select Value + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: d589f510-c88e-41dc-89ee-4accd74ded87 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReferencePerformed: {fileID: 0} + m_InputActionReferenceValue: {fileID: 0} + m_ObjectReferenceObject: {fileID: 0} + m_ManualPerformed: 0 + m_ManualValue: 0 + m_ManualQueuePerformed: 0 + m_ManualQueueWasPerformedThisFrame: 0 + m_ManualQueueValue: 0 + m_ManualQueueTargetFrame: 0 + m_ActivateInput: + m_InputSourceMode: 0 + m_InputActionPerformed: + m_Name: Activate + m_Type: 1 + m_ExpectedControlType: + m_Id: 1b75ac5e-63d2-4c5c-9b86-0fe382e6b137 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionValue: + m_Name: Activate Value + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: fde38f1d-c7ff-4233-b8ba-2548488943d7 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReferencePerformed: {fileID: 0} + m_InputActionReferenceValue: {fileID: 0} + m_ObjectReferenceObject: {fileID: 0} + m_ManualPerformed: 0 + m_ManualValue: 0 + m_ManualQueuePerformed: 0 + m_ManualQueueWasPerformedThisFrame: 0 + m_ManualQueueValue: 0 + m_ManualQueueTargetFrame: 0 m_SelectActionTrigger: 0 - m_HideControllerOnSelect: 0 m_AllowHoveredActivate: 0 m_TargetPriorityMode: 0 + m_HideControllerOnSelect: 0 + m_InputCompatibilityMode: 0 m_PlayAudioClipOnSelectEntered: 0 m_AudioClipForOnSelectEntered: {fileID: 0} m_PlayAudioClipOnSelectExited: 0 @@ -99,7 +144,7 @@ MonoBehaviour: m_AudioClipForOnHoverExited: {fileID: 0} m_PlayAudioClipOnHoverCanceled: 0 m_AudioClipForOnHoverCanceled: {fileID: 0} - m_AllowHoverAudioWhileSelecting: 1 + m_AllowHoverAudioWhileSelecting: 0 m_PlayHapticsOnSelectEntered: 0 m_HapticSelectEnterIntensity: 0 m_HapticSelectEnterDuration: 0 @@ -118,7 +163,7 @@ MonoBehaviour: m_PlayHapticsOnHoverCanceled: 0 m_HapticHoverCancelIntensity: 0 m_HapticHoverCancelDuration: 0 - m_AllowHoverHapticsWhileSelecting: 1 + m_AllowHoverHapticsWhileSelecting: 0 m_LineType: 0 m_BlendVisualLinePoints: 1 m_MaxRaycastDistance: 30 @@ -148,12 +193,12 @@ MonoBehaviour: m_TimeToAutoDeselect: 0.25 m_EnableUIInteraction: 1 m_BlockUIOnInteractableSelection: 1 - m_AllowAnchorControl: 1 - m_UseForceGrab: 1 + m_ManipulateAttachTransform: 0 + m_UseForceGrab: 0 m_RotateSpeed: 180 m_TranslateSpeed: 1 - m_AnchorRotateReferenceFrame: {fileID: 0} - m_AnchorRotationMode: 0 + m_RotateReferenceFrame: {fileID: 0} + m_RotateMode: 0 m_UIHoverEntered: m_PersistentCalls: m_Calls: [] @@ -164,6 +209,148 @@ MonoBehaviour: m_OccludeARHitsWith3DObjects: 0 m_OccludeARHitsWith2DObjects: 0 m_ScaleMode: 0 + m_UIPressInput: + m_InputSourceMode: 0 + m_InputActionPerformed: + m_Name: UI Press + m_Type: 1 + m_ExpectedControlType: + m_Id: 8e16e22c-3195-4e76-b0d2-9ec60d8bfc8e + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionValue: + m_Name: UI Press Value + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: f2af0d9f-965a-4778-accc-36828a6e40b8 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReferencePerformed: {fileID: 0} + m_InputActionReferenceValue: {fileID: 0} + m_ObjectReferenceObject: {fileID: 0} + m_ManualPerformed: 0 + m_ManualValue: 0 + m_ManualQueuePerformed: 0 + m_ManualQueueWasPerformedThisFrame: 0 + m_ManualQueueValue: 0 + m_ManualQueueTargetFrame: 0 + m_UIScrollInput: + m_InputSourceMode: 0 + m_InputAction: + m_Name: UI Scroll + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: 83ec219e-cbbd-4b69-9013-f330cea06247 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReference: {fileID: 0} + m_ObjectReferenceObject: {fileID: 0} + m_ManualValue: {x: 0, y: 0} + m_TranslateManipulationInput: + m_InputSourceMode: 0 + m_InputAction: + m_Name: Translate Manipulation + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: 78fd2d8b-06b9-4583-8d46-a896cee22152 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReference: {fileID: 0} + m_ObjectReferenceObject: {fileID: 0} + m_ManualValue: {x: 0, y: 0} + m_RotateManipulationInput: + m_InputSourceMode: 0 + m_InputAction: + m_Name: Rotate Manipulation + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: 2941b9e4-5f6c-48d5-9338-136ff3a60e62 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReference: {fileID: 0} + m_ObjectReferenceObject: {fileID: 0} + m_ManualValue: {x: 0, y: 0} + m_DirectionalManipulationInput: + m_InputSourceMode: 0 + m_InputAction: + m_Name: Directional Manipulation + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: 4decd4bd-22c4-4e97-af9b-f22d09a3ea8e + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReference: {fileID: 0} + m_ObjectReferenceObject: {fileID: 0} + m_ManualValue: {x: 0, y: 0} + m_ScaleToggleInput: + m_InputSourceMode: 0 + m_InputActionPerformed: + m_Name: Scale Toggle + m_Type: 1 + m_ExpectedControlType: + m_Id: 4e7a5ca5-86e4-4d9d-9678-01fb7083e39b + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionValue: + m_Name: Scale Toggle Value + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: 0c82215d-82dc-4f94-a5a2-cd3a7186171a + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReferencePerformed: {fileID: 0} + m_InputActionReferenceValue: {fileID: 0} + m_ObjectReferenceObject: {fileID: 0} + m_ManualPerformed: 0 + m_ManualValue: 0 + m_ManualQueuePerformed: 0 + m_ManualQueueWasPerformedThisFrame: 0 + m_ManualQueueValue: 0 + m_ManualQueueTargetFrame: 0 + m_ScaleOverTimeInput: + m_InputSourceMode: 0 + m_InputAction: + m_Name: Scale Over Time + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: ec6d1bcc-90c1-4e80-98a9-7de37426ef90 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReference: {fileID: 0} + m_ObjectReferenceObject: {fileID: 0} + m_ManualValue: {x: 0, y: 0} + m_ScaleDistanceDeltaInput: + m_InputSourceMode: 0 + m_InputAction: + m_Name: Scale Distance Delta + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: 7e170bb1-3339-4b96-bbd9-61c01cb414db + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReference: {fileID: 0} + m_ObjectReferenceObject: {fileID: 0} + m_ManualValue: 0 m_GazeAssistanceCalculation: 1 m_GazeAssistanceColliderFixedSize: 1 m_GazeAssistanceColliderScale: 1 @@ -171,232 +358,6 @@ MonoBehaviour: m_GazeAssistanceDistanceScaling: 0 m_ClampGazeAssistanceDistanceScaling: 0 m_GazeAssistanceDistanceScalingClampValue: 0 ---- !u!114 &1646405018166597243 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3055433562365713971} - 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: 0} - 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: Vector3 - m_Id: c5c11aa1-bde1-4a3a-a80e-886509abbc16 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 3220680263695665919, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_RotationAction: - m_UseReference: 1 - m_Action: - m_Name: Rotation - m_Type: 0 - m_ExpectedControlType: Quaternion - m_Id: 49d34eac-625a-45e4-99f1-520d9a91587d - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -5930349909990434036, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_IsTrackedAction: - m_UseReference: 1 - m_Action: - m_Name: Is Tracked - m_Type: 1 - m_ExpectedControlType: Button - m_Id: 8e2e727b-5c20-4155-8455-04c94bc54da8 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 1 - m_Reference: {fileID: -831106814531524825, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_TrackingStateAction: - m_UseReference: 1 - m_Action: - m_Name: Tracking State - m_Type: 0 - m_ExpectedControlType: Integer - m_Id: 776eea05-891d-47cc-ba9d-8353541bbc61 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 2069149553511882089, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_SelectAction: - m_UseReference: 1 - m_Action: - m_Name: Select - m_Type: 1 - m_ExpectedControlType: Button - m_Id: d90b6a89-0f2d-4711-b5e3-6f709d46a3e9 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_SelectActionValue: - m_UseReference: 1 - m_Action: - m_Name: Select Action Value - m_Type: 0 - m_ExpectedControlType: Axis - m_Id: 982fe616-81e7-4cea-8b1c-0fc18677699d - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_ActivateAction: - m_UseReference: 1 - m_Action: - m_Name: Activate - m_Type: 1 - m_ExpectedControlType: Button - m_Id: 19b691c8-8354-453a-818d-9ab6fc719aa7 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_ActivateActionValue: - m_UseReference: 1 - m_Action: - m_Name: Activate Action Value - m_Type: 0 - m_ExpectedControlType: Axis - m_Id: 8f68251c-035b-44ae-9665-8d736bde8dbe - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_UIPressAction: - m_UseReference: 1 - m_Action: - m_Name: UI Press - m_Type: 1 - m_ExpectedControlType: Button - m_Id: cdf9e438-d5dd-488a-b24c-92607b3cf39e - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_UIPressActionValue: - m_UseReference: 1 - m_Action: - m_Name: UI Press Action Value - m_Type: 0 - m_ExpectedControlType: Axis - m_Id: d4ffb96f-9b0b-4d82-93a2-b7bd82d288c9 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_UIScrollAction: - m_UseReference: 1 - m_Action: - m_Name: UI Scroll - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: 3261309f-f95a-4f48-aa8d-6b06dab8f09f - 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: 2 - m_ExpectedControlType: - m_Id: 9b83662a-0fd2-4aee-aae5-c6634d0fbafc - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_RotateAnchorAction: - m_UseReference: 1 - m_Action: - m_Name: Rotate Anchor - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: 4cae4fad-cc16-4684-8fec-1ba47667d275 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_DirectionalAnchorRotationAction: - m_UseReference: 1 - m_Action: - m_Name: Directional Anchor Rotation - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: f58ccfc7-633b-46cf-9164-6dfafd85bf99 - 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: Vector2 - m_Id: 83996765-f9ca-47e0-969e-b8fa763170db - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_ScaleToggleAction: - m_UseReference: 1 - m_Action: - m_Name: Scale Toggle - m_Type: 1 - m_ExpectedControlType: - m_Id: cbaaadec-6494-4e38-a764-cf6099f71738 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_ScaleDeltaAction: - m_UseReference: 1 - m_Action: - m_Name: Scale Delta - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: 84640846-a827-414a-a35d-773ed3bc62c7 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_ButtonPressPoint: 0.5 --- !u!114 &6161168854630649507 MonoBehaviour: m_ObjectHideFlags: 0 @@ -410,3 +371,72 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_FallbackIfEyeTrackingUnavailable: 1 +--- !u!114 &2894763562165408636 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3055433562365713971} + 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: 1 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: Vector3 + m_Id: e0974d43-a211-4251-882f-3f0b4749db16 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 3220680263695665919, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_RotationInput: + m_UseReference: 1 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: Quaternion + m_Id: 0a88b07c-2048-460b-b52d-880dd98ceb35 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -5930349909990434036, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_TrackingStateInput: + m_UseReference: 1 + m_Action: + m_Name: Tracking State + m_Type: 0 + m_ExpectedControlType: Integer + m_Id: ca2485cb-f4d4-4bef-84e6-b085e080175c + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 2069149553511882089, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: b902054d-edbb-440a-a455-68558ef17b58 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: 629180f1-a17a-4e47-a583-481808df540f + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Interactors/Gaze Interactor.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Gaze Interactor.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Interactors/Gaze Interactor.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Gaze Interactor.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Left_NearFarInteractor.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Left_NearFarInteractor.prefab new file mode 100644 index 00000000..cd43e9bf --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Left_NearFarInteractor.prefab @@ -0,0 +1,721 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1323442585405899171 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 893315461643433812} + - component: {fileID: 3755238779732181253} + - component: {fileID: 3053154067257784704} + - component: {fileID: 6278253758758756215} + m_Layer: 0 + m_Name: LineVisual + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &893315461643433812 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1323442585405899171} + 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: 5745700813747042508} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &3755238779732181253 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1323442585405899171} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 80e353695beb436ab39a90d9ecefaee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_LineRenderer: {fileID: 3053154067257784704} + m_CurveVisualObject: {fileID: 2442306273320644280} + m_OverrideLineOrigin: 1 + m_LineOriginTransform: {fileID: 5745700813747042508} + m_VisualPointCount: 20 + m_MaxVisualCurveDistance: 10 + m_RestingVisualLineLength: 0.25 + m_LineDynamicsMode: 1 + m_RetractDelay: 1 + m_RetractDuration: 1 + m_ExtendLineToEmptyHit: 0 + m_ExtensionRate: 10 + m_EndPointExpansionRate: 10 + m_ComputeMidPointWithComplexCurves: 0 + m_SnapToSelectedAttachIfAvailable: 1 + m_SnapToSnapVolumeIfAvailable: 1 + m_CurveStartOffset: 0.015 + m_CurveEndOffset: 0.005 + m_CustomizeLinePropertiesForState: 1 + m_LinePropertyAnimationSpeed: 8 + m_NoValidHitProperties: + m_SmoothlyCurveLine: 1 + m_LineBendRatio: 0.25 + m_AdjustWidth: 1 + m_StarWidth: 0.003 + m_EndWidth: 0.003 + m_EndWidthScaleDistanceFactor: 2 + m_AdjustGradient: 1 + m_Gradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 0} + key1: {r: 1, g: 1, b: 1, a: 0.5019608} + key2: {r: 0, g: 0, b: 0, a: 0.2509804} + 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: 193 + atime1: 8192 + atime2: 32768 + atime3: 55705 + atime4: 65342 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 4 + m_CustomizeExpandLineDrawPercent: 1 + m_ExpandModeLineDrawPercent: 0.9 + m_UIHitProperties: + m_SmoothlyCurveLine: 1 + m_LineBendRatio: 0.5 + m_AdjustWidth: 1 + m_StarWidth: 0.004 + m_EndWidth: 0.004 + m_EndWidthScaleDistanceFactor: 2 + m_AdjustGradient: 1 + m_Gradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 0} + key1: {r: 1, g: 0.78431374, b: 0.5686275, a: 0.49019608} + key2: {r: 1, g: 1, b: 1, 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: 16384 + ctime2: 65535 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 8192 + atime2: 32768 + atime3: 65535 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 3 + m_NumAlphaKeys: 4 + m_CustomizeExpandLineDrawPercent: 1 + m_ExpandModeLineDrawPercent: 0.9 + m_UIPressHitProperties: + m_SmoothlyCurveLine: 1 + m_LineBendRatio: 0.5 + m_AdjustWidth: 1 + m_StarWidth: 0.003 + m_EndWidth: 0.003 + m_EndWidthScaleDistanceFactor: 2 + m_AdjustGradient: 1 + m_Gradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 0} + key1: {r: 0.5686275, g: 0.78431374, b: 1, a: 0.627451} + key2: {r: 1, g: 1, b: 1, a: 1} + key3: {r: 1, g: 1, b: 1, a: 0.78431374} + 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: 65535 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 8192 + atime2: 26214 + atime3: 42598 + atime4: 65535 + atime5: 65535 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 3 + m_NumAlphaKeys: 5 + m_CustomizeExpandLineDrawPercent: 1 + m_ExpandModeLineDrawPercent: 0.9 + m_SelectHitProperties: + m_SmoothlyCurveLine: 1 + m_LineBendRatio: 0.5 + m_AdjustWidth: 1 + m_StarWidth: 0.003 + m_EndWidth: 0.003 + m_EndWidthScaleDistanceFactor: 2 + m_AdjustGradient: 1 + m_Gradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 0} + key1: {r: 0.5686275, g: 0.78431374, b: 1, a: 0.627451} + key2: {r: 1, g: 1, b: 1, a: 1} + key3: {r: 1, g: 1, b: 1, a: 0.78431374} + 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: 65535 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 8192 + atime2: 26214 + atime3: 42598 + atime4: 65535 + atime5: 65535 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 3 + m_NumAlphaKeys: 5 + m_CustomizeExpandLineDrawPercent: 1 + m_ExpandModeLineDrawPercent: 0.75 + m_HoverHitProperties: + m_SmoothlyCurveLine: 1 + m_LineBendRatio: 0.25 + m_AdjustWidth: 1 + m_StarWidth: 0.004 + m_EndWidth: 0.004 + m_EndWidthScaleDistanceFactor: 2 + m_AdjustGradient: 1 + m_Gradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 0} + key1: {r: 1, g: 0.78431374, b: 0.5686275, a: 0.49019608} + key2: {r: 1, g: 1, b: 1, a: 1} + key3: {r: 1, g: 1, b: 1, 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: 16384 + ctime2: 65535 + ctime3: 65535 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 13878 + atime2: 32768 + atime3: 65535 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 3 + m_NumAlphaKeys: 4 + m_CustomizeExpandLineDrawPercent: 1 + m_ExpandModeLineDrawPercent: 0.9 + m_RenderLineInWorldSpace: 1 + m_SwapMaterials: 0 + m_BaseLineMaterial: {fileID: 0} + m_EmptyHitMaterial: {fileID: 0} +--- !u!120 &3053154067257784704 +LineRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1323442585405899171} + m_Enabled: 0 + m_CastShadows: 0 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {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: [] + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.012002945 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + 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: 8 + numCapVertices: 8 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_UseWorldSpace: 1 + m_Loop: 0 +--- !u!210 &6278253758758756215 +SortingGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1323442585405899171} + m_Enabled: 1 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 30005 +--- !u!1 &4804964734930210078 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5745700813747042508} + - component: {fileID: 2442306273320644280} + - component: {fileID: 1722882099693224055} + - component: {fileID: 7104419533170684624} + - component: {fileID: 1255647619390271626} + - component: {fileID: 3179295312718945089} + m_Layer: 0 + m_Name: Left_NearFarInteractor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5745700813747042508 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4804964734930210078} + 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: 893315461643433812} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2442306273320644280 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4804964734930210078} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 25a07ef133a37d140a87cdf1f1c75fdf, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 0} + m_InteractionLayers: + m_Bits: 1 + m_Handedness: 1 + m_AttachTransform: {fileID: 0} + 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_SelectInput: + m_InputSourceMode: 2 + m_InputActionPerformed: + m_Name: Select + m_Type: 1 + m_ExpectedControlType: + m_Id: 2491b664-3d4e-4f20-a7ae-ee1861d845f2 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionValue: + m_Name: Select Value + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: fc42dacc-33eb-41ec-9c17-d242ac6b0c5b + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReferencePerformed: {fileID: -6131295136447488360, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_InputActionReferenceValue: {fileID: 6558622148059887818, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_ObjectReferenceObject: {fileID: 0} + m_ManualPerformed: 0 + m_ManualValue: 0 + m_ManualQueuePerformed: 0 + m_ManualQueueWasPerformedThisFrame: 0 + m_ManualQueueValue: 0 + m_ManualQueueTargetFrame: 0 + m_ActivateInput: + m_InputSourceMode: 2 + m_InputActionPerformed: + m_Name: Activate + m_Type: 1 + m_ExpectedControlType: + m_Id: 77660b9e-6bbe-4740-b80f-1fea8d0f59e1 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionValue: + m_Name: Activate Value + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: 94568f52-c27a-47fc-a190-5e3b17572929 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReferencePerformed: {fileID: -5982496924579745919, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_InputActionReferenceValue: {fileID: -4289430672226363583, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_ObjectReferenceObject: {fileID: 0} + m_ManualPerformed: 0 + m_ManualValue: 0 + m_ManualQueuePerformed: 0 + m_ManualQueueWasPerformedThisFrame: 0 + m_ManualQueueValue: 0 + m_ManualQueueTargetFrame: 0 + m_SelectActionTrigger: 1 + m_AllowHoveredActivate: 0 + m_TargetPriorityMode: 0 + m_HideControllerOnSelect: 0 + m_InputCompatibilityMode: 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_InteractionAttachController: {fileID: 1722882099693224055} + m_EnableNearCasting: 1 + m_NearInteractionCaster: {fileID: 7104419533170684624} + m_NearCasterSortingStrategy: 1 + m_SortNearTargetsAfterTargetFilter: 0 + m_EnableFarCasting: 1 + m_FarInteractionCaster: {fileID: 1255647619390271626} + m_FarAttachMode: 1 + m_EnableUIInteraction: 1 + m_BlockUIOnInteractableSelection: 1 + m_UIHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_UIHoverExited: + m_PersistentCalls: + m_Calls: [] + m_UIPressInput: + m_InputSourceMode: 2 + m_InputActionPerformed: + m_Name: UI Press + m_Type: 1 + m_ExpectedControlType: + m_Id: ded1ccb2-ff18-46c7-ade9-b80985fe2825 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionValue: + m_Name: UI Press Value + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: d762660e-30e0-4a4d-8e2a-e6b553e03f11 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReferencePerformed: {fileID: -6395602842196007441, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_InputActionReferenceValue: {fileID: 71106601250685021, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_ObjectReferenceObject: {fileID: 0} + m_ManualPerformed: 0 + m_ManualValue: 0 + m_ManualQueuePerformed: 0 + m_ManualQueueWasPerformedThisFrame: 0 + m_ManualQueueValue: 0 + m_ManualQueueTargetFrame: 0 + m_UIScrollInput: + m_InputSourceMode: 2 + m_InputAction: + m_Name: UI Scroll + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: ef5cc4a5-b968-432c-9ae7-45e494178db0 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReference: {fileID: 2464016903823916871, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_ObjectReferenceObject: {fileID: 0} + m_ManualValue: {x: 0, y: 0} +--- !u!114 &1722882099693224055 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4804964734930210078} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 792f6c7eaa1a4b82abf8351559ac97eb, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TransformToFollow: {fileID: 5745700813747042508} + m_MotionStabilizationMode: 1 + m_PositionStabilization: 0.25 + m_AngleStabilization: 20 + m_SmoothOffset: 0 + m_SmoothingSpeed: 10 + m_UseDistanceBasedVelocityScaling: 1 + m_UseMomentum: 1 + m_MomentumDecayScale: 1.25 + m_ZVelocityRampThreshold: 0.3 + m_PullVelocityBias: 1 + m_PushVelocityBias: 1.25 + m_MinAdditionalVelocityScalar: 0.05 + m_MaxAdditionalVelocityScalar: 1.5 +--- !u!114 &7104419533170684624 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4804964734930210078} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 48139a683d3b4ac3a37cd5d24f71acf1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_CastOrigin: {fileID: 5745700813747042508} + m_EnableStabilization: 0 + m_PositionStabilization: 0.25 + m_AngleStabilization: 20 + m_AimTargetObject: {fileID: 0} + m_PhysicsLayerMask: + serializedVersion: 2 + m_Bits: 1 + m_PhysicsTriggerInteraction: 1 + m_CastRadius: 0.1 +--- !u!114 &1255647619390271626 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4804964734930210078} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ef20135915079454985abea5a2ec8967, type: 3} + m_Name: + m_EditorClassIdentifier: + m_CastOrigin: {fileID: 5745700813747042508} + m_EnableStabilization: 1 + m_PositionStabilization: 0.25 + m_AngleStabilization: 20 + m_AimTargetObject: {fileID: 2442306273320644280} + m_RaycastMask: + serializedVersion: 2 + m_Bits: 2147483681 + m_RaycastTriggerInteraction: 1 + m_RaycastSnapVolumeInteraction: 1 + m_TargetNumCurveSegments: 1 + m_HitDetectionType: 2 + m_CastDistance: 10 + m_SphereCastRadius: 0.1 + m_ConeCastAngle: 6 +--- !u!114 &3179295312718945089 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4804964734930210078} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dd0b9921bce4eeb49bd05815b1135ac2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractorSourceObject: {fileID: 2442306273320644280} + m_HapticImpulsePlayer: {fileID: 0} + m_PlaySelectEntered: 1 + m_SelectEnteredData: + m_Amplitude: 0.5 + m_Duration: 0.1 + m_Frequency: 0 + m_PlaySelectExited: 0 + m_SelectExitedData: + m_Amplitude: 0.5 + m_Duration: 0.1 + m_Frequency: 0 + m_PlaySelectCanceled: 0 + m_SelectCanceledData: + m_Amplitude: 0.5 + m_Duration: 0.1 + m_Frequency: 0 + m_PlayHoverEntered: 1 + m_HoverEnteredData: + m_Amplitude: 0.25 + m_Duration: 0.1 + m_Frequency: 0 + m_PlayHoverExited: 0 + m_HoverExitedData: + m_Amplitude: 0.25 + m_Duration: 0.1 + m_Frequency: 0 + m_PlayHoverCanceled: 0 + m_HoverCanceledData: + m_Amplitude: 0.25 + m_Duration: 0.1 + m_Frequency: 0 + m_AllowHoverHapticsWhileSelecting: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Left_NearFarInteractor.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Left_NearFarInteractor.prefab.meta new file mode 100644 index 00000000..aa0ca7c8 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Left_NearFarInteractor.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3df3e1220f2164f448701a6de8084f92 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Poke Interactor.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Poke Interactor.prefab new file mode 100644 index 00000000..b1233a0b --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Poke Interactor.prefab @@ -0,0 +1,264 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1096232077998711156 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8259524632637961923} + m_Layer: 0 + m_Name: Poke Point + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8259524632637961923 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1096232077998711156} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0.0075} + m_LocalScale: {x: 0.01, y: 0.01, z: 0.01} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3381213159206026464} + m_Father: {fileID: 780270278251679399} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &4125421792874400280 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 780270278251679399} + - component: {fileID: 2417358720014700305} + - component: {fileID: 1838083765625025125} + m_Layer: 0 + m_Name: Poke Interactor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &780270278251679399 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4125421792874400280} + 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: 8259524632637961923} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2417358720014700305 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4125421792874400280} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0924bcaa9eb50df458a783ae0e2b59f5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 0} + m_InteractionLayers: + m_Bits: 1 + m_Handedness: 0 + m_AttachTransform: {fileID: 8259524632637961923} + 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_PokeDepth: 0.1 + m_PokeWidth: 0.0075 + m_PokeSelectWidth: 0.015 + m_PokeHoverRadius: 0.015 + m_PokeInteractionOffset: 0.005 + m_PhysicsLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_PhysicsTriggerInteraction: 1 + m_RequirePokeFilter: 1 + m_EnableUIInteraction: 1 + m_DebugVisualizationsEnabled: 0 + m_UIHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_UIHoverExited: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1838083765625025125 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4125421792874400280} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dd0b9921bce4eeb49bd05815b1135ac2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractorSourceObject: {fileID: 2417358720014700305} + m_HapticImpulsePlayer: {fileID: 0} + m_PlaySelectEntered: 1 + m_SelectEnteredData: + m_Amplitude: 0.5 + m_Duration: 0.1 + m_Frequency: 0 + m_PlaySelectExited: 0 + m_SelectExitedData: + m_Amplitude: 0.5 + m_Duration: 0.1 + m_Frequency: 0 + m_PlaySelectCanceled: 0 + m_SelectCanceledData: + m_Amplitude: 0.5 + m_Duration: 0.1 + m_Frequency: 0 + m_PlayHoverEntered: 1 + m_HoverEnteredData: + m_Amplitude: 0.25 + m_Duration: 0.1 + m_Frequency: 0 + m_PlayHoverExited: 0 + m_HoverExitedData: + m_Amplitude: 0.25 + m_Duration: 0.1 + m_Frequency: 0 + m_PlayHoverCanceled: 0 + m_HoverCanceledData: + m_Amplitude: 0.25 + m_Duration: 0.1 + m_Frequency: 0 + m_AllowHoverHapticsWhileSelecting: 0 +--- !u!1001 &2983285148413631243 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8259524632637961923} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: e053b8fbc416ba349b4a58a26410bba2, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: e053b8fbc416ba349b4a58a26410bba2, type: 3} + propertyPath: m_LocalScale.x + value: 50 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: e053b8fbc416ba349b4a58a26410bba2, type: 3} + propertyPath: m_LocalScale.y + value: 50 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: e053b8fbc416ba349b4a58a26410bba2, type: 3} + propertyPath: m_LocalScale.z + value: 50 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: e053b8fbc416ba349b4a58a26410bba2, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: e053b8fbc416ba349b4a58a26410bba2, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: e053b8fbc416ba349b4a58a26410bba2, type: 3} + propertyPath: m_LocalPosition.z + value: -0.72 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: e053b8fbc416ba349b4a58a26410bba2, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: e053b8fbc416ba349b4a58a26410bba2, type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: e053b8fbc416ba349b4a58a26410bba2, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: e053b8fbc416ba349b4a58a26410bba2, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: e053b8fbc416ba349b4a58a26410bba2, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 90 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: e053b8fbc416ba349b4a58a26410bba2, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: e053b8fbc416ba349b4a58a26410bba2, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -3887185075125053422, guid: e053b8fbc416ba349b4a58a26410bba2, type: 3} + propertyPath: m_DirtyAABB + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -3887185075125053422, guid: e053b8fbc416ba349b4a58a26410bba2, type: 3} + propertyPath: m_AABB.m_Center.y + value: 0.009045093 + objectReference: {fileID: 0} + - target: {fileID: -3887185075125053422, guid: e053b8fbc416ba349b4a58a26410bba2, type: 3} + propertyPath: m_AABB.m_Extent.x + value: 0.0077457884 + objectReference: {fileID: 0} + - target: {fileID: -3887185075125053422, guid: e053b8fbc416ba349b4a58a26410bba2, type: 3} + propertyPath: m_AABB.m_Extent.y + value: 0.016694028 + objectReference: {fileID: 0} + - target: {fileID: -3887185075125053422, guid: e053b8fbc416ba349b4a58a26410bba2, type: 3} + propertyPath: m_AABB.m_Extent.z + value: 0.0077457884 + objectReference: {fileID: 0} + - target: {fileID: -3887185075125053422, guid: e053b8fbc416ba349b4a58a26410bba2, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: f5ccd52dc494e054fbe7d7161dcabe25, type: 2} + - target: {fileID: 919132149155446097, guid: e053b8fbc416ba349b4a58a26410bba2, type: 3} + propertyPath: m_Name + value: Pinch_Pointer_LOD0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e053b8fbc416ba349b4a58a26410bba2, type: 3} +--- !u!4 &3381213159206026464 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: e053b8fbc416ba349b4a58a26410bba2, type: 3} + m_PrefabInstance: {fileID: 2983285148413631243} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Interactors/Poke Interactor.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Poke Interactor.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Interactors/Poke Interactor.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Poke Interactor.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Interactors/Ray Interactor.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Ray Interactor.prefab similarity index 57% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Interactors/Ray Interactor.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Ray Interactor.prefab index 4dc0669d..a64d6ebd 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Interactors/Ray Interactor.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Ray Interactor.prefab @@ -13,6 +13,7 @@ GameObject: - component: {fileID: 7693184380767619946} - component: {fileID: 4924506573850889901} - component: {fileID: 759886463073337534} + - component: {fileID: 5800936643595229357} m_Layer: 0 m_Name: Ray Interactor m_TagString: Untagged @@ -48,11 +49,9 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_InteractionManager: {fileID: 0} - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 55 m_InteractionLayers: m_Bits: 1 + m_Handedness: 0 m_AttachTransform: {fileID: 0} m_KeepSelectedTargetValid: 1 m_DisableVisualsWhenBlockedInGroup: 1 @@ -72,22 +71,69 @@ MonoBehaviour: 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_SelectInput: + m_InputSourceMode: 2 + m_InputActionPerformed: + m_Name: Select + m_Type: 1 + m_ExpectedControlType: + m_Id: 429ea6c2-900b-4600-9dec-ef981c442e74 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionValue: + m_Name: Select Value + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: a2b28d4d-fc21-46c4-a146-41ab6eafdc6e + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReferencePerformed: {fileID: 0} + m_InputActionReferenceValue: {fileID: 0} + m_ObjectReferenceObject: {fileID: 0} + m_ManualPerformed: 0 + m_ManualValue: 0 + m_ManualQueuePerformed: 0 + m_ManualQueueWasPerformedThisFrame: 0 + m_ManualQueueValue: 0 + m_ManualQueueTargetFrame: 0 + m_ActivateInput: + m_InputSourceMode: 2 + m_InputActionPerformed: + m_Name: Activate + m_Type: 1 + m_ExpectedControlType: + m_Id: 9463bd95-e6a6-4e29-a93b-3f0fef3a8139 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionValue: + m_Name: Activate Value + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: 2a74813e-aeb0-4476-9b57-ae667c5da716 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReferencePerformed: {fileID: 0} + m_InputActionReferenceValue: {fileID: 0} + m_ObjectReferenceObject: {fileID: 0} + m_ManualPerformed: 0 + m_ManualValue: 0 + m_ManualQueuePerformed: 0 + m_ManualQueueWasPerformedThisFrame: 0 + m_ManualQueueValue: 0 + m_ManualQueueTargetFrame: 0 m_SelectActionTrigger: 1 - m_HideControllerOnSelect: 0 m_AllowHoveredActivate: 0 m_TargetPriorityMode: 0 + m_HideControllerOnSelect: 0 + m_InputCompatibilityMode: 0 m_PlayAudioClipOnSelectEntered: 0 m_AudioClipForOnSelectEntered: {fileID: 0} m_PlayAudioClipOnSelectExited: 0 @@ -101,21 +147,21 @@ MonoBehaviour: m_PlayAudioClipOnHoverCanceled: 0 m_AudioClipForOnHoverCanceled: {fileID: 0} m_AllowHoverAudioWhileSelecting: 0 - m_PlayHapticsOnSelectEntered: 1 - m_HapticSelectEnterIntensity: 0.5 - m_HapticSelectEnterDuration: 0.1 - m_PlayHapticsOnSelectExited: 1 - m_HapticSelectExitIntensity: 0.5 - m_HapticSelectExitDuration: 0.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: 1 - m_HapticHoverEnterIntensity: 0.25 - m_HapticHoverEnterDuration: 0.1 - m_PlayHapticsOnHoverExited: 1 - m_HapticHoverExitIntensity: 0.25 - m_HapticHoverExitDuration: 0.1 + 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 @@ -149,12 +195,12 @@ MonoBehaviour: m_TimeToAutoDeselect: 1 m_EnableUIInteraction: 1 m_BlockUIOnInteractableSelection: 1 - m_AllowAnchorControl: 1 + m_ManipulateAttachTransform: 1 m_UseForceGrab: 0 m_RotateSpeed: 180 m_TranslateSpeed: 1 - m_AnchorRotateReferenceFrame: {fileID: 0} - m_AnchorRotationMode: 0 + m_RotateReferenceFrame: {fileID: 0} + m_RotateMode: 0 m_UIHoverEntered: m_PersistentCalls: m_Calls: [] @@ -165,6 +211,148 @@ MonoBehaviour: m_OccludeARHitsWith3DObjects: 0 m_OccludeARHitsWith2DObjects: 0 m_ScaleMode: 1 + m_UIPressInput: + m_InputSourceMode: 2 + m_InputActionPerformed: + m_Name: UI Press + m_Type: 1 + m_ExpectedControlType: + m_Id: 114095d0-3f3f-4498-8173-6c1ef51c395f + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionValue: + m_Name: UI Press Value + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: 28edaf06-248c-4566-9e77-e0a8306f5b23 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReferencePerformed: {fileID: 0} + m_InputActionReferenceValue: {fileID: 0} + m_ObjectReferenceObject: {fileID: 0} + m_ManualPerformed: 0 + m_ManualValue: 0 + m_ManualQueuePerformed: 0 + m_ManualQueueWasPerformedThisFrame: 0 + m_ManualQueueValue: 0 + m_ManualQueueTargetFrame: 0 + m_UIScrollInput: + m_InputSourceMode: 2 + m_InputAction: + m_Name: UI Scroll + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: a97b7b43-9f7a-4629-8bf8-cd9e4366135e + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReference: {fileID: 0} + m_ObjectReferenceObject: {fileID: 0} + m_ManualValue: {x: 0, y: 0} + m_TranslateManipulationInput: + m_InputSourceMode: 2 + m_InputAction: + m_Name: Translate Manipulation + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: 4ebd55dc-790f-4902-a152-a2ad2f58b954 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReference: {fileID: 0} + m_ObjectReferenceObject: {fileID: 0} + m_ManualValue: {x: 0, y: 0} + m_RotateManipulationInput: + m_InputSourceMode: 2 + m_InputAction: + m_Name: Rotate Manipulation + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: 57b99265-24c1-4c01-9723-1e2d868d39a3 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReference: {fileID: 0} + m_ObjectReferenceObject: {fileID: 0} + m_ManualValue: {x: 0, y: 0} + m_DirectionalManipulationInput: + m_InputSourceMode: 2 + m_InputAction: + m_Name: Directional Manipulation + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: 8745cceb-738c-4169-a81b-c9611ff835c1 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReference: {fileID: 0} + m_ObjectReferenceObject: {fileID: 0} + m_ManualValue: {x: 0, y: 0} + m_ScaleToggleInput: + m_InputSourceMode: 2 + m_InputActionPerformed: + m_Name: Scale Toggle + m_Type: 1 + m_ExpectedControlType: + m_Id: 3f354885-6c35-4d4c-8937-f39f9281823f + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionValue: + m_Name: Scale Toggle Value + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: 7cb37a30-9cf3-4543-a117-80b77e8a2158 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReferencePerformed: {fileID: 0} + m_InputActionReferenceValue: {fileID: 0} + m_ObjectReferenceObject: {fileID: 0} + m_ManualPerformed: 0 + m_ManualValue: 0 + m_ManualQueuePerformed: 0 + m_ManualQueueWasPerformedThisFrame: 0 + m_ManualQueueValue: 0 + m_ManualQueueTargetFrame: 0 + m_ScaleOverTimeInput: + m_InputSourceMode: 2 + m_InputAction: + m_Name: Scale Over Time + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: bb96d9ab-3ef4-47b7-85c5-67f09482637d + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReference: {fileID: 0} + m_ObjectReferenceObject: {fileID: 0} + m_ManualValue: {x: 0, y: 0} + m_ScaleDistanceDeltaInput: + m_InputSourceMode: 0 + m_InputAction: + m_Name: Scale Distance Delta + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: 16abd2a2-ba80-4824-a33c-cd5a47c3cfa5 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReference: {fileID: 0} + m_ObjectReferenceObject: {fileID: 0} + m_ManualValue: 0 --- !u!120 &7693184380767619946 LineRenderer: m_ObjectHideFlags: 0 @@ -427,3 +615,48 @@ SortingGroup: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 30005 +--- !u!114 &5800936643595229357 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1787346994484839025} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dd0b9921bce4eeb49bd05815b1135ac2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractorSourceObject: {fileID: 7462879561657043759} + m_HapticImpulsePlayer: {fileID: 0} + m_PlaySelectEntered: 1 + m_SelectEnteredData: + m_Amplitude: 0.5 + m_Duration: 0.1 + m_Frequency: 0 + m_PlaySelectExited: 0 + m_SelectExitedData: + m_Amplitude: 0.5 + m_Duration: 0.1 + m_Frequency: 0 + m_PlaySelectCanceled: 0 + m_SelectCanceledData: + m_Amplitude: 0.5 + m_Duration: 0.1 + m_Frequency: 0 + m_PlayHoverEntered: 1 + m_HoverEnteredData: + m_Amplitude: 0.25 + m_Duration: 0.1 + m_Frequency: 0 + m_PlayHoverExited: 0 + m_HoverExitedData: + m_Amplitude: 0.25 + m_Duration: 0.1 + m_Frequency: 0 + m_PlayHoverCanceled: 0 + m_HoverCanceledData: + m_Amplitude: 0.25 + m_Duration: 0.1 + m_Frequency: 0 + m_AllowHoverHapticsWhileSelecting: 0 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Interactors/Ray Interactor.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Ray Interactor.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Interactors/Ray Interactor.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Ray Interactor.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Right_NearFarInteractor.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Right_NearFarInteractor.prefab new file mode 100644 index 00000000..f603a3d4 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Right_NearFarInteractor.prefab @@ -0,0 +1,91 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &7158566501882083953 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 2442306273320644280, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + propertyPath: m_Handedness + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 2442306273320644280, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + propertyPath: m_UIScrollInput.m_InputActionReference + value: + objectReference: {fileID: -6756787485274679044, guid: c348712bda248c246b8c49b3db54643f, type: 3} + - target: {fileID: 2442306273320644280, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + propertyPath: m_SelectInput.m_InputActionReferenceValue + value: + objectReference: {fileID: -1758520528963094988, guid: c348712bda248c246b8c49b3db54643f, type: 3} + - target: {fileID: 2442306273320644280, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + propertyPath: m_UIPressInput.m_InputActionReferenceValue + value: + objectReference: {fileID: -5908353012961274365, guid: c348712bda248c246b8c49b3db54643f, type: 3} + - target: {fileID: 2442306273320644280, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + propertyPath: m_ActivateInput.m_InputActionReferenceValue + value: + objectReference: {fileID: 7904272356298805229, guid: c348712bda248c246b8c49b3db54643f, type: 3} + - target: {fileID: 2442306273320644280, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + propertyPath: m_SelectInput.m_InputActionReferencePerformed + value: + objectReference: {fileID: 187161793506945269, guid: c348712bda248c246b8c49b3db54643f, type: 3} + - target: {fileID: 2442306273320644280, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + propertyPath: m_UIPressInput.m_InputActionReferencePerformed + value: + objectReference: {fileID: 3279264004350380116, guid: c348712bda248c246b8c49b3db54643f, type: 3} + - target: {fileID: 2442306273320644280, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + propertyPath: m_ActivateInput.m_InputActionReferencePerformed + value: + objectReference: {fileID: 83097790271614945, guid: c348712bda248c246b8c49b3db54643f, type: 3} + - target: {fileID: 4804964734930210078, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + propertyPath: m_Name + value: Right_NearFarInteractor + objectReference: {fileID: 0} + - target: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Right_NearFarInteractor.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Right_NearFarInteractor.prefab.meta new file mode 100644 index 00000000..8a869143 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Right_NearFarInteractor.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b200f6587d118224eba8467281481800 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Interactors/Teleport Interactor.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Teleport Interactor.prefab similarity index 56% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Interactors/Teleport Interactor.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Teleport Interactor.prefab index 37d9bf8f..ed022273 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Interactors/Teleport Interactor.prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Teleport Interactor.prefab @@ -13,6 +13,7 @@ GameObject: - component: {fileID: 2761784063978902504} - component: {fileID: 2761784063978902505} - component: {fileID: 7708679388415899527} + - component: {fileID: 3616344554909481683} m_Layer: 0 m_Name: Teleport Interactor m_TagString: Untagged @@ -48,11 +49,9 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_InteractionManager: {fileID: 0} - m_InteractionLayerMask: - serializedVersion: 2 - m_Bits: 2147483648 m_InteractionLayers: m_Bits: 2147483648 + m_Handedness: 0 m_AttachTransform: {fileID: 0} m_KeepSelectedTargetValid: 0 m_DisableVisualsWhenBlockedInGroup: 1 @@ -72,22 +71,69 @@ MonoBehaviour: 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_SelectInput: + m_InputSourceMode: 2 + m_InputActionPerformed: + m_Name: Select + m_Type: 1 + m_ExpectedControlType: + m_Id: 36843f28-4fd5-4729-b5a6-afe92ef11597 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionValue: + m_Name: Select Value + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: 1a51c331-470d-4462-b8e1-2522a24bd40c + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReferencePerformed: {fileID: 0} + m_InputActionReferenceValue: {fileID: 0} + m_ObjectReferenceObject: {fileID: 0} + m_ManualPerformed: 0 + m_ManualValue: 0 + m_ManualQueuePerformed: 0 + m_ManualQueueWasPerformedThisFrame: 0 + m_ManualQueueValue: 0 + m_ManualQueueTargetFrame: 0 + m_ActivateInput: + m_InputSourceMode: 2 + m_InputActionPerformed: + m_Name: Activate + m_Type: 1 + m_ExpectedControlType: + m_Id: 0ace7244-e61f-4e60-8d0b-2ef8c3ae51af + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionValue: + m_Name: Activate Value + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: bdf06a24-21b3-4f27-a8a3-72086e6c7f00 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReferencePerformed: {fileID: 0} + m_InputActionReferenceValue: {fileID: 0} + m_ObjectReferenceObject: {fileID: 0} + m_ManualPerformed: 0 + m_ManualValue: 0 + m_ManualQueuePerformed: 0 + m_ManualQueueWasPerformedThisFrame: 0 + m_ManualQueueValue: 0 + m_ManualQueueTargetFrame: 0 m_SelectActionTrigger: 0 - m_HideControllerOnSelect: 0 m_AllowHoveredActivate: 0 m_TargetPriorityMode: 0 + m_HideControllerOnSelect: 0 + m_InputCompatibilityMode: 0 m_PlayAudioClipOnSelectEntered: 0 m_AudioClipForOnSelectEntered: {fileID: 0} m_PlayAudioClipOnSelectExited: 0 @@ -100,26 +146,26 @@ MonoBehaviour: m_AudioClipForOnHoverExited: {fileID: 0} m_PlayAudioClipOnHoverCanceled: 0 m_AudioClipForOnHoverCanceled: {fileID: 0} - m_AllowHoverAudioWhileSelecting: 1 - m_PlayHapticsOnSelectEntered: 1 - m_HapticSelectEnterIntensity: 0.5 - m_HapticSelectEnterDuration: 0.1 - m_PlayHapticsOnSelectExited: 1 - m_HapticSelectExitIntensity: 0.5 - m_HapticSelectExitDuration: 0.1 + m_AllowHoverAudioWhileSelecting: 0 + 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: 1 - m_HapticHoverEnterIntensity: 0.25 - m_HapticHoverEnterDuration: 0.1 - m_PlayHapticsOnHoverExited: 1 - m_HapticHoverExitIntensity: 0.25 - m_HapticHoverExitDuration: 0.1 + 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_AllowHoverHapticsWhileSelecting: 0 m_LineType: 1 m_BlendVisualLinePoints: 1 m_MaxRaycastDistance: 30 @@ -142,19 +188,19 @@ MonoBehaviour: m_Bits: 2147483681 m_RaycastTriggerInteraction: 1 m_RaycastSnapVolumeInteraction: 1 - m_HitClosestOnly: 0 + m_HitClosestOnly: 1 m_HoverToSelect: 0 m_HoverTimeToSelect: 0.5 m_AutoDeselect: 0 m_TimeToAutoDeselect: 1 m_EnableUIInteraction: 0 m_BlockUIOnInteractableSelection: 1 - m_AllowAnchorControl: 1 + m_ManipulateAttachTransform: 1 m_UseForceGrab: 0 m_RotateSpeed: 180 m_TranslateSpeed: 0 - m_AnchorRotateReferenceFrame: {fileID: 0} - m_AnchorRotationMode: 1 + m_RotateReferenceFrame: {fileID: 0} + m_RotateMode: 1 m_UIHoverEntered: m_PersistentCalls: m_Calls: [] @@ -165,6 +211,148 @@ MonoBehaviour: m_OccludeARHitsWith3DObjects: 0 m_OccludeARHitsWith2DObjects: 0 m_ScaleMode: 0 + m_UIPressInput: + m_InputSourceMode: 0 + m_InputActionPerformed: + m_Name: UI Press + m_Type: 1 + m_ExpectedControlType: + m_Id: 54867c8e-3650-4605-a53c-ee8ffb351dcf + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionValue: + m_Name: UI Press Value + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: 257d8673-0295-4ff5-b278-e63d20cd918b + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReferencePerformed: {fileID: 0} + m_InputActionReferenceValue: {fileID: 0} + m_ObjectReferenceObject: {fileID: 0} + m_ManualPerformed: 0 + m_ManualValue: 0 + m_ManualQueuePerformed: 0 + m_ManualQueueWasPerformedThisFrame: 0 + m_ManualQueueValue: 0 + m_ManualQueueTargetFrame: 0 + m_UIScrollInput: + m_InputSourceMode: 0 + m_InputAction: + m_Name: UI Scroll + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: 8c6b1aac-a242-4bf4-a5b3-bfad6e83b638 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReference: {fileID: 0} + m_ObjectReferenceObject: {fileID: 0} + m_ManualValue: {x: 0, y: 0} + m_TranslateManipulationInput: + m_InputSourceMode: 0 + m_InputAction: + m_Name: Translate Manipulation + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: 0f9fd0ee-650d-41a6-ab30-2a036c425c21 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReference: {fileID: 0} + m_ObjectReferenceObject: {fileID: 0} + m_ManualValue: {x: 0, y: 0} + m_RotateManipulationInput: + m_InputSourceMode: 2 + m_InputAction: + m_Name: Rotate Manipulation + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: cadca2d2-f642-4efc-a222-c1827be3e896 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReference: {fileID: 0} + m_ObjectReferenceObject: {fileID: 0} + m_ManualValue: {x: 0, y: 0} + m_DirectionalManipulationInput: + m_InputSourceMode: 2 + m_InputAction: + m_Name: Directional Manipulation + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: 472cbca3-7add-47a9-a5fc-73d3d10107aa + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReference: {fileID: 0} + m_ObjectReferenceObject: {fileID: 0} + m_ManualValue: {x: 0, y: 0} + m_ScaleToggleInput: + m_InputSourceMode: 0 + m_InputActionPerformed: + m_Name: Scale Toggle + m_Type: 1 + m_ExpectedControlType: + m_Id: 692a9304-a2fd-4dbd-9e2f-2fb4b6154f1c + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionValue: + m_Name: Scale Toggle Value + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: d0cf082b-f2d7-4100-b069-651cf2820425 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReferencePerformed: {fileID: 0} + m_InputActionReferenceValue: {fileID: 0} + m_ObjectReferenceObject: {fileID: 0} + m_ManualPerformed: 0 + m_ManualValue: 0 + m_ManualQueuePerformed: 0 + m_ManualQueueWasPerformedThisFrame: 0 + m_ManualQueueValue: 0 + m_ManualQueueTargetFrame: 0 + m_ScaleOverTimeInput: + m_InputSourceMode: 0 + m_InputAction: + m_Name: Scale Over Time + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: 6f835f0d-f1c2-461c-b8bc-edc587e89149 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReference: {fileID: 0} + m_ObjectReferenceObject: {fileID: 0} + m_ManualValue: {x: 0, y: 0} + m_ScaleDistanceDeltaInput: + m_InputSourceMode: 0 + m_InputAction: + m_Name: Scale Distance Delta + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: 9140e1d5-f197-46d4-88c2-a02441edeac5 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReference: {fileID: 0} + m_ObjectReferenceObject: {fileID: 0} + m_ManualValue: 0 --- !u!120 &2761784063978902504 LineRenderer: m_ObjectHideFlags: 0 @@ -318,8 +506,8 @@ MonoBehaviour: m_SetLineColorGradient: 1 m_ValidColorGradient: serializedVersion: 2 - key0: {r: 0.1999999, g: 1, b: 0, a: 1} - key1: {r: 1, g: 1, b: 1, a: 1} + key0: {r: 0.1254902, g: 0.5882353, b: 0.9529412, a: 0.5882353} + key1: {r: 0.1254902, g: 0.5882353, b: 0.9529412, a: 0.5882353} 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} @@ -347,8 +535,8 @@ MonoBehaviour: m_NumAlphaKeys: 2 m_InvalidColorGradient: serializedVersion: 2 - key0: {r: 1, g: 0, b: 0, a: 1} - key1: {r: 1, g: 0, b: 0, a: 1} + key0: {r: 1, g: 0, b: 0, a: 0.5882353} + key1: {r: 1, g: 0, b: 0, a: 0.5882353} 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} @@ -427,3 +615,48 @@ SortingGroup: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 30005 +--- !u!114 &3616344554909481683 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2761784063978902507} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dd0b9921bce4eeb49bd05815b1135ac2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractorSourceObject: {fileID: 2761784063978902503} + m_HapticImpulsePlayer: {fileID: 0} + m_PlaySelectEntered: 1 + m_SelectEnteredData: + m_Amplitude: 0.5 + m_Duration: 0.1 + m_Frequency: 0 + m_PlaySelectExited: 0 + m_SelectExitedData: + m_Amplitude: 0.5 + m_Duration: 0.1 + m_Frequency: 0 + m_PlaySelectCanceled: 0 + m_SelectCanceledData: + m_Amplitude: 0.5 + m_Duration: 0.1 + m_Frequency: 0 + m_PlayHoverEntered: 1 + m_HoverEnteredData: + m_Amplitude: 0.25 + m_Duration: 0.1 + m_Frequency: 0 + m_PlayHoverExited: 0 + m_HoverExitedData: + m_Amplitude: 0.25 + m_Duration: 0.1 + m_Frequency: 0 + m_PlayHoverCanceled: 0 + m_HoverCanceledData: + m_Amplitude: 0.25 + m_Duration: 0.1 + m_Frequency: 0 + m_AllowHoverHapticsWhileSelecting: 1 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Interactors/Teleport Interactor.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Teleport Interactor.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Interactors/Teleport Interactor.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Interactors/Teleport Interactor.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Teleport.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Teleport.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Teleport.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Teleport.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Teleport/Blocking Teleport Reticle.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Teleport/Blocking Teleport Reticle.prefab similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Teleport/Blocking Teleport Reticle.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Teleport/Blocking Teleport Reticle.prefab diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Teleport/Blocking Teleport Reticle.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Teleport/Blocking Teleport Reticle.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Teleport/Blocking Teleport Reticle.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Teleport/Blocking Teleport Reticle.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Teleport/Climb Teleport Arrow.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Teleport/Climb Teleport Arrow.prefab new file mode 100644 index 00000000..31575b2d --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Teleport/Climb Teleport Arrow.prefab @@ -0,0 +1,342 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1012474302365061065 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8934229655344817645} + - component: {fileID: 5962201224213111797} + - component: {fileID: 4425444026892826216} + m_Layer: 5 + m_Name: LegibilityMask + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8934229655344817645 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1012474302365061065} + 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: 675172513429724377} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5962201224213111797 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1012474302365061065} + m_CullTransparentMesh: 1 +--- !u!114 &4425444026892826216 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1012474302365061065} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 6f3d696f7c3365846b6dc2402afb3d3e, type: 2} + m_Color: {r: 0, g: 0, b: 0, a: 0.7490196} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: a85d80c1edb5d2f458d42e79f78055b9, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &2381863983095932316 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 675172513429724377} + - component: {fileID: 3525437950293334695} + - component: {fileID: 6685223427317928156} + - component: {fileID: 6603494849455392037} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &675172513429724377 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2381863983095932316} + m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.01, y: 0.01, z: 0.01} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 8934229655344817645} + - {fileID: 625181587466419018} + m_Father: {fileID: 4241918020790837401} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 50, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!223 &3525437950293334695 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2381863983095932316} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &6685223427317928156 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2381863983095932316} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!114 &6603494849455392037 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2381863983095932316} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!1 &4664704153202512397 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 625181587466419018} + - component: {fileID: 5426692648920724456} + - component: {fileID: 4346818701845822207} + m_Layer: 5 + m_Name: ArrowImage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &625181587466419018 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4664704153202512397} + m_LocalRotation: {x: 0, y: 0, z: 0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 675172513429724377} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5426692648920724456 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4664704153202512397} + m_CullTransparentMesh: 1 +--- !u!114 &4346818701845822207 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4664704153202512397} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 6f3d696f7c3365846b6dc2402afb3d3e, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: f8ecc54972abacc46a93f671b0602139, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &5212361887338514247 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2012181715459153768} + - component: {fileID: 3190360804220159386} + m_Layer: 0 + m_Name: Climb Teleport Arrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2012181715459153768 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5212361887338514247} + 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: 4241918020790837401} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!95 &3190360804220159386 +Animator: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5212361887338514247} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: db6239f7ccb29ca4aac63126c6a35e7d, 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 &6551041024203653996 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4241918020790837401} + m_Layer: 0 + m_Name: Arrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4241918020790837401 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6551041024203653996} + 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: 675172513429724377} + m_Father: {fileID: 2012181715459153768} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Teleport/Climb Teleport Arrow.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Teleport/Climb Teleport Arrow.prefab.meta new file mode 100644 index 00000000..a83e5fd0 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Teleport/Climb Teleport Arrow.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ae1968658b9687b47976fe86c062168f +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Teleport/Directional Teleport Reticle.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Teleport/Directional Teleport Reticle.prefab new file mode 100644 index 00000000..cf1a77b4 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Teleport/Directional Teleport Reticle.prefab @@ -0,0 +1,184 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &267897047611828928 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4559510824621843958} + - component: {fileID: 3945107309013936975} + - component: {fileID: 20787158971208101} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4559510824621843958 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 267897047611828928} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.025, y: 0.025, z: 0.025} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 8568544637412148623} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &3945107309013936975 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 267897047611828928} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &20787158971208101 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 267897047611828928} + 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: 91ff3830fc4055a4fb0d0d2be32101a7, 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!1 &8748868027195207512 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8568544637412148623} + m_Layer: 0 + m_Name: Directional Teleport Reticle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8568544637412148623 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8748868027195207512} + 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: 4310739026852207495} + - {fileID: 4559510824621843958} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &4348343308092521580 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8568544637412148623} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 27b7629e54b332449bfa3a4065ffe17a, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 27b7629e54b332449bfa3a4065ffe17a, type: 3} + propertyPath: m_LocalPosition.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 27b7629e54b332449bfa3a4065ffe17a, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 27b7629e54b332449bfa3a4065ffe17a, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 27b7629e54b332449bfa3a4065ffe17a, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 27b7629e54b332449bfa3a4065ffe17a, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 27b7629e54b332449bfa3a4065ffe17a, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 27b7629e54b332449bfa3a4065ffe17a, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 27b7629e54b332449bfa3a4065ffe17a, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 27b7629e54b332449bfa3a4065ffe17a, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 27b7629e54b332449bfa3a4065ffe17a, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -7511558181221131132, guid: 27b7629e54b332449bfa3a4065ffe17a, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: fd3c5d8fce991e04f9c11109dde95b3b, type: 2} + - target: {fileID: 919132149155446097, guid: 27b7629e54b332449bfa3a4065ffe17a, type: 3} + propertyPath: m_Name + value: BlinkVisual + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 27b7629e54b332449bfa3a4065ffe17a, type: 3} +--- !u!4 &4310739026852207495 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 27b7629e54b332449bfa3a4065ffe17a, type: 3} + m_PrefabInstance: {fileID: 4348343308092521580} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Teleport/Directional Teleport Reticle.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Teleport/Directional Teleport Reticle.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/Teleport/Directional Teleport Reticle.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/Teleport/Directional Teleport Reticle.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/XR Origin (XR Rig).prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/XR Origin (XR Rig).prefab similarity index 62% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/XR Origin (XR Rig).prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/XR Origin (XR Rig).prefab index 2c1baf44..d2188a9e 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/XR Origin (XR Rig).prefab +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/XR Origin (XR Rig).prefab @@ -10,8 +10,9 @@ GameObject: m_Component: - component: {fileID: 202364688} - component: {fileID: 4778211696441940833} - - component: {fileID: 202364692} - component: {fileID: 942810691211101373} + - component: {fileID: 5967689310316253315} + - component: {fileID: 6693052528577237899} m_Layer: 0 m_Name: Left Controller m_TagString: Untagged @@ -32,9 +33,9 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1666320186578454293} - - {fileID: 9013359448673381486} - - {fileID: 3881409846907809176} + - {fileID: 1543070802843469984} - {fileID: 1319746309} + - {fileID: 8366379412631108205} m_Father: {fileID: 1680501587} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -50,11 +51,10 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: f9ac216f0eb04754b1d938aac6380b31, type: 3} m_Name: m_EditorClassIdentifier: - m_ManipulationInteractionGroup: {fileID: 942810691211101373} - m_DirectInteractor: {fileID: 2434299456458490401} - m_RayInteractor: {fileID: 285389467476424711} + m_RayInteractor: {fileID: 0} + m_NearFarInteractor: {fileID: 8877177980677234388} m_TeleportInteractor: {fileID: 1319746312} - m_TeleportModeActivate: {fileID: 1263111715868034790, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_TeleportMode: {fileID: 1263111715868034790, guid: c348712bda248c246b8c49b3db54643f, type: 3} m_TeleportModeCancel: {fileID: 737890489006591557, guid: c348712bda248c246b8c49b3db54643f, type: 3} m_Turn: {fileID: 1010738217276881514, guid: c348712bda248c246b8c49b3db54643f, type: 3} m_SnapTurn: {fileID: -7374733323251553461, guid: c348712bda248c246b8c49b3db54643f, type: 3} @@ -62,249 +62,11 @@ MonoBehaviour: m_UIScroll: {fileID: 2464016903823916871, guid: c348712bda248c246b8c49b3db54643f, type: 3} m_SmoothMotionEnabled: 1 m_SmoothTurnEnabled: 0 + m_NearFarEnableTeleportDuringNearInteraction: 1 m_UIScrollingEnabled: 1 m_RayInteractorChanged: m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 3752199730057449385} - m_TargetAssemblyTypeName: UnityEngine.XR.Interaction.Toolkit.Inputs.XRTransformStabilizer, - Unity.XR.Interaction.Toolkit - m_MethodName: set_aimTarget - m_Mode: 0 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!114 &202364692 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 202364687} - 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: 8270855663187062767, guid: 1392f805216c47742996d4742c80721c, type: 3} - m_ModelParent: {fileID: 202364688} - 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: Vector3 - 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_RotationAction: - m_UseReference: 1 - m_Action: - m_Name: Rotation - m_Type: 0 - m_ExpectedControlType: Quaternion - 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_IsTrackedAction: - m_UseReference: 1 - m_Action: - m_Name: Is Tracked - m_Type: 1 - m_ExpectedControlType: Button - m_Id: 22c1da5c-d38f-4253-a25c-fe94205f2ec5 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 1 - m_Reference: {fileID: 840156964685210860, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_TrackingStateAction: - m_UseReference: 1 - m_Action: - m_Name: Tracking State - m_Type: 0 - m_ExpectedControlType: Integer - m_Id: f3874727-df53-4207-8cd4-6248164663d7 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 684395432459739428, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_SelectAction: - m_UseReference: 1 - m_Action: - m_Name: Select - m_Type: 1 - m_ExpectedControlType: Button - 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: Axis - m_Id: e015d020-ed5c-40b6-b968-fa9881521f0e - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 6558622148059887818, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ActivateAction: - m_UseReference: 1 - m_Action: - m_Name: Activate - m_Type: 1 - m_ExpectedControlType: Button - 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: Axis - m_Id: 492aea1c-7d58-4cb0-8e3c-257d2f651c04 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -4289430672226363583, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_UIPressAction: - m_UseReference: 1 - m_Action: - m_Name: UI Press - m_Type: 1 - m_ExpectedControlType: Button - 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: 1 - m_Action: - m_Name: UI Press Action Value - m_Type: 0 - m_ExpectedControlType: Axis - m_Id: 6258f0cd-e000-49ea-b3b6-7c930f12c390 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 71106601250685021, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_UIScrollAction: - m_UseReference: 1 - m_Action: - m_Name: UI Scroll - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: b74fcfe3-d94d-4bf1-960a-364568ffe66b - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 2464016903823916871, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_HapticDeviceAction: - m_UseReference: 1 - m_Action: - m_Name: Haptic Device - m_Type: 2 - m_ExpectedControlType: - 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_RotateAnchorAction: - m_UseReference: 1 - m_Action: - m_Name: Rotate Anchor - m_Type: 0 - m_ExpectedControlType: Vector2 - 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_DirectionalAnchorRotationAction: - m_UseReference: 1 - m_Action: - m_Name: Directional Anchor Rotation - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: 7d323aae-15a7-4c32-a2b9-0653cb108725 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -8811388872089202044, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_TranslateAnchorAction: - m_UseReference: 1 - m_Action: - m_Name: Translate Anchor - m_Type: 0 - m_ExpectedControlType: Vector2 - 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_ScaleToggleAction: - m_UseReference: 1 - m_Action: - m_Name: Scale Toggle - m_Type: 1 - m_ExpectedControlType: - m_Id: a1912586-fdc4-4079-b714-faafc085fd22 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -335775248641796371, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ScaleDeltaAction: - m_UseReference: 1 - m_Action: - m_Name: Scale Delta - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: 61322b52-a380-4dd9-9782-1091163d1509 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -1636515391019944688, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ButtonPressPoint: 0.5 + m_Calls: [] --- !u!114 &942810691211101373 MonoBehaviour: m_ObjectHideFlags: 0 @@ -321,12 +83,106 @@ MonoBehaviour: m_InteractionManager: {fileID: 0} m_StartingGroupMembers: - {fileID: 4343660526480754339} - - {fileID: 2434299456458490401} - - {fileID: 285389467476424711} + - {fileID: 8877177980677234388} m_StartingInteractionOverridesMap: - groupMember: {fileID: 4343660526480754339} overrideGroupMembers: - - {fileID: 2434299456458490401} + - {fileID: 8877177980677234388} +--- !u!114 &5967689310316253315 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202364687} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b734f2bd29eeddd4d85afb0c266228c3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HapticOutput: + m_InputSourceMode: 2 + m_InputAction: + m_Name: Haptic + m_Type: 2 + m_ExpectedControlType: + m_Id: a67d36a7-d7d4-428e-877d-0cad8d4a162f + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReference: {fileID: -8785819595477538065, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_ObjectReferenceObject: {fileID: 0} + m_AmplitudeMultiplier: 1 +--- !u!114 &6693052528577237899 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202364687} + 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: 1 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: Vector3 + m_Id: cd22b81e-c39a-4170-bdbf-33b5a06ea86f + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -2024308242397127297, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_RotationInput: + m_UseReference: 1 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: Quaternion + m_Id: 04fa80c1-7876-441c-8416-c5ea3caea5c4 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 8248158260566104461, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_TrackingStateInput: + m_UseReference: 1 + m_Action: + m_Name: Tracking State + m_Type: 0 + m_ExpectedControlType: Integer + m_Id: fdcc0d62-5cd0-4fcc-8c3a-c07cf6230b7d + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 684395432459739428, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: ddb05e9d-4218-401c-a7a8-003424f4b4fa + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: de98cdb6-b2c4-4d67-af3c-9c8bd60b295a + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 --- !u!1 &1670256624 GameObject: m_ObjectHideFlags: 0 @@ -337,8 +193,9 @@ GameObject: m_Component: - component: {fileID: 1670256625} - component: {fileID: 5663893676086941514} - - component: {fileID: 1670256628} - component: {fileID: 6678509202150728127} + - component: {fileID: 4238984354899526239} + - component: {fileID: 4602308928622519009} m_Layer: 0 m_Name: Right Controller m_TagString: Untagged @@ -359,9 +216,9 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 3954319948395782924} - - {fileID: 1096734238491090331} - - {fileID: 3921468432820449555} + - {fileID: 8393186890254128703} - {fileID: 2449787133337329436} + - {fileID: 6528530117482412838} m_Father: {fileID: 1680501587} m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -377,11 +234,10 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: f9ac216f0eb04754b1d938aac6380b31, type: 3} m_Name: m_EditorClassIdentifier: - m_ManipulationInteractionGroup: {fileID: 6678509202150728127} - m_DirectInteractor: {fileID: 6045481230268494804} - m_RayInteractor: {fileID: 19064736505062540} + m_RayInteractor: {fileID: 0} + m_NearFarInteractor: {fileID: 1883230248363655243} m_TeleportInteractor: {fileID: 2449787133337329425} - m_TeleportModeActivate: {fileID: -8061240218431744966, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_TeleportMode: {fileID: -8061240218431744966, guid: c348712bda248c246b8c49b3db54643f, type: 3} m_TeleportModeCancel: {fileID: 2307464322626738743, guid: c348712bda248c246b8c49b3db54643f, type: 3} m_Turn: {fileID: -6493913391331992944, guid: c348712bda248c246b8c49b3db54643f, type: 3} m_SnapTurn: {fileID: -8525429354371678379, guid: c348712bda248c246b8c49b3db54643f, type: 3} @@ -389,249 +245,11 @@ MonoBehaviour: m_UIScroll: {fileID: -6756787485274679044, guid: c348712bda248c246b8c49b3db54643f, type: 3} m_SmoothMotionEnabled: 0 m_SmoothTurnEnabled: 0 + m_NearFarEnableTeleportDuringNearInteraction: 1 m_UIScrollingEnabled: 1 m_RayInteractorChanged: m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 1801942220539511183} - m_TargetAssemblyTypeName: UnityEngine.XR.Interaction.Toolkit.Inputs.XRTransformStabilizer, - Unity.XR.Interaction.Toolkit - m_MethodName: set_aimTarget - m_Mode: 0 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!114 &1670256628 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1670256624} - 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: 3475118261464492563, guid: 9f3369e30fbd31f4bb596b1a99babe83, type: 3} - m_ModelParent: {fileID: 1670256625} - 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: Vector3 - 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: Quaternion - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 5101698808175986029, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_IsTrackedAction: - m_UseReference: 1 - m_Action: - m_Name: - m_Type: 1 - m_ExpectedControlType: Button - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 1 - m_Reference: {fileID: -7044516463258014562, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_TrackingStateAction: - m_UseReference: 1 - m_Action: - m_Name: Tracking State - m_Type: 0 - m_ExpectedControlType: Integer - m_Id: 008dba4e-870a-43fb-9a1f-1a7bc3ecec0c - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -1277054153949319361, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_SelectAction: - m_UseReference: 1 - m_Action: - m_Name: - m_Type: 1 - m_ExpectedControlType: Button - 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: Axis - m_Id: 6b1e5826-d74e-452e-ab31-5d6eae6f407e - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -1758520528963094988, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ActivateAction: - m_UseReference: 1 - m_Action: - m_Name: - m_Type: 1 - m_ExpectedControlType: Button - 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: Axis - m_Id: 98d3d870-d1c9-4fbe-9790-8d0c2cb9ffc0 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 7904272356298805229, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_UIPressAction: - m_UseReference: 1 - m_Action: - m_Name: - m_Type: 1 - m_ExpectedControlType: Button - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 3279264004350380116, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_UIPressActionValue: - m_UseReference: 1 - m_Action: - m_Name: UI Press Action Value - m_Type: 0 - m_ExpectedControlType: Axis - m_Id: bf4ab5bd-3648-4de6-a1f6-8e879b2612c2 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -5908353012961274365, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_UIScrollAction: - m_UseReference: 1 - m_Action: - m_Name: UI Scroll - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: a6c0ac1e-4065-4abc-ac84-e81172fbfdd4 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -6756787485274679044, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_HapticDeviceAction: - m_UseReference: 1 - m_Action: - m_Name: Haptic Device - m_Type: 2 - 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: Vector2 - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -5913262927076077117, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_DirectionalAnchorRotationAction: - m_UseReference: 1 - m_Action: - m_Name: Directional Anchor Rotation - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: 72b93609-c58e-411b-a958-c221860f8269 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -440298646266941818, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_TranslateAnchorAction: - m_UseReference: 1 - m_Action: - m_Name: - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 875253871413052681, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ScaleToggleAction: - m_UseReference: 1 - m_Action: - m_Name: Scale Toggle - m_Type: 1 - m_ExpectedControlType: - m_Id: 08507162-a3bd-4e4f-9854-0b3051398d03 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -2524354804938687746, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ScaleDeltaAction: - m_UseReference: 1 - m_Action: - m_Name: Scale Delta - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: 65d9ae9e-5581-4b2c-a1f5-2ba0614443e2 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -6447266317303757838, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ButtonPressPoint: 0.5 + m_Calls: [] --- !u!114 &6678509202150728127 MonoBehaviour: m_ObjectHideFlags: 0 @@ -648,12 +266,106 @@ MonoBehaviour: m_InteractionManager: {fileID: 0} m_StartingGroupMembers: - {fileID: 2141651114331267770} - - {fileID: 6045481230268494804} - - {fileID: 19064736505062540} + - {fileID: 1883230248363655243} m_StartingInteractionOverridesMap: - groupMember: {fileID: 2141651114331267770} overrideGroupMembers: - - {fileID: 6045481230268494804} + - {fileID: 1883230248363655243} +--- !u!114 &4238984354899526239 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1670256624} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b734f2bd29eeddd4d85afb0c266228c3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HapticOutput: + m_InputSourceMode: 2 + m_InputAction: + m_Name: Haptic + m_Type: 2 + m_ExpectedControlType: + m_Id: b71b5bb4-1b09-415f-a4df-1476771fcae6 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReference: {fileID: -8222252007134549311, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_ObjectReferenceObject: {fileID: 0} + m_AmplitudeMultiplier: 1 +--- !u!114 &4602308928622519009 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1670256624} + 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: 1 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: Vector3 + m_Id: c21ad7d3-c46f-48ad-99da-097df39312cc + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -3326005586356538449, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_RotationInput: + m_UseReference: 1 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: Quaternion + m_Id: 69f091ba-e646-4189-9296-d68870a4d922 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 5101698808175986029, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_TrackingStateInput: + m_UseReference: 1 + m_Action: + m_Name: Tracking State + m_Type: 0 + m_ExpectedControlType: Integer + m_Id: 05873c58-6d6f-4aea-8e06-78c4544c58dc + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -1277054153949319361, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: e0c62bbd-29f9-48af-967b-21babef9a6a4 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: 303ef588-e0d6-494e-9ceb-2d2edc0eb8e5 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 --- !u!1 &1680501586 GameObject: m_ObjectHideFlags: 0 @@ -922,37 +634,41 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9b1e8c997df241c1a67045eeac79b41b, type: 3} m_Name: m_EditorClassIdentifier: - m_System: {fileID: 1589979491555116479} - m_MoveSpeed: 1 + m_Mediator: {fileID: 6640002710935096923} + m_TransformationPriority: 0 + m_MoveSpeed: 2.5 m_EnableStrafe: 1 m_EnableFly: 0 m_UseGravity: 1 - m_GravityApplicationMode: 0 m_ForwardSource: {fileID: 1767192434} - m_LeftHandMoveAction: - m_UseReference: 1 - m_Action: + m_LeftHandMoveInput: + m_InputSourceMode: 2 + m_InputAction: m_Name: Left Hand Move m_Type: 0 - m_ExpectedControlType: - m_Id: fa65baa9-ca16-4d92-8425-3195462c2aea + m_ExpectedControlType: Vector2 + m_Id: 16c2fabb-fb1c-4a11-94d0-0b1d894b8593 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_InputActionReference: {fileID: 6972639530819350904, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_ObjectReferenceObject: {fileID: 0} + m_ManualValue: {x: 0, y: 0} + m_RightHandMoveInput: + m_InputSourceMode: 2 + m_InputAction: m_Name: Right Hand Move m_Type: 0 - m_ExpectedControlType: - m_Id: 7c956f1d-8187-437c-8dc4-afdbf8424b34 + m_ExpectedControlType: Vector2 + m_Id: af2e3d83-024e-4a1f-8bc1-f97f0b4ae1d5 m_Processors: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 - m_Reference: {fileID: -8198699208435500284, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_InputActionReference: {fileID: -8198699208435500284, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_ObjectReferenceObject: {fileID: 0} + m_ManualValue: {x: 0, y: 0} m_HeadTransform: {fileID: 1767192434} m_LeftControllerTransform: {fileID: 202364688} m_RightControllerTransform: {fileID: 1670256625} @@ -967,8 +683,8 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 8770899961536015614} - - component: {fileID: 6397299583031462443} - - component: {fileID: 3072087220465571386} + - component: {fileID: 7347985736721345035} + - component: {fileID: 6480925242510836759} m_Layer: 2 m_Name: Turn m_TagString: Untagged @@ -991,7 +707,7 @@ Transform: m_Father: {fileID: 6981642495833523204} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &6397299583031462443 +--- !u!114 &7347985736721345035 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1000,40 +716,45 @@ MonoBehaviour: m_GameObject: {fileID: 1470279098769358944} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2213c36610e3b1c4bbf886810ed9db12, type: 3} + m_Script: {fileID: 11500000, guid: e9f365cf844c03449bc8973eead2c3c1, type: 3} m_Name: m_EditorClassIdentifier: - m_System: {fileID: 1589979491555116479} + m_Mediator: {fileID: 6640002710935096923} + m_TransformationPriority: 0 m_TurnAmount: 45 m_DebounceTime: 0.5 m_EnableTurnLeftRight: 1 m_EnableTurnAround: 1 m_DelayTime: 0 - m_LeftHandSnapTurnAction: - m_UseReference: 1 - m_Action: + m_LeftHandTurnInput: + m_InputSourceMode: 2 + m_InputAction: m_Name: Left Hand Snap Turn m_Type: 0 - m_ExpectedControlType: - m_Id: a1d07c24-ca50-422a-a23f-685d9fabf63b + m_ExpectedControlType: Vector2 + m_Id: 536e141d-ee23-4272-b0fd-3984d1655f02 m_Processors: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 - m_Reference: {fileID: -7374733323251553461, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_RightHandSnapTurnAction: - m_UseReference: 1 - m_Action: + m_InputActionReference: {fileID: -7374733323251553461, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_ObjectReferenceObject: {fileID: 0} + m_ManualValue: {x: 0, y: 0} + m_RightHandTurnInput: + m_InputSourceMode: 2 + m_InputAction: m_Name: Right Hand Snap Turn m_Type: 0 - m_ExpectedControlType: - m_Id: a7b54797-6974-4f75-81d0-42b9c15ef1e0 + m_ExpectedControlType: Vector2 + m_Id: b17ca378-4740-48c7-abe1-7f35bce317e9 m_Processors: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 - m_Reference: {fileID: -8525429354371678379, guid: c348712bda248c246b8c49b3db54643f, type: 3} ---- !u!114 &3072087220465571386 + m_InputActionReference: {fileID: -8525429354371678379, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_ObjectReferenceObject: {fileID: 0} + m_ManualValue: {x: 0, y: 0} +--- !u!114 &6480925242510836759 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1042,35 +763,40 @@ MonoBehaviour: m_GameObject: {fileID: 1470279098769358944} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 919e39492806b334982b6b84c90dd927, type: 3} + m_Script: {fileID: 11500000, guid: 75b29b6c6428c984a8a73ffc2d58063b, type: 3} m_Name: m_EditorClassIdentifier: - m_System: {fileID: 1589979491555116479} + m_Mediator: {fileID: 6640002710935096923} + m_TransformationPriority: 0 m_TurnSpeed: 60 - m_LeftHandTurnAction: - m_UseReference: 1 - m_Action: + m_LeftHandTurnInput: + m_InputSourceMode: 2 + m_InputAction: m_Name: Left Hand Turn m_Type: 0 - m_ExpectedControlType: - m_Id: d065cb11-e9f6-4747-a3d4-1c032fc345a0 + m_ExpectedControlType: Vector2 + m_Id: 3610965d-108d-4451-a143-a78d1ee8f9b8 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_InputActionReference: {fileID: 1010738217276881514, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_ObjectReferenceObject: {fileID: 0} + m_ManualValue: {x: 0, y: 0} + m_RightHandTurnInput: + m_InputSourceMode: 2 + m_InputAction: m_Name: Right Hand Turn m_Type: 0 - m_ExpectedControlType: - m_Id: e043a43a-0352-4ee2-ab81-9dafdfb41dc2 + m_ExpectedControlType: Vector2 + m_Id: eeb82678-2af4-4b6c-87fc-621bb707edc5 m_Processors: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 - m_Reference: {fileID: -6493913391331992944, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_InputActionReference: {fileID: -6493913391331992944, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_ObjectReferenceObject: {fileID: 0} + m_ManualValue: {x: 0, y: 0} --- !u!1 &1717954561962503725 GameObject: m_ObjectHideFlags: 0 @@ -1082,7 +808,7 @@ GameObject: - component: {fileID: 1717954561962503726} - component: {fileID: 1178791450436251564} - component: {fileID: 6232745470614056090} - - component: {fileID: 6232745470614056095} + - component: {fileID: 6520291404937146767} - component: {fileID: 5826056641483426609} - component: {fileID: 5033801203051696737} m_Layer: 2 @@ -1144,7 +870,7 @@ CharacterController: m_SkinWidth: 0.08 m_MinMoveDistance: 0.001 m_Center: {x: 0, y: 0.76072, z: 0} ---- !u!114 &6232745470614056095 +--- !u!114 &6520291404937146767 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1153,12 +879,11 @@ MonoBehaviour: m_GameObject: {fileID: 1717954561962503725} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: af6bf904e410ee8479f9093d8830d1f8, type: 3} + m_Script: {fileID: 11500000, guid: 017c5e3933235514c9520e1dace2a4b2, type: 3} m_Name: m_EditorClassIdentifier: - m_LocomotionProvider: {fileID: 153982007679157697} - m_MinHeight: 0 - m_MaxHeight: Infinity + m_ActionAssets: + - {fileID: -944628639613478452, guid: c348712bda248c246b8c49b3db54643f, type: 3} --- !u!114 &5826056641483426609 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1203,11 +928,11 @@ MonoBehaviour: m_FallbackDivergence: 60 m_HideCursorWithNoActiveRays: 1 m_RayInteractors: - - m_Interactor: {fileID: 285389467476424711} + - m_Interactor: {fileID: 0} m_TeleportRay: 0 - m_Interactor: {fileID: 1319746312} m_TeleportRay: 1 - - m_Interactor: {fileID: 19064736505062540} + - m_Interactor: {fileID: 0} m_TeleportRay: 0 - m_Interactor: {fileID: 2449787133337329425} m_TeleportRay: 1 @@ -1290,7 +1015,8 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 01f69dc1cb084aa42b2f2f8cd87bc770, type: 3} m_Name: m_EditorClassIdentifier: - m_System: {fileID: 1589979491555116479} + m_Mediator: {fileID: 6640002710935096923} + m_TransformationPriority: 0 m_DelayTime: 0 --- !u!1 &2626757739553014894 GameObject: @@ -1320,7 +1046,8 @@ Transform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] + m_Children: + - {fileID: 2749926995908329476} m_Father: {fileID: 6981642495833523204} m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -1336,7 +1063,8 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 496880615cd240be960d436c1c8ae570, type: 3} m_Name: m_EditorClassIdentifier: - m_System: {fileID: 1589979491555116479} + m_Mediator: {fileID: 6640002710935096923} + m_TransformationPriority: 0 m_ClimbSettings: m_UseConstant: 1 m_ConstantValue: @@ -1355,7 +1083,7 @@ GameObject: - component: {fileID: 8718302446126152263} - component: {fileID: 1801942220539511183} m_Layer: 0 - m_Name: Right Controller Stabilized + m_Name: Right Controller Teleport Stabilized Origin m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -1389,9 +1117,9 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 64d299502104b064388841ec2adf6def, type: 3} m_Name: m_EditorClassIdentifier: - m_Target: {fileID: 1670256625} - m_AimTargetObject: {fileID: 19064736505062540} - m_UseLocalSpace: 1 + m_Target: {fileID: 5668689709192895336} + m_AimTargetObject: {fileID: 2449787133337329425} + m_UseLocalSpace: 0 m_AngleStabilization: 20 m_PositionStabilization: 0.25 --- !u!1 &3533369827395663398 @@ -1440,7 +1168,8 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 8b94c4c83dec6a94fbaebf543478259e, type: 3} m_Name: m_EditorClassIdentifier: - m_System: {fileID: 1589979491555116479} + m_Mediator: {fileID: 6640002710935096923} + m_TransformationPriority: 0 m_EnableFreeXMovement: 1 m_EnableFreeYMovement: 0 m_EnableFreeZMovement: 1 @@ -1449,6 +1178,35 @@ MonoBehaviour: m_ControllerTransform: {fileID: 202364688} m_EnableMoveWhileSelecting: 0 m_MoveFactor: 1 + m_GrabMoveInput: + m_InputSourceMode: 2 + m_InputActionPerformed: + m_Name: Grab Move + m_Type: 1 + m_ExpectedControlType: + m_Id: 2e9a23ce-d949-4c67-9b12-7a9a35510733 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionValue: + m_Name: Grab Move Value + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: 3680a95b-119c-4eba-b8fe-7e0a362e460b + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReferencePerformed: {fileID: -3742484312079769484, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_InputActionReferenceValue: {fileID: -3742484312079769484, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_ObjectReferenceObject: {fileID: 0} + m_ManualPerformed: 0 + m_ManualValue: 0 + m_ManualQueuePerformed: 0 + m_ManualQueueWasPerformedThisFrame: 0 + m_ManualQueueValue: 0 + m_ManualQueueTargetFrame: 0 m_GrabMoveAction: m_UseReference: 1 m_Action: @@ -1460,7 +1218,7 @@ MonoBehaviour: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 - m_Reference: {fileID: -3742484312079769484, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_Reference: {fileID: 0} --- !u!114 &4083252680172266230 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1473,7 +1231,8 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 8b94c4c83dec6a94fbaebf543478259e, type: 3} m_Name: m_EditorClassIdentifier: - m_System: {fileID: 1589979491555116479} + m_Mediator: {fileID: 6640002710935096923} + m_TransformationPriority: 0 m_EnableFreeXMovement: 1 m_EnableFreeYMovement: 0 m_EnableFreeZMovement: 1 @@ -1482,6 +1241,35 @@ MonoBehaviour: m_ControllerTransform: {fileID: 1670256625} m_EnableMoveWhileSelecting: 0 m_MoveFactor: 1 + m_GrabMoveInput: + m_InputSourceMode: 2 + m_InputActionPerformed: + m_Name: Grab Move + m_Type: 1 + m_ExpectedControlType: + m_Id: 67220c99-f046-4e98-aa6f-d84114cad173 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionValue: + m_Name: Grab Move Value + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: ed114d26-3fbf-41fc-80fa-9675240038c5 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_InputActionReferencePerformed: {fileID: 15759602096507913, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_InputActionReferenceValue: {fileID: 15759602096507913, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_ObjectReferenceObject: {fileID: 0} + m_ManualPerformed: 0 + m_ManualValue: 0 + m_ManualQueuePerformed: 0 + m_ManualQueueWasPerformedThisFrame: 0 + m_ManualQueueValue: 0 + m_ManualQueueTargetFrame: 0 m_GrabMoveAction: m_UseReference: 1 m_Action: @@ -1493,7 +1281,7 @@ MonoBehaviour: m_Interactions: m_SingletonActionBindings: [] m_Flags: 0 - m_Reference: {fileID: 15759602096507913, guid: c348712bda248c246b8c49b3db54643f, type: 3} + m_Reference: {fileID: 0} --- !u!114 &742272467831425975 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1506,7 +1294,8 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 760ff70c1c91bdd45907d0ff0cdcaf7f, type: 3} m_Name: m_EditorClassIdentifier: - m_System: {fileID: 1589979491555116479} + m_Mediator: {fileID: 6640002710935096923} + m_TransformationPriority: 0 m_EnableFreeXMovement: 1 m_EnableFreeYMovement: 0 m_EnableFreeZMovement: 1 @@ -1561,9 +1350,10 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 6981642495833523204} - - component: {fileID: 1589979491555116479} + - component: {fileID: 6640002710935096923} + - component: {fileID: 7399425242140339816} m_Layer: 2 - m_Name: Locomotion System + m_Name: Locomotion m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -1589,7 +1379,7 @@ Transform: m_Father: {fileID: 1717954561962503726} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1589979491555116479 +--- !u!114 &6640002710935096923 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1598,11 +1388,25 @@ MonoBehaviour: m_GameObject: {fileID: 5167925059111895691} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 03a5df2202a8b96488c744be3bd0c33e, type: 3} + m_Script: {fileID: 11500000, guid: 6fa7b4195685c3846be746c74f0ab2f8, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &7399425242140339816 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5167925059111895691} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6a26c941eb8a46f7b6d00416227ab8c0, type: 3} m_Name: m_EditorClassIdentifier: - m_Timeout: 10 m_XROrigin: {fileID: 1178791450436251564} + m_BodyPositionEvaluatorObject: {fileID: 0} + m_ConstrainedBodyManipulatorObject: {fileID: 0} + m_UseCharacterControllerIfExists: 1 --- !u!1 &5563199296126487199 GameObject: m_ObjectHideFlags: 0 @@ -1614,7 +1418,7 @@ GameObject: - component: {fileID: 716906830792148215} - component: {fileID: 3752199730057449385} m_Layer: 0 - m_Name: Left Controller Stabilized + m_Name: Left Controller Teleport Stabilized Origin m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -1648,11 +1452,104 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 64d299502104b064388841ec2adf6def, type: 3} m_Name: m_EditorClassIdentifier: - m_Target: {fileID: 202364688} - m_AimTargetObject: {fileID: 285389467476424711} - m_UseLocalSpace: 1 + m_Target: {fileID: 8022141474358935409} + m_AimTargetObject: {fileID: 1319746312} + m_UseLocalSpace: 0 m_AngleStabilization: 20 m_PositionStabilization: 0.25 +--- !u!1 &5617778599117486727 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2749926995908329476} + - component: {fileID: 758862941726224967} + - component: {fileID: 4375985661701987801} + m_Layer: 2 + m_Name: Climb Teleport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2749926995908329476 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5617778599117486727} + 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: 8418786636219059989} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &758862941726224967 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5617778599117486727} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e3c5f6c9defa4ae9ad41bcc3f8754f86, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 0} + m_InteractionLayers: + m_Bits: 4294967295 + m_Handedness: 0 + m_AttachTransform: {fileID: 0} + 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_ClimbProvider: {fileID: 5739245880472075158} + m_DestinationEvaluationSettings: + m_UseConstant: 1 + m_ConstantValue: + m_EnableDestinationEvaluationDelay: 0 + m_DestinationEvaluationDelayTime: 1 + m_PollForDestinationChange: 1 + m_DestinationPollFrequency: 1 + m_DestinationFilterObject: {fileID: 11400000, guid: 0f906c94e2aa0c3488832acc1db04295, type: 2} + m_Variable: {fileID: 0} +--- !u!114 &4375985661701987801 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5617778599117486727} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e766f86cb7d2461683eb37d8a971fb14, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ClimbTeleportInteractor: {fileID: 758862941726224967} + m_PointerPrefab: {fileID: 5212361887338514247, guid: ae1968658b9687b47976fe86c062168f, type: 3} + m_PointerDistance: 0.3 --- !u!1 &6501755809687671949 GameObject: m_ObjectHideFlags: 0 @@ -1734,6 +1631,68 @@ Transform: m_Father: {fileID: 3595914740002285240} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &494449108016059778 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 202364688} + m_Modifications: + - target: {fileID: 8270855663187062767, guid: 1392f805216c47742996d4742c80721c, type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 8270855663187062767, guid: 1392f805216c47742996d4742c80721c, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8270855663187062767, guid: 1392f805216c47742996d4742c80721c, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8270855663187062767, guid: 1392f805216c47742996d4742c80721c, type: 3} + propertyPath: m_LocalPosition.z + value: -0.05 + objectReference: {fileID: 0} + - target: {fileID: 8270855663187062767, guid: 1392f805216c47742996d4742c80721c, type: 3} + propertyPath: m_LocalRotation.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8270855663187062767, guid: 1392f805216c47742996d4742c80721c, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8270855663187062767, guid: 1392f805216c47742996d4742c80721c, type: 3} + propertyPath: m_LocalRotation.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8270855663187062767, guid: 1392f805216c47742996d4742c80721c, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8270855663187062767, guid: 1392f805216c47742996d4742c80721c, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8270855663187062767, guid: 1392f805216c47742996d4742c80721c, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8270855663187062767, guid: 1392f805216c47742996d4742c80721c, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8758423527188247893, guid: 1392f805216c47742996d4742c80721c, type: 3} + propertyPath: m_Name + value: Left Controller Visual + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 1392f805216c47742996d4742c80721c, type: 3} +--- !u!4 &8366379412631108205 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8270855663187062767, guid: 1392f805216c47742996d4742c80721c, type: 3} + m_PrefabInstance: {fileID: 494449108016059778} + m_PrefabAsset: {fileID: 0} --- !u!1001 &553018692727262454 PrefabInstance: m_ObjectHideFlags: 0 @@ -1741,6 +1700,10 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 1670256625} m_Modifications: + - target: {fileID: 2761784063978902503, guid: c1800acf6366418a9b5f610249000331, type: 3} + propertyPath: m_Handedness + value: 2 + objectReference: {fileID: 0} - target: {fileID: 2761784063978902503, guid: c1800acf6366418a9b5f610249000331, type: 3} propertyPath: m_AttachTransform value: @@ -1749,6 +1712,42 @@ PrefabInstance: propertyPath: m_RayOriginTransform value: objectReference: {fileID: 8718302446126152263} + - target: {fileID: 2761784063978902503, guid: c1800acf6366418a9b5f610249000331, type: 3} + propertyPath: m_RaycastMask.m_Bits + value: 2147483681 + objectReference: {fileID: 0} + - target: {fileID: 2761784063978902503, guid: c1800acf6366418a9b5f610249000331, type: 3} + propertyPath: m_SelectInput.m_InputActionReferenceValue + value: + objectReference: {fileID: -8061240218431744966, guid: c348712bda248c246b8c49b3db54643f, type: 3} + - target: {fileID: 2761784063978902503, guid: c1800acf6366418a9b5f610249000331, type: 3} + propertyPath: m_RotateAnchorInput.m_InputActionReference + value: + objectReference: {fileID: -5913262927076077117, guid: c348712bda248c246b8c49b3db54643f, type: 3} + - target: {fileID: 2761784063978902503, guid: c1800acf6366418a9b5f610249000331, type: 3} + propertyPath: m_ActivateInput.m_InputActionReferenceValue + value: + objectReference: {fileID: 7904272356298805229, guid: c348712bda248c246b8c49b3db54643f, type: 3} + - target: {fileID: 2761784063978902503, guid: c1800acf6366418a9b5f610249000331, type: 3} + propertyPath: m_SelectInput.m_InputActionReferencePerformed + value: + objectReference: {fileID: -8061240218431744966, guid: c348712bda248c246b8c49b3db54643f, type: 3} + - target: {fileID: 2761784063978902503, guid: c1800acf6366418a9b5f610249000331, type: 3} + propertyPath: m_ActivateInput.m_InputActionReferencePerformed + value: + objectReference: {fileID: 83097790271614945, guid: c348712bda248c246b8c49b3db54643f, type: 3} + - target: {fileID: 2761784063978902503, guid: c1800acf6366418a9b5f610249000331, type: 3} + propertyPath: m_DirectionalAnchorInput.m_InputActionReference + value: + objectReference: {fileID: -440298646266941818, guid: c348712bda248c246b8c49b3db54643f, type: 3} + - target: {fileID: 2761784063978902503, guid: c1800acf6366418a9b5f610249000331, type: 3} + propertyPath: m_RotateManipulationInput.m_InputActionReference + value: + objectReference: {fileID: -5913262927076077117, guid: c348712bda248c246b8c49b3db54643f, type: 3} + - target: {fileID: 2761784063978902503, guid: c1800acf6366418a9b5f610249000331, type: 3} + propertyPath: m_DirectionalManipulationInput.m_InputActionReference + value: + objectReference: {fileID: -440298646266941818, guid: c348712bda248c246b8c49b3db54643f, type: 3} - target: {fileID: 2761784063978902504, guid: c1800acf6366418a9b5f610249000331, type: 3} propertyPath: m_Parameters.numCapVertices value: 4 @@ -1764,10 +1763,10 @@ PrefabInstance: - target: {fileID: 2761784063978902505, guid: c1800acf6366418a9b5f610249000331, type: 3} propertyPath: m_LineOriginTransform value: - objectReference: {fileID: 1670256625} + objectReference: {fileID: 5668689709192895336} - target: {fileID: 2761784063978902506, guid: c1800acf6366418a9b5f610249000331, type: 3} propertyPath: m_RootOrder - value: 3 + value: 2 objectReference: {fileID: 0} - target: {fileID: 2761784063978902506, guid: c1800acf6366418a9b5f610249000331, type: 3} propertyPath: m_LocalPosition.x @@ -1813,6 +1812,10 @@ PrefabInstance: propertyPath: m_Name value: Teleport Interactor objectReference: {fileID: 0} + - target: {fileID: 3616344554909481683, guid: c1800acf6366418a9b5f610249000331, type: 3} + propertyPath: m_HapticImpulsePlayer + value: + objectReference: {fileID: 4238984354899526239} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: c1800acf6366418a9b5f610249000331, type: 3} --- !u!114 &2449787133337329425 stripped @@ -1820,7 +1823,7 @@ MonoBehaviour: m_CorrespondingSourceObject: {fileID: 2761784063978902503, guid: c1800acf6366418a9b5f610249000331, type: 3} m_PrefabInstance: {fileID: 553018692727262454} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2449787133337329437} + m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 6803edce0201f574f923fd9d10e5b30a, type: 3} @@ -1831,237 +1834,6 @@ Transform: m_CorrespondingSourceObject: {fileID: 2761784063978902506, guid: c1800acf6366418a9b5f610249000331, type: 3} m_PrefabInstance: {fileID: 553018692727262454} m_PrefabAsset: {fileID: 0} ---- !u!1 &2449787133337329437 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 2761784063978902507, guid: c1800acf6366418a9b5f610249000331, type: 3} - m_PrefabInstance: {fileID: 553018692727262454} - m_PrefabAsset: {fileID: 0} ---- !u!114 &4898442741215327232 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2449787133337329437} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: caff514de9b15ad48ab85dcff5508221, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UpdateTrackingType: 0 - m_EnableInputTracking: 0 - m_EnableInputActions: 1 - m_ModelPrefab: {fileID: 0} - m_ModelParent: {fileID: 0} - 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: Vector3 - m_Id: db83b55c-ddbb-4078-919c-0b0cbc6afe9b - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_RotationAction: - m_UseReference: 1 - m_Action: - m_Name: Rotation - m_Type: 0 - m_ExpectedControlType: Quaternion - m_Id: 934a28ac-b7af-4a72-896e-f98ee8741de7 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_IsTrackedAction: - m_UseReference: 1 - m_Action: - m_Name: Is Tracked - m_Type: 1 - m_ExpectedControlType: Button - m_Id: aa4d4d88-f823-41b6-9d48-77b617f86edd - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 1 - m_Reference: {fileID: 0} - m_TrackingStateAction: - m_UseReference: 1 - m_Action: - m_Name: Tracking State - m_Type: 0 - m_ExpectedControlType: Integer - m_Id: 41ec62b5-77e9-433d-839f-2daf5c703355 - 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: 1 - m_ExpectedControlType: Button - m_Id: 00f93d2a-0364-4d11-90a6-5ef13b9957a8 - 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: Vector2 - m_Id: 27191759-33e4-4f45-a0fd-7623410a9e62 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -8270564778575511633, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ActivateAction: - m_UseReference: 1 - m_Action: - m_Name: Activate - m_Type: 1 - m_ExpectedControlType: Button - m_Id: f4128915-c017-4646-8498-38077fd94651 - 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: Axis - m_Id: a7069e58-5c7c-41cc-b6c2-68810e4a9e99 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 7904272356298805229, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_UIPressAction: - m_UseReference: 1 - m_Action: - m_Name: UI Press - m_Type: 1 - m_ExpectedControlType: Button - m_Id: 90782e27-0ef9-4a5a-a0a0-f5b588d6ff72 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_UIPressActionValue: - m_UseReference: 1 - m_Action: - m_Name: UI Press Action Value - m_Type: 0 - m_ExpectedControlType: Axis - m_Id: c27db6a8-7713-4ef9-9c9d-18b76c3a4c97 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_UIScrollAction: - m_UseReference: 1 - m_Action: - m_Name: UI Scroll - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: e7a23052-7dfc-481a-8bff-2dae62df0f5d - 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: 2 - 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: Rotate Anchor - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: 219ef40d-4838-4ec7-8534-38c5e8e5612d - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -5913262927076077117, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_DirectionalAnchorRotationAction: - m_UseReference: 1 - m_Action: - m_Name: Directional Anchor Rotation - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: 37b7c356-f2e9-47c7-ba4c-34757c8b8df8 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -440298646266941818, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_TranslateAnchorAction: - m_UseReference: 1 - m_Action: - m_Name: Translate Anchor - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: b1006d10-a3ef-4a91-ae37-8d5547fe6331 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_ScaleToggleAction: - m_UseReference: 1 - m_Action: - m_Name: Scale Toggle - m_Type: 1 - m_ExpectedControlType: - m_Id: 9a064928-c984-4fe4-a3c8-5ac507a62c67 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_ScaleDeltaAction: - m_UseReference: 1 - m_Action: - m_Name: Scale Delta - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: 3e88ad80-3f35-49c8-b51b-bd3b2dac1749 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_ButtonPressPoint: 0.5 --- !u!1001 &2147063422107175346 PrefabInstance: m_ObjectHideFlags: 0 @@ -2113,30 +1885,22 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 1838083765625025125, guid: 27024f5809f4a4347b9cd7f26a1bdf93, type: 3} + propertyPath: m_HapticImpulsePlayer + value: + objectReference: {fileID: 5967689310316253315} + - target: {fileID: 2417358720014700305, guid: 27024f5809f4a4347b9cd7f26a1bdf93, type: 3} + propertyPath: m_Handedness + value: 1 + objectReference: {fileID: 0} - target: {fileID: 4125421792874400280, guid: 27024f5809f4a4347b9cd7f26a1bdf93, type: 3} propertyPath: m_Name value: Poke Interactor objectReference: {fileID: 0} - - target: {fileID: 8259524632637961923, guid: 27024f5809f4a4347b9cd7f26a1bdf93, type: 3} - propertyPath: m_LocalPosition.x - value: -0.005 - objectReference: {fileID: 0} - - target: {fileID: 8259524632637961923, guid: 27024f5809f4a4347b9cd7f26a1bdf93, type: 3} - propertyPath: m_LocalRotation.w - value: 0.9952465 - objectReference: {fileID: 0} - - target: {fileID: 8259524632637961923, guid: 27024f5809f4a4347b9cd7f26a1bdf93, type: 3} - propertyPath: m_LocalRotation.x - value: 0.04345342 - objectReference: {fileID: 0} - - target: {fileID: 8259524632637961923, guid: 27024f5809f4a4347b9cd7f26a1bdf93, type: 3} - propertyPath: m_LocalRotation.y - value: 0.08707283 - objectReference: {fileID: 0} - - target: {fileID: 8259524632637961923, guid: 27024f5809f4a4347b9cd7f26a1bdf93, type: 3} - propertyPath: m_LocalRotation.z - value: -0.0038016832 - objectReference: {fileID: 0} + - target: {fileID: 6102213085606525114, guid: 27024f5809f4a4347b9cd7f26a1bdf93, type: 3} + propertyPath: m_CurveInteractionDataProvider + value: + objectReference: {fileID: 8877177980677234388} - target: {fileID: 8259524632637961923, guid: 27024f5809f4a4347b9cd7f26a1bdf93, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 10 @@ -2159,6 +1923,16 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 0924bcaa9eb50df458a783ae0e2b59f5, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!4 &8022141474358935409 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8259524632637961923, guid: 27024f5809f4a4347b9cd7f26a1bdf93, type: 3} + m_PrefabInstance: {fileID: 2147063422107175346} + m_PrefabAsset: {fileID: 0} +--- !u!137 &9124527054769015467 stripped +SkinnedMeshRenderer: + m_CorrespondingSourceObject: {fileID: 7163876590946616089, guid: 27024f5809f4a4347b9cd7f26a1bdf93, type: 3} + m_PrefabInstance: {fileID: 2147063422107175346} + m_PrefabAsset: {fileID: 0} --- !u!1001 &2761784064811051247 PrefabInstance: m_ObjectHideFlags: 0 @@ -2166,6 +1940,10 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 202364688} m_Modifications: + - target: {fileID: 2761784063978902503, guid: c1800acf6366418a9b5f610249000331, type: 3} + propertyPath: m_Handedness + value: 1 + objectReference: {fileID: 0} - target: {fileID: 2761784063978902503, guid: c1800acf6366418a9b5f610249000331, type: 3} propertyPath: m_AttachTransform value: @@ -2174,6 +1952,38 @@ PrefabInstance: propertyPath: m_RayOriginTransform value: objectReference: {fileID: 716906830792148215} + - target: {fileID: 2761784063978902503, guid: c1800acf6366418a9b5f610249000331, type: 3} + propertyPath: m_SelectInput.m_InputActionReferenceValue + value: + objectReference: {fileID: 1263111715868034790, guid: c348712bda248c246b8c49b3db54643f, type: 3} + - target: {fileID: 2761784063978902503, guid: c1800acf6366418a9b5f610249000331, type: 3} + propertyPath: m_RotateAnchorInput.m_InputActionReference + value: + objectReference: {fileID: -7363382999065477798, guid: c348712bda248c246b8c49b3db54643f, type: 3} + - target: {fileID: 2761784063978902503, guid: c1800acf6366418a9b5f610249000331, type: 3} + propertyPath: m_ActivateInput.m_InputActionReferenceValue + value: + objectReference: {fileID: -4289430672226363583, guid: c348712bda248c246b8c49b3db54643f, type: 3} + - target: {fileID: 2761784063978902503, guid: c1800acf6366418a9b5f610249000331, type: 3} + propertyPath: m_SelectInput.m_InputActionReferencePerformed + value: + objectReference: {fileID: 1263111715868034790, guid: c348712bda248c246b8c49b3db54643f, type: 3} + - target: {fileID: 2761784063978902503, guid: c1800acf6366418a9b5f610249000331, type: 3} + propertyPath: m_ActivateInput.m_InputActionReferencePerformed + value: + objectReference: {fileID: -5982496924579745919, guid: c348712bda248c246b8c49b3db54643f, type: 3} + - target: {fileID: 2761784063978902503, guid: c1800acf6366418a9b5f610249000331, type: 3} + propertyPath: m_DirectionalAnchorInput.m_InputActionReference + value: + objectReference: {fileID: -8811388872089202044, guid: c348712bda248c246b8c49b3db54643f, type: 3} + - target: {fileID: 2761784063978902503, guid: c1800acf6366418a9b5f610249000331, type: 3} + propertyPath: m_RotateManipulationInput.m_InputActionReference + value: + objectReference: {fileID: -7363382999065477798, guid: c348712bda248c246b8c49b3db54643f, type: 3} + - target: {fileID: 2761784063978902503, guid: c1800acf6366418a9b5f610249000331, type: 3} + propertyPath: m_DirectionalManipulationInput.m_InputActionReference + value: + objectReference: {fileID: -8811388872089202044, guid: c348712bda248c246b8c49b3db54643f, type: 3} - target: {fileID: 2761784063978902504, guid: c1800acf6366418a9b5f610249000331, type: 3} propertyPath: m_Parameters.numCapVertices value: 4 @@ -2189,10 +1999,10 @@ PrefabInstance: - target: {fileID: 2761784063978902505, guid: c1800acf6366418a9b5f610249000331, type: 3} propertyPath: m_LineOriginTransform value: - objectReference: {fileID: 202364688} + objectReference: {fileID: 8022141474358935409} - target: {fileID: 2761784063978902506, guid: c1800acf6366418a9b5f610249000331, type: 3} propertyPath: m_RootOrder - value: 3 + value: 2 objectReference: {fileID: 0} - target: {fileID: 2761784063978902506, guid: c1800acf6366418a9b5f610249000331, type: 3} propertyPath: m_LocalPosition.x @@ -2242,239 +2052,12 @@ PrefabInstance: propertyPath: m_IsActive value: 0 objectReference: {fileID: 0} + - target: {fileID: 3616344554909481683, guid: c1800acf6366418a9b5f610249000331, type: 3} + propertyPath: m_HapticImpulsePlayer + value: + objectReference: {fileID: 5967689310316253315} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: c1800acf6366418a9b5f610249000331, type: 3} ---- !u!1 &1319746308 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 2761784063978902507, guid: c1800acf6366418a9b5f610249000331, type: 3} - m_PrefabInstance: {fileID: 2761784064811051247} - m_PrefabAsset: {fileID: 0} ---- !u!114 &3114443105980813935 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1319746308} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: caff514de9b15ad48ab85dcff5508221, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UpdateTrackingType: 0 - m_EnableInputTracking: 0 - m_EnableInputActions: 1 - m_ModelPrefab: {fileID: 0} - m_ModelParent: {fileID: 0} - 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: Vector3 - m_Id: 8b170a9b-132e-486d-947e-6a244d4362ea - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_RotationAction: - m_UseReference: 1 - m_Action: - m_Name: Rotation - m_Type: 0 - m_ExpectedControlType: Quaternion - m_Id: 080819c2-8547-4beb-8522-e6356be16fb1 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_IsTrackedAction: - m_UseReference: 1 - m_Action: - m_Name: Is Tracked - m_Type: 1 - m_ExpectedControlType: Button - m_Id: 3975349d-0575-4146-938e-7c8de713073b - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 1 - m_Reference: {fileID: 0} - m_TrackingStateAction: - m_UseReference: 1 - m_Action: - m_Name: Tracking State - m_Type: 0 - m_ExpectedControlType: Integer - m_Id: 8db27cb3-9369-4e6a-9c66-17df490c89af - 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: 1 - m_ExpectedControlType: Button - m_Id: 8e000d1c-13a4-4cc0-ad37-f2e125874399 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -4084014799535200556, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_SelectActionValue: - m_UseReference: 1 - m_Action: - m_Name: Select Action Value - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: 07d9e458-3e59-4acb-8a8f-2325c5fb0904 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -4084014799535200556, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ActivateAction: - m_UseReference: 1 - m_Action: - m_Name: Activate - m_Type: 1 - m_ExpectedControlType: Button - 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: Axis - m_Id: b99c6f8c-3762-478a-b2d6-882b9175d1bb - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -4289430672226363583, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_UIPressAction: - m_UseReference: 1 - m_Action: - m_Name: UI Press - m_Type: 1 - m_ExpectedControlType: Button - m_Id: db89d01c-df6f-4954-b868-103dd5bdb514 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_UIPressActionValue: - m_UseReference: 1 - m_Action: - m_Name: UI Press Action Value - m_Type: 0 - m_ExpectedControlType: Axis - m_Id: 15e220ae-aa18-4d3d-a3d7-0c505dc649c8 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_UIScrollAction: - m_UseReference: 1 - m_Action: - m_Name: UI Scroll - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: c2cad5a5-b96a-4161-ac52-0781e2861c1e - 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: 2 - m_ExpectedControlType: - 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_RotateAnchorAction: - m_UseReference: 1 - m_Action: - m_Name: Rotate Anchor - m_Type: 0 - m_ExpectedControlType: Vector2 - 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_DirectionalAnchorRotationAction: - m_UseReference: 1 - m_Action: - m_Name: Directional Anchor Rotation - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: 6c0b9ec3-aa4f-4e6a-85ea-7db994c51246 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: -8811388872089202044, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_TranslateAnchorAction: - m_UseReference: 1 - m_Action: - m_Name: Translate Anchor - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: e873605e-6a95-4389-8fbe-39069340ba92 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_ScaleToggleAction: - m_UseReference: 1 - m_Action: - m_Name: Scale Toggle - m_Type: 1 - m_ExpectedControlType: - m_Id: 8ade6c1d-9712-4906-b8c1-b614dad5da11 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_ScaleDeltaAction: - m_UseReference: 1 - m_Action: - m_Name: Scale Delta - m_Type: 0 - m_ExpectedControlType: Vector2 - m_Id: 6317d004-7d4a-4ee3-b309-c53cf4879474 - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_Reference: {fileID: 0} - m_ButtonPressPoint: 0.5 --- !u!4 &1319746309 stripped Transform: m_CorrespondingSourceObject: {fileID: 2761784063978902506, guid: c1800acf6366418a9b5f610249000331, type: 3} @@ -2485,85 +2068,12 @@ MonoBehaviour: m_CorrespondingSourceObject: {fileID: 2761784063978902503, guid: c1800acf6366418a9b5f610249000331, type: 3} m_PrefabInstance: {fileID: 2761784064811051247} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1319746308} + m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 6803edce0201f574f923fd9d10e5b30a, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!1001 &2950107899174535523 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 202364688} - m_Modifications: - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - propertyPath: m_RootOrder - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8841706926471734270, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - propertyPath: m_Name - value: Direct Interactor - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} ---- !u!114 &2434299456458490401 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 664489801923019586, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - m_PrefabInstance: {fileID: 2950107899174535523} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4253f32900bcc4d499d675566142ded0, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!4 &9013359448673381486 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - m_PrefabInstance: {fileID: 2950107899174535523} - m_PrefabAsset: {fileID: 0} --- !u!1001 &4338235989863673259 PrefabInstance: m_ObjectHideFlags: 0 @@ -2615,30 +2125,18 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 1838083765625025125, guid: 27024f5809f4a4347b9cd7f26a1bdf93, type: 3} + propertyPath: m_HapticImpulsePlayer + value: + objectReference: {fileID: 4238984354899526239} + - target: {fileID: 2417358720014700305, guid: 27024f5809f4a4347b9cd7f26a1bdf93, type: 3} + propertyPath: m_Handedness + value: 2 + objectReference: {fileID: 0} - target: {fileID: 4125421792874400280, guid: 27024f5809f4a4347b9cd7f26a1bdf93, type: 3} propertyPath: m_Name value: Poke Interactor objectReference: {fileID: 0} - - target: {fileID: 8259524632637961923, guid: 27024f5809f4a4347b9cd7f26a1bdf93, type: 3} - propertyPath: m_LocalPosition.x - value: 0.005 - objectReference: {fileID: 0} - - target: {fileID: 8259524632637961923, guid: 27024f5809f4a4347b9cd7f26a1bdf93, type: 3} - propertyPath: m_LocalRotation.w - value: 0.9952465 - objectReference: {fileID: 0} - - target: {fileID: 8259524632637961923, guid: 27024f5809f4a4347b9cd7f26a1bdf93, type: 3} - propertyPath: m_LocalRotation.x - value: 0.04345342 - objectReference: {fileID: 0} - - target: {fileID: 8259524632637961923, guid: 27024f5809f4a4347b9cd7f26a1bdf93, type: 3} - propertyPath: m_LocalRotation.y - value: -0.08707283 - objectReference: {fileID: 0} - - target: {fileID: 8259524632637961923, guid: 27024f5809f4a4347b9cd7f26a1bdf93, type: 3} - propertyPath: m_LocalRotation.z - value: 0.0038016832 - objectReference: {fileID: 0} - target: {fileID: 8259524632637961923, guid: 27024f5809f4a4347b9cd7f26a1bdf93, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: -10 @@ -2661,248 +2159,369 @@ Transform: m_CorrespondingSourceObject: {fileID: 780270278251679399, guid: 27024f5809f4a4347b9cd7f26a1bdf93, type: 3} m_PrefabInstance: {fileID: 4338235989863673259} m_PrefabAsset: {fileID: 0} ---- !u!1001 &6547495889434062998 +--- !u!4 &5668689709192895336 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8259524632637961923, guid: 27024f5809f4a4347b9cd7f26a1bdf93, type: 3} + m_PrefabInstance: {fileID: 4338235989863673259} + m_PrefabAsset: {fileID: 0} +--- !u!137 &6872406618466660018 stripped +SkinnedMeshRenderer: + m_CorrespondingSourceObject: {fileID: 7163876590946616089, guid: 27024f5809f4a4347b9cd7f26a1bdf93, type: 3} + m_PrefabInstance: {fileID: 4338235989863673259} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &6385564673524208770 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: m_TransformParent: {fileID: 1670256625} m_Modifications: - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} + - target: {fileID: 2447424620550846319, guid: b200f6587d118224eba8467281481800, type: 3} + propertyPath: m_Name + value: Near-Far Interactor + objectReference: {fileID: 0} + - target: {fileID: 3234853630605623997, guid: b200f6587d118224eba8467281481800, type: 3} propertyPath: m_RootOrder value: 1 objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} + - target: {fileID: 3234853630605623997, guid: b200f6587d118224eba8467281481800, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} + - target: {fileID: 3234853630605623997, guid: b200f6587d118224eba8467281481800, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} + - target: {fileID: 3234853630605623997, guid: b200f6587d118224eba8467281481800, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} + - target: {fileID: 3234853630605623997, guid: b200f6587d118224eba8467281481800, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} + - target: {fileID: 3234853630605623997, guid: b200f6587d118224eba8467281481800, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} + - target: {fileID: 3234853630605623997, guid: b200f6587d118224eba8467281481800, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} + - target: {fileID: 3234853630605623997, guid: b200f6587d118224eba8467281481800, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} + - target: {fileID: 3234853630605623997, guid: b200f6587d118224eba8467281481800, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} + - target: {fileID: 3234853630605623997, guid: b200f6587d118224eba8467281481800, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} + - target: {fileID: 3234853630605623997, guid: b200f6587d118224eba8467281481800, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 8841706926471734270, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - propertyPath: m_Name - value: Direct Interactor - objectReference: {fileID: 0} m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} ---- !u!4 &1096734238491090331 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 6189354538098044173, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - m_PrefabInstance: {fileID: 6547495889434062998} - m_PrefabAsset: {fileID: 0} ---- !u!114 &6045481230268494804 stripped + m_SourcePrefab: {fileID: 100100000, guid: b200f6587d118224eba8467281481800, type: 3} +--- !u!114 &1883230248363655243 stripped MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 664489801923019586, guid: 2fd3e07afe5b461490fb8e314976b1b0, type: 3} - m_PrefabInstance: {fileID: 6547495889434062998} + m_CorrespondingSourceObject: {fileID: 4808866746549998793, guid: b200f6587d118224eba8467281481800, type: 3} + m_PrefabInstance: {fileID: 6385564673524208770} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4253f32900bcc4d499d675566142ded0, type: 3} + m_Script: {fileID: 11500000, guid: 25a07ef133a37d140a87cdf1f1c75fdf, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!1001 &7234066737556534056 +--- !u!4 &8393186890254128703 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3234853630605623997, guid: b200f6587d118224eba8467281481800, type: 3} + m_PrefabInstance: {fileID: 6385564673524208770} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &6545633283681792108 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: m_TransformParent: {fileID: 202364688} m_Modifications: - - target: {fileID: 1787346994484839025, guid: ad818c36731146e994540a1896ad8f24, type: 3} + - target: {fileID: 4804964734930210078, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} propertyPath: m_Name - value: Ray Interactor + value: Near-Far Interactor objectReference: {fileID: 0} - - target: {fileID: 4924506573850889901, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_LineOriginTransform - value: - objectReference: {fileID: 202364688} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} + - target: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} propertyPath: m_RootOrder - value: 2 + value: 1 objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} + - target: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} + - target: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} propertyPath: m_LocalPosition.y - value: -0.02 + value: 0 objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} + - target: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} propertyPath: m_LocalPosition.z - value: -0.035 + value: 0 objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} + - target: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} + - target: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} propertyPath: m_LocalRotation.x - value: -0 + value: 0 objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} + - target: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} propertyPath: m_LocalRotation.y - value: -0 + value: 0 objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} + - target: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} propertyPath: m_LocalRotation.z - value: -0 + value: 0 objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} + - target: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} + - target: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} + - target: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 7462879561657043759, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_AttachTransform - value: - objectReference: {fileID: 5556032914392612086} - - target: {fileID: 7462879561657043759, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_RayOriginTransform - value: - objectReference: {fileID: 716906830792148215} m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: ad818c36731146e994540a1896ad8f24, type: 3} ---- !u!114 &285389467476424711 stripped + m_SourcePrefab: {fileID: 100100000, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} +--- !u!4 &1543070802843469984 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5745700813747042508, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + m_PrefabInstance: {fileID: 6545633283681792108} + m_PrefabAsset: {fileID: 0} +--- !u!114 &8877177980677234388 stripped MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 7462879561657043759, guid: ad818c36731146e994540a1896ad8f24, type: 3} - m_PrefabInstance: {fileID: 7234066737556534056} + m_CorrespondingSourceObject: {fileID: 2442306273320644280, guid: 3df3e1220f2164f448701a6de8084f92, type: 3} + m_PrefabInstance: {fileID: 6545633283681792108} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6803edce0201f574f923fd9d10e5b30a, type: 3} + m_Script: {fileID: 11500000, guid: 25a07ef133a37d140a87cdf1f1c75fdf, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!4 &3881409846907809176 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} - m_PrefabInstance: {fileID: 7234066737556534056} - m_PrefabAsset: {fileID: 0} ---- !u!1001 &7481255429629652899 +--- !u!1001 &6764233457049000944 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1666320186578454293} + m_Modifications: + - target: {fileID: 863512645795027999, guid: bb91fcbcb3cc896468b372b1c762bfab, type: 3} + propertyPath: m_Renderer + value: + objectReference: {fileID: 9124527054769015467} + - target: {fileID: 5964744442239762404, guid: bb91fcbcb3cc896468b372b1c762bfab, type: 3} + propertyPath: m_InteractorSource + value: + objectReference: {fileID: 8877177980677234388} + - target: {fileID: 6212858538863823644, guid: bb91fcbcb3cc896468b372b1c762bfab, type: 3} + propertyPath: m_Renderer + value: + objectReference: {fileID: 9124527054769015467} + - target: {fileID: 6707959385038857591, guid: bb91fcbcb3cc896468b372b1c762bfab, type: 3} + propertyPath: m_InteractorSource + value: + objectReference: {fileID: 4343660526480754339} + - target: {fileID: 7734889806894075718, guid: bb91fcbcb3cc896468b372b1c762bfab, type: 3} + propertyPath: m_Name + value: Poke Point Affordances + objectReference: {fileID: 0} + - target: {fileID: 8849414207674852688, guid: bb91fcbcb3cc896468b372b1c762bfab, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8849414207674852688, guid: bb91fcbcb3cc896468b372b1c762bfab, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8849414207674852688, guid: bb91fcbcb3cc896468b372b1c762bfab, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8849414207674852688, guid: bb91fcbcb3cc896468b372b1c762bfab, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8849414207674852688, guid: bb91fcbcb3cc896468b372b1c762bfab, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8849414207674852688, guid: bb91fcbcb3cc896468b372b1c762bfab, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8849414207674852688, guid: bb91fcbcb3cc896468b372b1c762bfab, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8849414207674852688, guid: bb91fcbcb3cc896468b372b1c762bfab, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8849414207674852688, guid: bb91fcbcb3cc896468b372b1c762bfab, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8849414207674852688, guid: bb91fcbcb3cc896468b372b1c762bfab, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8849414207674852688, guid: bb91fcbcb3cc896468b372b1c762bfab, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: bb91fcbcb3cc896468b372b1c762bfab, type: 3} +--- !u!1001 &7400760887118150798 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3954319948395782924} + m_Modifications: + - target: {fileID: 863512645795027999, guid: bb91fcbcb3cc896468b372b1c762bfab, type: 3} + propertyPath: m_Renderer + value: + objectReference: {fileID: 6872406618466660018} + - target: {fileID: 5964744442239762404, guid: bb91fcbcb3cc896468b372b1c762bfab, type: 3} + propertyPath: m_InteractorSource + value: + objectReference: {fileID: 1883230248363655243} + - target: {fileID: 6212858538863823644, guid: bb91fcbcb3cc896468b372b1c762bfab, type: 3} + propertyPath: m_Renderer + value: + objectReference: {fileID: 6872406618466660018} + - target: {fileID: 6707959385038857591, guid: bb91fcbcb3cc896468b372b1c762bfab, type: 3} + propertyPath: m_InteractorSource + value: + objectReference: {fileID: 2141651114331267770} + - target: {fileID: 7734889806894075718, guid: bb91fcbcb3cc896468b372b1c762bfab, type: 3} + propertyPath: m_Name + value: Poke Point Affordances + objectReference: {fileID: 0} + - target: {fileID: 8849414207674852688, guid: bb91fcbcb3cc896468b372b1c762bfab, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8849414207674852688, guid: bb91fcbcb3cc896468b372b1c762bfab, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8849414207674852688, guid: bb91fcbcb3cc896468b372b1c762bfab, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8849414207674852688, guid: bb91fcbcb3cc896468b372b1c762bfab, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8849414207674852688, guid: bb91fcbcb3cc896468b372b1c762bfab, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8849414207674852688, guid: bb91fcbcb3cc896468b372b1c762bfab, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8849414207674852688, guid: bb91fcbcb3cc896468b372b1c762bfab, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8849414207674852688, guid: bb91fcbcb3cc896468b372b1c762bfab, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8849414207674852688, guid: bb91fcbcb3cc896468b372b1c762bfab, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8849414207674852688, guid: bb91fcbcb3cc896468b372b1c762bfab, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8849414207674852688, guid: bb91fcbcb3cc896468b372b1c762bfab, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: bb91fcbcb3cc896468b372b1c762bfab, type: 3} +--- !u!1001 &7684238452101615925 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: m_TransformParent: {fileID: 1670256625} m_Modifications: - - target: {fileID: 1787346994484839025, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_Name - value: Ray Interactor - objectReference: {fileID: 0} - - target: {fileID: 4924506573850889901, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_LineOriginTransform - value: - objectReference: {fileID: 1670256625} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} + - target: {fileID: 3475118261464492563, guid: 9f3369e30fbd31f4bb596b1a99babe83, type: 3} propertyPath: m_RootOrder - value: 2 + value: 3 objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} + - target: {fileID: 3475118261464492563, guid: 9f3369e30fbd31f4bb596b1a99babe83, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} + - target: {fileID: 3475118261464492563, guid: 9f3369e30fbd31f4bb596b1a99babe83, type: 3} propertyPath: m_LocalPosition.y - value: -0.02 + value: 0 objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} + - target: {fileID: 3475118261464492563, guid: 9f3369e30fbd31f4bb596b1a99babe83, type: 3} propertyPath: m_LocalPosition.z - value: -0.035 + value: -0.05 objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} + - target: {fileID: 3475118261464492563, guid: 9f3369e30fbd31f4bb596b1a99babe83, type: 3} propertyPath: m_LocalRotation.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3475118261464492563, guid: 9f3369e30fbd31f4bb596b1a99babe83, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3475118261464492563, guid: 9f3369e30fbd31f4bb596b1a99babe83, type: 3} + propertyPath: m_LocalRotation.y value: 1 objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} + - target: {fileID: 3475118261464492563, guid: 9f3369e30fbd31f4bb596b1a99babe83, type: 3} propertyPath: m_LocalRotation.z - value: -0 + value: 0 objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} + - target: {fileID: 3475118261464492563, guid: 9f3369e30fbd31f4bb596b1a99babe83, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} + - target: {fileID: 3475118261464492563, guid: 9f3369e30fbd31f4bb596b1a99babe83, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} + - target: {fileID: 3475118261464492563, guid: 9f3369e30fbd31f4bb596b1a99babe83, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 7462879561657043759, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_AttachTransform - value: - objectReference: {fileID: 150171005766949883} - - target: {fileID: 7462879561657043759, guid: ad818c36731146e994540a1896ad8f24, type: 3} - propertyPath: m_RayOriginTransform - value: - objectReference: {fileID: 8718302446126152263} + - target: {fileID: 4283425761326543017, guid: 9f3369e30fbd31f4bb596b1a99babe83, type: 3} + propertyPath: m_Name + value: Right Controller Visual + objectReference: {fileID: 0} m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: ad818c36731146e994540a1896ad8f24, type: 3} ---- !u!114 &19064736505062540 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 7462879561657043759, guid: ad818c36731146e994540a1896ad8f24, type: 3} - m_PrefabInstance: {fileID: 7481255429629652899} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6803edce0201f574f923fd9d10e5b30a, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!4 &3921468432820449555 stripped + m_SourcePrefab: {fileID: 100100000, guid: 9f3369e30fbd31f4bb596b1a99babe83, type: 3} +--- !u!4 &6528530117482412838 stripped Transform: - m_CorrespondingSourceObject: {fileID: 5888765399538998960, guid: ad818c36731146e994540a1896ad8f24, type: 3} - m_PrefabInstance: {fileID: 7481255429629652899} + m_CorrespondingSourceObject: {fileID: 3475118261464492563, guid: 9f3369e30fbd31f4bb596b1a99babe83, type: 3} + m_PrefabInstance: {fileID: 7684238452101615925} m_PrefabAsset: {fileID: 0} --- !u!1001 &8654467957078447927 PrefabInstance: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/XR Origin (XR Rig).prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/XR Origin (XR Rig).prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Prefabs/XR Origin (XR Rig).prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Prefabs/XR Origin (XR Rig).prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Continuous Move.preset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Continuous Move.preset similarity index 54% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Continuous Move.preset rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Continuous Move.preset index f8822a86..a2f723f3 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Continuous Move.preset +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Continuous Move.preset @@ -9,7 +9,7 @@ Preset: m_Name: XRI Default Continuous Move m_TargetType: m_NativeTypeID: 114 - m_ManagedTypePPtr: {fileID: 11500000, guid: 0bf296fc962d7184ab14ad1841598d5f, type: 3} + m_ManagedTypePPtr: {fileID: 11500000, guid: 626a4d6723d6ad24b9aebb811ad5a3dd, type: 3} m_ManagedTypeFallback: m_Properties: - target: {fileID: 0} @@ -25,12 +25,16 @@ Preset: value: objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_System + propertyPath: m_Mediator value: objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_TransformationPriority + value: 0 + objectReference: {fileID: 0} - target: {fileID: 0} propertyPath: m_MoveSpeed - value: 1 + value: 2.5 objectReference: {fileID: 0} - target: {fileID: 0} propertyPath: m_EnableStrafe @@ -44,92 +48,112 @@ Preset: propertyPath: m_UseGravity value: 1 objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_GravityApplicationMode - value: 0 - objectReference: {fileID: 0} - target: {fileID: 0} propertyPath: m_ForwardSource value: objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_LeftHandMoveAction.m_UseReference - value: 1 + propertyPath: m_LeftHandMoveInput.m_InputSourceMode + value: 2 objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_LeftHandMoveAction.m_Action.m_Name + propertyPath: m_LeftHandMoveInput.m_InputAction.m_Name value: Left Hand Move objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_LeftHandMoveAction.m_Action.m_Type + propertyPath: m_LeftHandMoveInput.m_InputAction.m_Type value: 0 objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_LeftHandMoveAction.m_Action.m_ExpectedControlType + propertyPath: m_LeftHandMoveInput.m_InputAction.m_ExpectedControlType value: Vector2 objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_LeftHandMoveAction.m_Action.m_Id - value: 75f1b245-c357-48c8-9acb-8967bec9dda2 + propertyPath: m_LeftHandMoveInput.m_InputAction.m_Id + value: 2c9225f2-be1b-4f69-8acc-007d58b10449 objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_LeftHandMoveAction.m_Action.m_Processors + propertyPath: m_LeftHandMoveInput.m_InputAction.m_Processors value: objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_LeftHandMoveAction.m_Action.m_Interactions + propertyPath: m_LeftHandMoveInput.m_InputAction.m_Interactions value: objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_LeftHandMoveAction.m_Action.m_SingletonActionBindings.Array.size + propertyPath: m_LeftHandMoveInput.m_InputAction.m_SingletonActionBindings.Array.size value: 0 objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_LeftHandMoveAction.m_Action.m_Flags + propertyPath: m_LeftHandMoveInput.m_InputAction.m_Flags value: 0 objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_LeftHandMoveAction.m_Reference + propertyPath: m_LeftHandMoveInput.m_InputActionReference value: objectReference: {fileID: 6972639530819350904, guid: c348712bda248c246b8c49b3db54643f, type: 3} - target: {fileID: 0} - propertyPath: m_RightHandMoveAction.m_UseReference - value: 1 + propertyPath: m_LeftHandMoveInput.m_ObjectReferenceObject + value: objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_RightHandMoveAction.m_Action.m_Name + propertyPath: m_LeftHandMoveInput.m_ManualValue.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_LeftHandMoveInput.m_ManualValue.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_RightHandMoveInput.m_InputSourceMode + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_RightHandMoveInput.m_InputAction.m_Name value: Right Hand Move objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_RightHandMoveAction.m_Action.m_Type + propertyPath: m_RightHandMoveInput.m_InputAction.m_Type value: 0 objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_RightHandMoveAction.m_Action.m_ExpectedControlType + propertyPath: m_RightHandMoveInput.m_InputAction.m_ExpectedControlType value: Vector2 objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_RightHandMoveAction.m_Action.m_Id - value: 6bf6c732-e011-46b1-acc5-b649a4ec5f10 + propertyPath: m_RightHandMoveInput.m_InputAction.m_Id + value: 4e18714b-a6d2-4e88-b89e-4d9aa436967b objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_RightHandMoveAction.m_Action.m_Processors + propertyPath: m_RightHandMoveInput.m_InputAction.m_Processors value: objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_RightHandMoveAction.m_Action.m_Interactions + propertyPath: m_RightHandMoveInput.m_InputAction.m_Interactions value: objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_RightHandMoveAction.m_Action.m_SingletonActionBindings.Array.size + propertyPath: m_RightHandMoveInput.m_InputAction.m_SingletonActionBindings.Array.size value: 0 objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_RightHandMoveAction.m_Action.m_Flags + propertyPath: m_RightHandMoveInput.m_InputAction.m_Flags value: 0 objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_RightHandMoveAction.m_Reference + propertyPath: m_RightHandMoveInput.m_InputActionReference value: objectReference: {fileID: -8198699208435500284, guid: c348712bda248c246b8c49b3db54643f, type: 3} + - target: {fileID: 0} + propertyPath: m_RightHandMoveInput.m_ObjectReferenceObject + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_RightHandMoveInput.m_ManualValue.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_RightHandMoveInput.m_ManualValue.y + value: 0 + objectReference: {fileID: 0} m_ExcludedProperties: [] diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Gaze Controller.preset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Continuous Move.preset.meta similarity index 80% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Gaze Controller.preset.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Continuous Move.preset.meta index 08909ebb..ae0a2a5f 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Gaze Controller.preset.meta +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Continuous Move.preset.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 2e6e6d902741c934ba75a28389d4f66e +guid: 27c5945ad36f6f147bc402250679a228 NativeFormatImporter: externalObjects: {} mainObjectFileID: 2655988077585873504 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Continuous Turn.preset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Continuous Turn.preset new file mode 100644 index 00000000..a6126ced --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Continuous Turn.preset @@ -0,0 +1,143 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!181963792 &2655988077585873504 +Preset: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: XRI Default Continuous Turn + m_TargetType: + m_NativeTypeID: 114 + m_ManagedTypePPtr: {fileID: 11500000, guid: 75b29b6c6428c984a8a73ffc2d58063b, type: 3} + m_ManagedTypeFallback: + m_Properties: + - target: {fileID: 0} + propertyPath: m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_EditorHideFlags + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_EditorClassIdentifier + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_Mediator + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_TransformationPriority + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_TurnSpeed + value: 60 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_LeftHandTurnInput.m_InputSourceMode + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_LeftHandTurnInput.m_InputAction.m_Name + value: Left Hand Turn + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_LeftHandTurnInput.m_InputAction.m_Type + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_LeftHandTurnInput.m_InputAction.m_ExpectedControlType + value: Vector2 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_LeftHandTurnInput.m_InputAction.m_Id + value: 3610965d-108d-4451-a143-a78d1ee8f9b8 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_LeftHandTurnInput.m_InputAction.m_Processors + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_LeftHandTurnInput.m_InputAction.m_Interactions + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_LeftHandTurnInput.m_InputAction.m_SingletonActionBindings.Array.size + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_LeftHandTurnInput.m_InputAction.m_Flags + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_LeftHandTurnInput.m_InputActionReference + value: + objectReference: {fileID: 1010738217276881514, guid: c348712bda248c246b8c49b3db54643f, type: 3} + - target: {fileID: 0} + propertyPath: m_LeftHandTurnInput.m_ObjectReferenceObject + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_LeftHandTurnInput.m_ManualValue.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_LeftHandTurnInput.m_ManualValue.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_RightHandTurnInput.m_InputSourceMode + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_RightHandTurnInput.m_InputAction.m_Name + value: Right Hand Turn + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_RightHandTurnInput.m_InputAction.m_Type + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_RightHandTurnInput.m_InputAction.m_ExpectedControlType + value: Vector2 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_RightHandTurnInput.m_InputAction.m_Id + value: eeb82678-2af4-4b6c-87fc-621bb707edc5 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_RightHandTurnInput.m_InputAction.m_Processors + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_RightHandTurnInput.m_InputAction.m_Interactions + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_RightHandTurnInput.m_InputAction.m_SingletonActionBindings.Array.size + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_RightHandTurnInput.m_InputAction.m_Flags + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_RightHandTurnInput.m_InputActionReference + value: + objectReference: {fileID: -6493913391331992944, guid: c348712bda248c246b8c49b3db54643f, type: 3} + - target: {fileID: 0} + propertyPath: m_RightHandTurnInput.m_ObjectReferenceObject + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_RightHandTurnInput.m_ManualValue.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_RightHandTurnInput.m_ManualValue.y + value: 0 + objectReference: {fileID: 0} + m_ExcludedProperties: [] diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default XR Screen Space Controller.preset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Continuous Turn.preset.meta similarity index 80% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default XR Screen Space Controller.preset.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Continuous Turn.preset.meta index d4bed1f7..1dbdfc1b 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default XR Screen Space Controller.preset.meta +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Continuous Turn.preset.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: d3223012ddb39d24584825882e7ea40b +guid: 735a78fc7c2a98a4e85e0e42bf895f48 NativeFormatImporter: externalObjects: {} mainObjectFileID: 2655988077585873504 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Dynamic Move.preset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Dynamic Move.preset new file mode 100644 index 00000000..186e04a9 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Dynamic Move.preset @@ -0,0 +1,179 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!181963792 &2655988077585873504 +Preset: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: XRI Default Dynamic Move + m_TargetType: + m_NativeTypeID: 114 + m_ManagedTypePPtr: {fileID: 11500000, guid: 9b1e8c997df241c1a67045eeac79b41b, type: 3} + m_ManagedTypeFallback: + m_Properties: + - target: {fileID: 0} + propertyPath: m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_EditorHideFlags + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_EditorClassIdentifier + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_Mediator + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_TransformationPriority + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_MoveSpeed + value: 2.5 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_EnableStrafe + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_EnableFly + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_UseGravity + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_ForwardSource + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_LeftHandMoveInput.m_InputSourceMode + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_LeftHandMoveInput.m_InputAction.m_Name + value: Left Hand Move + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_LeftHandMoveInput.m_InputAction.m_Type + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_LeftHandMoveInput.m_InputAction.m_ExpectedControlType + value: Vector2 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_LeftHandMoveInput.m_InputAction.m_Id + value: 16c2fabb-fb1c-4a11-94d0-0b1d894b8593 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_LeftHandMoveInput.m_InputAction.m_Processors + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_LeftHandMoveInput.m_InputAction.m_Interactions + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_LeftHandMoveInput.m_InputAction.m_SingletonActionBindings.Array.size + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_LeftHandMoveInput.m_InputAction.m_Flags + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_LeftHandMoveInput.m_InputActionReference + value: + objectReference: {fileID: 6972639530819350904, guid: c348712bda248c246b8c49b3db54643f, type: 3} + - target: {fileID: 0} + propertyPath: m_LeftHandMoveInput.m_ObjectReferenceObject + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_LeftHandMoveInput.m_ManualValue.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_LeftHandMoveInput.m_ManualValue.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_RightHandMoveInput.m_InputSourceMode + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_RightHandMoveInput.m_InputAction.m_Name + value: Right Hand Move + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_RightHandMoveInput.m_InputAction.m_Type + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_RightHandMoveInput.m_InputAction.m_ExpectedControlType + value: Vector2 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_RightHandMoveInput.m_InputAction.m_Id + value: af2e3d83-024e-4a1f-8bc1-f97f0b4ae1d5 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_RightHandMoveInput.m_InputAction.m_Processors + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_RightHandMoveInput.m_InputAction.m_Interactions + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_RightHandMoveInput.m_InputAction.m_SingletonActionBindings.Array.size + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_RightHandMoveInput.m_InputAction.m_Flags + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_RightHandMoveInput.m_InputActionReference + value: + objectReference: {fileID: -8198699208435500284, guid: c348712bda248c246b8c49b3db54643f, type: 3} + - target: {fileID: 0} + propertyPath: m_RightHandMoveInput.m_ObjectReferenceObject + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_RightHandMoveInput.m_ManualValue.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_RightHandMoveInput.m_ManualValue.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_HeadTransform + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_LeftControllerTransform + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_RightControllerTransform + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_LeftHandMovementDirection + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_RightHandMovementDirection + value: 0 + objectReference: {fileID: 0} + m_ExcludedProperties: [] diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Dynamic Move.preset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Dynamic Move.preset.meta new file mode 100644 index 00000000..cf1f40fe --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Dynamic Move.preset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: da25954ba1a2e604294f2ccda1d6372c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2655988077585873504 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Left ActionBasedControllerManager.preset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Left Controller InputActionManager.preset similarity index 92% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Left ActionBasedControllerManager.preset rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Left Controller InputActionManager.preset index 5166a013..7153cabc 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Left ActionBasedControllerManager.preset +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Left Controller InputActionManager.preset @@ -6,7 +6,7 @@ Preset: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: XRI Default Left ActionBasedControllerManager + m_Name: XRI Default Left Controller InputActionManager m_TargetType: m_NativeTypeID: 114 m_ManagedTypePPtr: {fileID: 11500000, guid: f9ac216f0eb04754b1d938aac6380b31, type: 3} @@ -24,24 +24,20 @@ Preset: propertyPath: m_EditorClassIdentifier value: objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ManipulationInteractionGroup - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DirectInteractor - value: - objectReference: {fileID: 0} - target: {fileID: 0} propertyPath: m_RayInteractor value: objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_NearFarInteractor + value: + objectReference: {fileID: 0} - target: {fileID: 0} propertyPath: m_TeleportInteractor value: objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_TeleportModeActivate + propertyPath: m_TeleportMode value: objectReference: {fileID: 1263111715868034790, guid: c348712bda248c246b8c49b3db54643f, type: 3} - target: {fileID: 0} @@ -72,6 +68,10 @@ Preset: propertyPath: m_SmoothTurnEnabled value: 0 objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_NearFarEnableTeleportDuringNearInteraction + value: 1 + objectReference: {fileID: 0} - target: {fileID: 0} propertyPath: m_UIScrollingEnabled value: 1 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Left ActionBasedControllerManager.preset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Left Controller InputActionManager.preset.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Left ActionBasedControllerManager.preset.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Left Controller InputActionManager.preset.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Left Grab Move.preset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Left Grab Move.preset new file mode 100644 index 00000000..f88de047 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Left Grab Move.preset @@ -0,0 +1,211 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!181963792 &2655988077585873504 +Preset: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: XRI Default Left Grab Move + m_TargetType: + m_NativeTypeID: 114 + m_ManagedTypePPtr: {fileID: 11500000, guid: 8b94c4c83dec6a94fbaebf543478259e, type: 3} + m_ManagedTypeFallback: + m_Properties: + - target: {fileID: 0} + propertyPath: m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_EditorHideFlags + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_EditorClassIdentifier + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_Mediator + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_TransformationPriority + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_EnableFreeXMovement + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_EnableFreeYMovement + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_EnableFreeZMovement + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_UseGravity + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GravityApplicationMode + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_ControllerTransform + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_EnableMoveWhileSelecting + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_MoveFactor + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputSourceMode + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionPerformed.m_Name + value: Grab Move + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionPerformed.m_Type + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionPerformed.m_ExpectedControlType + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionPerformed.m_Id + value: 2e9a23ce-d949-4c67-9b12-7a9a35510733 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionPerformed.m_Processors + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionPerformed.m_Interactions + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionPerformed.m_SingletonActionBindings.Array.size + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionPerformed.m_Flags + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionValue.m_Name + value: Grab Move Value + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionValue.m_Type + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionValue.m_ExpectedControlType + value: Axis + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionValue.m_Id + value: 3680a95b-119c-4eba-b8fe-7e0a362e460b + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionValue.m_Processors + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionValue.m_Interactions + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionValue.m_SingletonActionBindings.Array.size + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionValue.m_Flags + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionReferencePerformed + value: + objectReference: {fileID: -3742484312079769484, guid: c348712bda248c246b8c49b3db54643f, type: 3} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionReferenceValue + value: + objectReference: {fileID: -3742484312079769484, guid: c348712bda248c246b8c49b3db54643f, type: 3} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_ObjectReferenceObject + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_ManualPerformed + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_ManualValue + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_ManualQueuePerformed + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_ManualQueueWasPerformedThisFrame + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_ManualQueueValue + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_ManualQueueTargetFrame + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveAction.m_UseReference + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveAction.m_Action.m_Name + value: Grab Move + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveAction.m_Action.m_Type + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveAction.m_Action.m_ExpectedControlType + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveAction.m_Action.m_Id + value: 3d33edcf-0043-45cb-95a7-008204badf83 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveAction.m_Action.m_Processors + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveAction.m_Action.m_Interactions + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveAction.m_Action.m_SingletonActionBindings.Array.size + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveAction.m_Action.m_Flags + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveAction.m_Reference + value: + objectReference: {fileID: 0} + m_ExcludedProperties: [] diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Left Grab Move.preset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Left Grab Move.preset.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Left Grab Move.preset.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Left Grab Move.preset.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Right ActionBasedControllerManager.preset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Right Controller InputActionManager.preset similarity index 92% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Right ActionBasedControllerManager.preset rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Right Controller InputActionManager.preset index 2a7a5219..1df76df5 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Right ActionBasedControllerManager.preset +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Right Controller InputActionManager.preset @@ -6,7 +6,7 @@ Preset: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: XRI Default Right ActionBasedControllerManager + m_Name: XRI Default Right Controller InputActionManager m_TargetType: m_NativeTypeID: 114 m_ManagedTypePPtr: {fileID: 11500000, guid: f9ac216f0eb04754b1d938aac6380b31, type: 3} @@ -24,24 +24,20 @@ Preset: propertyPath: m_EditorClassIdentifier value: objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_ManipulationInteractionGroup - value: - objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_DirectInteractor - value: - objectReference: {fileID: 0} - target: {fileID: 0} propertyPath: m_RayInteractor value: objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_NearFarInteractor + value: + objectReference: {fileID: 0} - target: {fileID: 0} propertyPath: m_TeleportInteractor value: objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_TeleportModeActivate + propertyPath: m_TeleportMode value: objectReference: {fileID: -8061240218431744966, guid: c348712bda248c246b8c49b3db54643f, type: 3} - target: {fileID: 0} @@ -72,6 +68,10 @@ Preset: propertyPath: m_SmoothTurnEnabled value: 0 objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_NearFarEnableTeleportDuringNearInteraction + value: 1 + objectReference: {fileID: 0} - target: {fileID: 0} propertyPath: m_UIScrollingEnabled value: 1 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Right ActionBasedControllerManager.preset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Right Controller InputActionManager.preset.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Right ActionBasedControllerManager.preset.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Right Controller InputActionManager.preset.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Right Grab Move.preset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Right Grab Move.preset new file mode 100644 index 00000000..baefee43 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Right Grab Move.preset @@ -0,0 +1,211 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!181963792 &2655988077585873504 +Preset: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: XRI Default Right Grab Move + m_TargetType: + m_NativeTypeID: 114 + m_ManagedTypePPtr: {fileID: 11500000, guid: 8b94c4c83dec6a94fbaebf543478259e, type: 3} + m_ManagedTypeFallback: + m_Properties: + - target: {fileID: 0} + propertyPath: m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_EditorHideFlags + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_EditorClassIdentifier + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_Mediator + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_TransformationPriority + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_EnableFreeXMovement + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_EnableFreeYMovement + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_EnableFreeZMovement + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_UseGravity + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GravityApplicationMode + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_ControllerTransform + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_EnableMoveWhileSelecting + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_MoveFactor + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputSourceMode + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionPerformed.m_Name + value: Grab Move + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionPerformed.m_Type + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionPerformed.m_ExpectedControlType + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionPerformed.m_Id + value: 67220c99-f046-4e98-aa6f-d84114cad173 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionPerformed.m_Processors + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionPerformed.m_Interactions + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionPerformed.m_SingletonActionBindings.Array.size + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionPerformed.m_Flags + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionValue.m_Name + value: Grab Move Value + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionValue.m_Type + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionValue.m_ExpectedControlType + value: Axis + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionValue.m_Id + value: ed114d26-3fbf-41fc-80fa-9675240038c5 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionValue.m_Processors + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionValue.m_Interactions + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionValue.m_SingletonActionBindings.Array.size + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionValue.m_Flags + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionReferencePerformed + value: + objectReference: {fileID: 15759602096507913, guid: c348712bda248c246b8c49b3db54643f, type: 3} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_InputActionReferenceValue + value: + objectReference: {fileID: 15759602096507913, guid: c348712bda248c246b8c49b3db54643f, type: 3} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_ObjectReferenceObject + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_ManualPerformed + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_ManualValue + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_ManualQueuePerformed + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_ManualQueueWasPerformedThisFrame + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_ManualQueueValue + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveInput.m_ManualQueueTargetFrame + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveAction.m_UseReference + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveAction.m_Action.m_Name + value: Grab Move + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveAction.m_Action.m_Type + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveAction.m_Action.m_ExpectedControlType + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveAction.m_Action.m_Id + value: de56d195-bf90-4347-9982-6bf8ffa3420c + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveAction.m_Action.m_Processors + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveAction.m_Action.m_Interactions + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveAction.m_Action.m_SingletonActionBindings.Array.size + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveAction.m_Action.m_Flags + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_GrabMoveAction.m_Reference + value: + objectReference: {fileID: 0} + m_ExcludedProperties: [] diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Right Grab Move.preset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Right Grab Move.preset.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Right Grab Move.preset.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Right Grab Move.preset.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Snap Turn.preset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Snap Turn.preset similarity index 55% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Snap Turn.preset rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Snap Turn.preset index 45ed0f42..d1d91fd0 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Snap Turn.preset +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Snap Turn.preset @@ -9,7 +9,7 @@ Preset: m_Name: XRI Default Snap Turn m_TargetType: m_NativeTypeID: 114 - m_ManagedTypePPtr: {fileID: 11500000, guid: 2213c36610e3b1c4bbf886810ed9db12, type: 3} + m_ManagedTypePPtr: {fileID: 11500000, guid: e9f365cf844c03449bc8973eead2c3c1, type: 3} m_ManagedTypeFallback: m_Properties: - target: {fileID: 0} @@ -25,9 +25,13 @@ Preset: value: objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_System + propertyPath: m_Mediator value: objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_TransformationPriority + value: 0 + objectReference: {fileID: 0} - target: {fileID: 0} propertyPath: m_TurnAmount value: 45 @@ -49,83 +53,107 @@ Preset: value: 0 objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_LeftHandSnapTurnAction.m_UseReference - value: 1 + propertyPath: m_LeftHandTurnInput.m_InputSourceMode + value: 2 objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_LeftHandSnapTurnAction.m_Action.m_Name + propertyPath: m_LeftHandTurnInput.m_InputAction.m_Name value: Left Hand Snap Turn objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_LeftHandSnapTurnAction.m_Action.m_Type + propertyPath: m_LeftHandTurnInput.m_InputAction.m_Type value: 0 objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_LeftHandSnapTurnAction.m_Action.m_ExpectedControlType + propertyPath: m_LeftHandTurnInput.m_InputAction.m_ExpectedControlType value: Vector2 objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_LeftHandSnapTurnAction.m_Action.m_Id - value: a1d07c24-ca50-422a-a23f-685d9fabf63b + propertyPath: m_LeftHandTurnInput.m_InputAction.m_Id + value: 536e141d-ee23-4272-b0fd-3984d1655f02 objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_LeftHandSnapTurnAction.m_Action.m_Processors + propertyPath: m_LeftHandTurnInput.m_InputAction.m_Processors value: objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_LeftHandSnapTurnAction.m_Action.m_Interactions + propertyPath: m_LeftHandTurnInput.m_InputAction.m_Interactions value: objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_LeftHandSnapTurnAction.m_Action.m_SingletonActionBindings.Array.size + propertyPath: m_LeftHandTurnInput.m_InputAction.m_SingletonActionBindings.Array.size value: 0 objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_LeftHandSnapTurnAction.m_Action.m_Flags + propertyPath: m_LeftHandTurnInput.m_InputAction.m_Flags value: 0 objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_LeftHandSnapTurnAction.m_Reference + propertyPath: m_LeftHandTurnInput.m_InputActionReference value: objectReference: {fileID: -7374733323251553461, guid: c348712bda248c246b8c49b3db54643f, type: 3} - target: {fileID: 0} - propertyPath: m_RightHandSnapTurnAction.m_UseReference - value: 1 + propertyPath: m_LeftHandTurnInput.m_ObjectReferenceObject + value: objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_RightHandSnapTurnAction.m_Action.m_Name + propertyPath: m_LeftHandTurnInput.m_ManualValue.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_LeftHandTurnInput.m_ManualValue.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_RightHandTurnInput.m_InputSourceMode + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_RightHandTurnInput.m_InputAction.m_Name value: Right Hand Snap Turn objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_RightHandSnapTurnAction.m_Action.m_Type + propertyPath: m_RightHandTurnInput.m_InputAction.m_Type value: 0 objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_RightHandSnapTurnAction.m_Action.m_ExpectedControlType + propertyPath: m_RightHandTurnInput.m_InputAction.m_ExpectedControlType value: Vector2 objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_RightHandSnapTurnAction.m_Action.m_Id - value: a7b54797-6974-4f75-81d0-42b9c15ef1e0 + propertyPath: m_RightHandTurnInput.m_InputAction.m_Id + value: b17ca378-4740-48c7-abe1-7f35bce317e9 objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_RightHandSnapTurnAction.m_Action.m_Processors + propertyPath: m_RightHandTurnInput.m_InputAction.m_Processors value: objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_RightHandSnapTurnAction.m_Action.m_Interactions + propertyPath: m_RightHandTurnInput.m_InputAction.m_Interactions value: objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_RightHandSnapTurnAction.m_Action.m_SingletonActionBindings.Array.size + propertyPath: m_RightHandTurnInput.m_InputAction.m_SingletonActionBindings.Array.size value: 0 objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_RightHandSnapTurnAction.m_Action.m_Flags + propertyPath: m_RightHandTurnInput.m_InputAction.m_Flags value: 0 objectReference: {fileID: 0} - target: {fileID: 0} - propertyPath: m_RightHandSnapTurnAction.m_Reference + propertyPath: m_RightHandTurnInput.m_InputActionReference value: objectReference: {fileID: -8525429354371678379, guid: c348712bda248c246b8c49b3db54643f, type: 3} + - target: {fileID: 0} + propertyPath: m_RightHandTurnInput.m_ObjectReferenceObject + value: + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_RightHandTurnInput.m_ManualValue.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 0} + propertyPath: m_RightHandTurnInput.m_ManualValue.y + value: 0 + objectReference: {fileID: 0} m_ExcludedProperties: [] diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Snap Turn.preset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Snap Turn.preset.meta similarity index 60% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Snap Turn.preset.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Snap Turn.preset.meta index db247157..ffc05562 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default Snap Turn.preset.meta +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default Snap Turn.preset.meta @@ -1,8 +1,8 @@ fileFormatVersion: 2 -guid: 18697d253d848974aa7052cba872c9f0 +guid: 5d3a60dbf2f04694f9060712df89debb NativeFormatImporter: externalObjects: {} - mainObjectFileID: 0 + mainObjectFileID: 2655988077585873504 userData: assetBundleName: assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default XR UI Input Module.preset b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default XR UI Input Module.preset similarity index 96% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default XR UI Input Module.preset rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default XR UI Input Module.preset index 9cdf9ab0..01f1de67 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default XR UI Input Module.preset +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default XR UI Input Module.preset @@ -46,7 +46,7 @@ Preset: objectReference: {fileID: 0} - target: {fileID: 0} propertyPath: m_TrackedDeviceDragThresholdMultiplier - value: 1.4 + value: 2 objectReference: {fileID: 0} - target: {fileID: 0} propertyPath: m_TrackedScrollDeltaMultiplier @@ -56,10 +56,6 @@ Preset: propertyPath: m_ActiveInputMode value: 1 objectReference: {fileID: 0} - - target: {fileID: 0} - propertyPath: m_MaxTrackedDeviceRaycastDistance - value: 1000 - objectReference: {fileID: 0} - target: {fileID: 0} propertyPath: m_EnableXRInput value: 1 diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default XR UI Input Module.preset.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default XR UI Input Module.preset.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Presets/XRI Default XR UI Input Module.preset.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Presets/XRI Default XR UI Input Module.preset.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Scripts.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Scripts.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/ClimbTeleportDestinationIndicator.cs b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/ClimbTeleportDestinationIndicator.cs new file mode 100644 index 00000000..f64d1561 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/ClimbTeleportDestinationIndicator.cs @@ -0,0 +1,143 @@ +using UnityEngine.XR.Interaction.Toolkit.Locomotion.Climbing; +using UnityEngine.XR.Interaction.Toolkit.Locomotion.Teleportation; +using UnityEngine.XR.Interaction.Toolkit.Utilities; + +namespace UnityEngine.XR.Interaction.Toolkit.Samples.StarterAssets +{ + /// + /// Affordance component used in conjunction with a to display an object + /// pointing at the target teleport destination while climbing. + /// + public class ClimbTeleportDestinationIndicator : MonoBehaviour + { + [SerializeField] + [Tooltip("The interactor that drives the display and placement of the pointer object.")] + ClimbTeleportInteractor m_ClimbTeleportInteractor; + + /// + /// The interactor that drives the display and placement of the pointer object. + /// + public ClimbTeleportInteractor climbTeleportInteractor + { + get => m_ClimbTeleportInteractor; + set => m_ClimbTeleportInteractor = value; + } + + [SerializeField] + [Tooltip("The prefab to spawn when a teleport destination is chosen. The instance will spawn next to the " + + "destination and point its forward vector at the destination and its up vector at the camera.")] + GameObject m_PointerPrefab; + + /// + /// The prefab to spawn when a teleport destination is chosen. The instance will spawn next to the destination + /// and point its forward vector at the destination and its up vector at the camera. + /// + public GameObject pointerPrefab + { + get => m_PointerPrefab; + set => m_PointerPrefab = value; + } + + [SerializeField] + [Tooltip("The distance from the destination at which the pointer object spawns.")] + float m_PointerDistance = 0.3f; + + /// + /// The distance from the destination at which the pointer object spawns. + /// + public float pointerDistance + { + get => m_PointerDistance; + set => m_PointerDistance = value; + } + + TeleportationMultiAnchorVolume m_ActiveTeleportVolume; + Transform m_PointerInstance; + + /// + /// See . + /// + protected void OnEnable() + { + if (m_ClimbTeleportInteractor == null) + { + if (!ComponentLocatorUtility.TryFindComponent(out m_ClimbTeleportInteractor)) + { + Debug.LogError($"Could not find {nameof(ClimbTeleportInteractor)} in scene."); + enabled = false; + return; + } + } + + m_ClimbTeleportInteractor.hoverEntered.AddListener(OnInteractorHoverEntered); + m_ClimbTeleportInteractor.hoverExited.AddListener(OnInteractorHoverExited); + } + + /// + /// See . + /// + protected void OnDisable() + { + HideIndicator(); + + if (m_ActiveTeleportVolume != null) + { + m_ActiveTeleportVolume.destinationAnchorChanged -= OnClimbTeleportDestinationAnchorChanged; + m_ActiveTeleportVolume = null; + } + + if (m_ClimbTeleportInteractor != null) + { + m_ClimbTeleportInteractor.hoverEntered.RemoveListener(OnInteractorHoverEntered); + m_ClimbTeleportInteractor.hoverExited.RemoveListener(OnInteractorHoverExited); + } + } + + void OnInteractorHoverEntered(HoverEnterEventArgs args) + { + if (m_ActiveTeleportVolume != null || !(args.interactableObject is TeleportationMultiAnchorVolume teleportVolume)) + return; + + m_ActiveTeleportVolume = teleportVolume; + if (m_ActiveTeleportVolume.destinationAnchor != null) + OnClimbTeleportDestinationAnchorChanged(m_ActiveTeleportVolume); + + m_ActiveTeleportVolume.destinationAnchorChanged += OnClimbTeleportDestinationAnchorChanged; + } + + void OnInteractorHoverExited(HoverExitEventArgs args) + { + if (!(args.interactableObject is TeleportationMultiAnchorVolume teleportVolume) || teleportVolume != m_ActiveTeleportVolume) + return; + + HideIndicator(); + m_ActiveTeleportVolume.destinationAnchorChanged -= OnClimbTeleportDestinationAnchorChanged; + m_ActiveTeleportVolume = null; + } + + void OnClimbTeleportDestinationAnchorChanged(TeleportationMultiAnchorVolume teleportVolume) + { + HideIndicator(); + + var destinationAnchor = teleportVolume.destinationAnchor; + if (destinationAnchor == null) + return; + + m_PointerInstance = Instantiate(m_PointerPrefab).transform; + var cameraTrans = teleportVolume.teleportationProvider.mediator.xrOrigin.Camera.transform; + var cameraPosition = cameraTrans.position; + var destinationPosition = destinationAnchor.position; + var destinationDirectionInScreenSpace = cameraTrans.InverseTransformDirection(destinationPosition - cameraPosition); + destinationDirectionInScreenSpace.z = 0f; + var pointerDirection = cameraTrans.TransformDirection(destinationDirectionInScreenSpace).normalized; + m_PointerInstance.position = destinationPosition - pointerDirection * m_PointerDistance; + m_PointerInstance.rotation = Quaternion.LookRotation(pointerDirection, -cameraTrans.forward); + } + + void HideIndicator() + { + if (m_PointerInstance != null) + Destroy(m_PointerInstance.gameObject); + } + } +} diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/ClimbTeleportDestinationIndicator.cs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/ClimbTeleportDestinationIndicator.cs.meta new file mode 100644 index 00000000..d9e84f5c --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/ClimbTeleportDestinationIndicator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e766f86cb7d2461683eb37d8a971fb14 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/ControllerAnimator.cs b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/ControllerAnimator.cs new file mode 100644 index 00000000..858f8f24 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/ControllerAnimator.cs @@ -0,0 +1,84 @@ +using UnityEngine.XR.Interaction.Toolkit.Inputs.Readers; + +namespace UnityEngine.XR.Interaction.Toolkit.Samples.StarterAssets +{ + /// + /// Component which reads input values and drives the thumbstick, trigger, and grip transforms + /// to animate a controller model. + /// + public class ControllerAnimator : MonoBehaviour + { + [Header("Thumbstick")] + [SerializeField] + Transform m_ThumbstickTransform; + + [SerializeField] + Vector2 m_StickRotationRange = new Vector2(30f, 30f); + + [SerializeField] + XRInputValueReader m_StickInput = new XRInputValueReader("Thumbstick"); + + [Header("Trigger")] + [SerializeField] + Transform m_TriggerTransform; + + [SerializeField] + Vector2 m_TriggerXAxisRotationRange = new Vector2(0f, -15f); + + [SerializeField] + XRInputValueReader m_TriggerInput = new XRInputValueReader("Trigger"); + + [Header("Grip")] + [SerializeField] + Transform m_GripTransform; + + [SerializeField] + Vector2 m_GripRightRange = new Vector2(-0.0125f, -0.011f); + + [SerializeField] + XRInputValueReader m_GripInput = new XRInputValueReader("Grip"); + + void OnEnable() + { + if (m_ThumbstickTransform == null || m_GripTransform == null || m_TriggerTransform == null) + { + enabled = false; + Debug.LogWarning($"Controller Animator component missing references on {gameObject.name}", this); + return; + } + + m_StickInput?.EnableDirectActionIfModeUsed(); + m_TriggerInput?.EnableDirectActionIfModeUsed(); + m_GripInput?.EnableDirectActionIfModeUsed(); + } + + void OnDisable() + { + m_StickInput?.DisableDirectActionIfModeUsed(); + m_TriggerInput?.DisableDirectActionIfModeUsed(); + m_GripInput?.DisableDirectActionIfModeUsed(); + } + + void Update() + { + if (m_StickInput != null) + { + var stickVal = m_StickInput.ReadValue(); + m_ThumbstickTransform.localRotation = Quaternion.Euler(-stickVal.y * m_StickRotationRange.x, 0f, -stickVal.x * m_StickRotationRange.y); + } + + if (m_TriggerInput != null) + { + var triggerVal = m_TriggerInput.ReadValue(); + m_TriggerTransform.localRotation = Quaternion.Euler(Mathf.Lerp(m_TriggerXAxisRotationRange.x, m_TriggerXAxisRotationRange.y, triggerVal), 0f, 0f); + } + + if (m_GripInput != null) + { + var gripVal = m_GripInput.ReadValue(); + var currentPos = m_GripTransform.localPosition; + m_GripTransform.localPosition = new Vector3(Mathf.Lerp(m_GripRightRange.x, m_GripRightRange.y, gripVal), currentPos.y, currentPos.z); + } + } + } +} diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/ControllerAnimator.cs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/ControllerAnimator.cs.meta new file mode 100644 index 00000000..8215d8e2 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/ControllerAnimator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4a5f76f9ea8c80547973ab01877f9567 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Scripts/ActionBasedControllerManager.cs b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/ControllerInputActionManager.cs similarity index 54% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Scripts/ActionBasedControllerManager.cs rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/ControllerInputActionManager.cs index 5565c684..cf5e0cae 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Scripts/ActionBasedControllerManager.cs +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/ControllerInputActionManager.cs @@ -1,45 +1,44 @@ -using System.Collections; using System.Collections.Generic; +using Unity.XR.CoreUtils.Bindings; using UnityEngine.Events; using UnityEngine.InputSystem; +using UnityEngine.Serialization; +using UnityEngine.XR.Interaction.Toolkit.Interactors; using UnityEngine.XR.Interaction.Toolkit.UI; namespace UnityEngine.XR.Interaction.Toolkit.Samples.StarterAssets { /// - /// Use this class to mediate the controllers and their associated interactors and input actions under different interaction states. + /// Use this class to mediate the interactors for a controller under different interaction states + /// and the input actions used by them. /// - [AddComponentMenu("XR/Action Based Controller Manager")] - [DefaultExecutionOrder(k_UpdateOrder)] - public class ActionBasedControllerManager : MonoBehaviour + /// + /// If the teleport ray input is engaged, the Ray Interactor used for distant manipulation is disabled + /// and the Ray Interactor used for teleportation is enabled. If the Ray Interactor is selecting and it + /// is configured to allow for attach transform manipulation, all locomotion input actions are disabled + /// (teleport ray, move, and turn controls) to prevent input collision with the manipulation inputs used + /// by the ray interactor. + ///
    + /// A typical hierarchy also includes an XR Interaction Group component to mediate between interactors. + /// The interaction group ensures that the Direct and Ray Interactors cannot interact at the same time, + /// with the Direct Interactor taking priority over the Ray Interactor. + ///
    + [AddComponentMenu("XR/Controller Input Action Manager")] + public class ControllerInputActionManager : MonoBehaviour { - /// - /// Order when instances of type are updated. - /// - /// - /// Executes before controller components to ensure input processors can be attached - /// to input actions and/or bindings before the controller component reads the current - /// values of the input actions. - /// - public const int k_UpdateOrder = XRInteractionUpdateOrder.k_Controllers - 1; - [Space] [Header("Interactors")] [SerializeField] - [Tooltip("The GameObject containing the interaction group used for direct and distant manipulation.")] - XRInteractionGroup m_ManipulationInteractionGroup; - - [SerializeField] - [Tooltip("The GameObject containing the interactor used for direct manipulation.")] - XRDirectInteractor m_DirectInteractor; - - [SerializeField] - [Tooltip("The GameObject containing the interactor used for distant/ray manipulation.")] + [Tooltip("The interactor used for distant/ray manipulation. Use this or Near-Far Interactor, not both.")] XRRayInteractor m_RayInteractor; [SerializeField] - [Tooltip("The GameObject containing the interactor used for teleportation.")] + [Tooltip("Near-Far Interactor used for distant/ray manipulation. Use this or Ray Interactor, not both.")] + NearFarInteractor m_NearFarInteractor; + + [SerializeField] + [Tooltip("The interactor used for teleportation.")] XRRayInteractor m_TeleportInteractor; [Space] @@ -47,7 +46,8 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.StarterAssets [SerializeField] [Tooltip("The reference to the action to start the teleport aiming mode for this controller.")] - InputActionReference m_TeleportModeActivate; + [FormerlySerializedAs("m_TeleportModeActivate")] + InputActionReference m_TeleportMode; [SerializeField] [Tooltip("The reference to the action to cancel the teleport aiming mode for this controller.")] @@ -73,22 +73,27 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.StarterAssets [Header("Locomotion Settings")] [SerializeField] - [Tooltip("If true, continuous movement will be enabled. If false, teleport will enabled.")] + [Tooltip("If true, continuous movement will be enabled. If false, teleport will be enabled.")] bool m_SmoothMotionEnabled; - + [SerializeField] [Tooltip("If true, continuous turn will be enabled. If false, snap turn will be enabled. Note: If smooth motion is enabled and enable strafe is enabled on the continuous move provider, turn will be overriden in favor of strafe.")] bool m_SmoothTurnEnabled; + [SerializeField] + [Tooltip("With the Near-Far Interactor, if true, teleport will be enabled during near interaction. If false, teleport will be disabled during near interaction.")] + bool m_NearFarEnableTeleportDuringNearInteraction = true; + [Space] [Header("UI Settings")] [SerializeField] - [Tooltip("If true, UI scrolling will be enabled.")] - bool m_UIScrollingEnabled; + [Tooltip("If true, UI scrolling will be enabled. Locomotion will be disabled when pointing at UI to allow it to be scrolled.")] + bool m_UIScrollingEnabled = true; [Space] [Header("Mediation Events")] + [SerializeField] [Tooltip("Event fired when the active ray interactor changes between interaction and teleport.")] UnityEvent m_RayInteractorChanged; @@ -123,25 +128,22 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.StarterAssets } } + bool m_StartCalled; bool m_PostponedDeactivateTeleport; - bool m_UIScrollModeActive = false; + bool m_HoveringScrollableUI; - const int k_InteractorNotInGroup = -1; + readonly HashSet m_LocomotionUsers = new HashSet(); + readonly BindingsGroup m_BindingsGroup = new BindingsGroup(); - IEnumerator m_AfterInteractionEventsRoutine; - HashSet m_LocomotionUsers = new HashSet(); - - /// - /// Temporary scratch list to populate with the group members of the interaction group. - /// - static readonly List s_GroupMembers = new List(); - - // For our input mediation, we are enforcing a few rules between direct, ray, and teleportation interaction: - // 1. If the Teleportation Ray is engaged, the Ray interactor is disabled - // 2. The interaction group ensures that the Direct and Ray interactors cannot interact at the same time, with the Direct interactor taking priority - // 3. If the Ray interactor is selecting, all locomotion controls are disabled (teleport ray, move, and turn controls) to prevent input collision void SetupInteractorEvents() { + if (m_NearFarInteractor != null) + { + m_NearFarInteractor.uiHoverEntered.AddListener(OnUIHoverEntered); + m_NearFarInteractor.uiHoverExited.AddListener(OnUIHoverExited); + m_BindingsGroup.AddBinding(m_NearFarInteractor.selectionRegion.Subscribe(OnNearFarSelectionRegionChanged)); + } + if (m_RayInteractor != null) { m_RayInteractor.selectEntered.AddListener(OnRaySelectEntered); @@ -150,74 +152,96 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.StarterAssets m_RayInteractor.uiHoverExited.AddListener(OnUIHoverExited); } - var teleportModeActivateAction = GetInputAction(m_TeleportModeActivate); - if (teleportModeActivateAction != null) + var teleportModeAction = GetInputAction(m_TeleportMode); + if (teleportModeAction != null) { - teleportModeActivateAction.performed += OnStartTeleport; - teleportModeActivateAction.performed += OnStartLocomotion; - teleportModeActivateAction.canceled += OnCancelTeleport; - teleportModeActivateAction.canceled += OnStopLocomotion; + teleportModeAction.performed += OnStartTeleport; + teleportModeAction.performed += OnStartLocomotion; + teleportModeAction.canceled += OnCancelTeleport; + teleportModeAction.canceled += OnStopLocomotion; } var teleportModeCancelAction = GetInputAction(m_TeleportModeCancel); if (teleportModeCancelAction != null) { teleportModeCancelAction.performed += OnCancelTeleport; - teleportModeActivateAction.canceled += OnStopLocomotion; } var moveAction = GetInputAction(m_Move); if (moveAction != null) { - moveAction.performed += OnStartLocomotion; + moveAction.started += OnStartLocomotion; moveAction.canceled += OnStopLocomotion; } var turnAction = GetInputAction(m_Turn); if (turnAction != null) { - turnAction.performed += OnStartLocomotion; + turnAction.started += OnStartLocomotion; turnAction.canceled += OnStopLocomotion; } + + var snapTurnAction = GetInputAction(m_SnapTurn); + if (snapTurnAction != null) + { + snapTurnAction.started += OnStartLocomotion; + snapTurnAction.canceled += OnStopLocomotion; + } } void TeardownInteractorEvents() { + m_BindingsGroup.Clear(); + + if (m_NearFarInteractor != null) + { + m_NearFarInteractor.uiHoverEntered.RemoveListener(OnUIHoverEntered); + m_NearFarInteractor.uiHoverExited.RemoveListener(OnUIHoverExited); + } + if (m_RayInteractor != null) { m_RayInteractor.selectEntered.RemoveListener(OnRaySelectEntered); m_RayInteractor.selectExited.RemoveListener(OnRaySelectExited); + m_RayInteractor.uiHoverEntered.RemoveListener(OnUIHoverEntered); + m_RayInteractor.uiHoverExited.RemoveListener(OnUIHoverExited); } - var teleportModeActivateAction = GetInputAction(m_TeleportModeActivate); - if (teleportModeActivateAction != null) + var teleportModeAction = GetInputAction(m_TeleportMode); + if (teleportModeAction != null) { - teleportModeActivateAction.performed -= OnStartTeleport; - teleportModeActivateAction.performed -= OnStartLocomotion; - teleportModeActivateAction.canceled -= OnCancelTeleport; - teleportModeActivateAction.canceled -= OnStopLocomotion; + teleportModeAction.performed -= OnStartTeleport; + teleportModeAction.performed -= OnStartLocomotion; + teleportModeAction.canceled -= OnCancelTeleport; + teleportModeAction.canceled -= OnStopLocomotion; } var teleportModeCancelAction = GetInputAction(m_TeleportModeCancel); if (teleportModeCancelAction != null) { teleportModeCancelAction.performed -= OnCancelTeleport; - teleportModeCancelAction.performed -= OnStopLocomotion; } var moveAction = GetInputAction(m_Move); if (moveAction != null) { - moveAction.performed -= OnStartLocomotion; + moveAction.started -= OnStartLocomotion; moveAction.canceled -= OnStopLocomotion; } var turnAction = GetInputAction(m_Turn); if (turnAction != null) { - turnAction.performed -= OnStartLocomotion; + turnAction.started -= OnStartLocomotion; turnAction.canceled -= OnStopLocomotion; } + + var snapTurnAction = GetInputAction(m_SnapTurn); + if (snapTurnAction != null) + { + snapTurnAction.started -= OnStartLocomotion; + snapTurnAction.canceled -= OnStopLocomotion; + } } void OnStartTeleport(InputAction.CallbackContext context) @@ -230,6 +254,9 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.StarterAssets if (m_RayInteractor != null) m_RayInteractor.gameObject.SetActive(false); + if (m_NearFarInteractor != null && m_NearFarInteractor.selectionRegion.Value != NearFarInteractor.Region.Near) + m_NearFarInteractor.gameObject.SetActive(false); + m_RayInteractorChanged?.Invoke(m_TeleportInteractor); } @@ -244,15 +271,23 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.StarterAssets if (m_RayInteractor != null) m_RayInteractor.gameObject.SetActive(true); - m_RayInteractorChanged?.Invoke(m_RayInteractor); + if (m_NearFarInteractor != null) + m_NearFarInteractor.gameObject.SetActive(true); + m_RayInteractorChanged?.Invoke(m_RayInteractor); + } + + void OnNearFarSelectionRegionChanged(NearFarInteractor.Region selectionRegion) + { + if (selectionRegion == NearFarInteractor.Region.Far || + (selectionRegion == NearFarInteractor.Region.Near && !m_NearFarEnableTeleportDuringNearInteraction)) + DisableTeleportActions(); + else + UpdateLocomotionActions(); } void OnStartLocomotion(InputAction.CallbackContext context) { - if (!context.started) - return; - m_LocomotionUsers.Add(context.action); } @@ -260,149 +295,102 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.StarterAssets { m_LocomotionUsers.Remove(context.action); - if (m_LocomotionUsers.Count == 0 && m_UIScrollModeActive) + if (m_LocomotionUsers.Count == 0 && m_HoveringScrollableUI) { - DisableLocomotionActions(); + DisableAllLocomotionActions(); + UpdateUIActions(); } } void OnRaySelectEntered(SelectEnterEventArgs args) { - // Disable locomotion and turn actions - DisableLocomotionActions(); + if (m_RayInteractor.manipulateAttachTransform) + { + // Disable locomotion and turn actions + DisableAllLocomotionActions(); + } } void OnRaySelectExited(SelectExitEventArgs args) { - // Re-enable the locomotion and turn actions - UpdateLocomotionActions(); + if (m_RayInteractor.manipulateAttachTransform) + { + // Re-enable the locomotion and turn actions + UpdateLocomotionActions(); + } } void OnUIHoverEntered(UIHoverEventArgs args) { - m_UIScrollModeActive = args.deviceModel.isScrollable && m_UIScrollingEnabled; - if (!m_UIScrollModeActive) - return; + m_HoveringScrollableUI = m_UIScrollingEnabled && args.deviceModel.isScrollable; + UpdateUIActions(); // If locomotion is occurring, wait - if (m_LocomotionUsers.Count == 0) + if (m_HoveringScrollableUI && m_LocomotionUsers.Count == 0) { // Disable locomotion and turn actions - DisableLocomotionActions(); + DisableAllLocomotionActions(); } } void OnUIHoverExited(UIHoverEventArgs args) { - m_UIScrollModeActive = false; + m_HoveringScrollableUI = false; + UpdateUIActions(); // Re-enable the locomotion and turn actions UpdateLocomotionActions(); } - protected void Awake() - { - m_AfterInteractionEventsRoutine = OnAfterInteractionEvents(); - } - protected void OnEnable() { + if (m_RayInteractor != null && m_NearFarInteractor != null) + { + Debug.LogWarning("Both Ray Interactor and Near-Far Interactor are assigned. Only one should be assigned, not both. Clearing Ray Interactor.", this); + m_RayInteractor = null; + } + if (m_TeleportInteractor != null) m_TeleportInteractor.gameObject.SetActive(false); - SetupInteractorEvents(); + // Allow the actions to be refreshed when this component is re-enabled. + // See comments in Start for why we wait until Start to enable/disable actions. + if (m_StartCalled) + { + UpdateLocomotionActions(); + UpdateUIActions(); + } - // Start the coroutine that executes code after the Update phase (during yield null). - // Since this behavior has an execution order that runs before the XRInteractionManager, - // we use the coroutine to run after the selection events - StartCoroutine(m_AfterInteractionEventsRoutine); + SetupInteractorEvents(); } protected void OnDisable() { TeardownInteractorEvents(); - - StopCoroutine(m_AfterInteractionEventsRoutine); } protected void Start() { + m_StartCalled = true; + // Ensure the enabled state of locomotion and turn actions are properly set up. // Called in Start so it is done after the InputActionManager enables all input actions earlier in OnEnable. UpdateLocomotionActions(); UpdateUIActions(); - - if (m_ManipulationInteractionGroup == null) - { - Debug.LogError("Missing required Manipulation Interaction Group reference. Use the Inspector window to assign the XR Interaction Group component reference.", this); - return; - } - - // Ensure interactors are properly set up in the interaction group by adding - // them if necessary and ordering Direct before Ray interactor. - var directInteractorIndex = k_InteractorNotInGroup; - var rayInteractorIndex = k_InteractorNotInGroup; - m_ManipulationInteractionGroup.GetGroupMembers(s_GroupMembers); - for (var i = 0; i < s_GroupMembers.Count; ++i) - { - var groupMember = s_GroupMembers[i]; - if (ReferenceEquals(groupMember, m_DirectInteractor)) - directInteractorIndex = i; - else if (ReferenceEquals(groupMember, m_RayInteractor)) - rayInteractorIndex = i; - } - - if (directInteractorIndex == k_InteractorNotInGroup) - { - // Must add Direct interactor to group, and make sure it is ordered before the Ray interactor - if (rayInteractorIndex == k_InteractorNotInGroup) - { - // Must add Ray interactor to group - if (m_DirectInteractor != null) - m_ManipulationInteractionGroup.AddGroupMember(m_DirectInteractor); - - if (m_RayInteractor != null) - m_ManipulationInteractionGroup.AddGroupMember(m_RayInteractor); - } - else if (m_DirectInteractor != null) - { - m_ManipulationInteractionGroup.MoveGroupMemberTo(m_DirectInteractor, rayInteractorIndex); - } - } - else - { - if (rayInteractorIndex == k_InteractorNotInGroup) - { - // Must add Ray interactor to group - if (m_RayInteractor != null) - m_ManipulationInteractionGroup.AddGroupMember(m_RayInteractor); - } - else - { - // Must make sure Direct interactor is ordered before the Ray interactor - if (rayInteractorIndex < directInteractorIndex) - { - m_ManipulationInteractionGroup.MoveGroupMemberTo(m_DirectInteractor, rayInteractorIndex); - } - } - } } - IEnumerator OnAfterInteractionEvents() + protected void Update() { - while (true) + // Start the coroutine that executes code after the Update phase (during yield null). + // Since this behavior has the default execution order, it runs after the XRInteractionManager, + // so selection events have been finished by now this frame. This means that the teleport interactor + // has had a chance to process its select interaction event and teleport if needed. + if (m_PostponedDeactivateTeleport) { - // Yield so this coroutine is resumed after the teleport interactor - // has a chance to process its select interaction event during Update. - yield return null; + if (m_TeleportInteractor != null) + m_TeleportInteractor.gameObject.SetActive(false); - if (m_PostponedDeactivateTeleport) - { - if (m_TeleportInteractor != null) - m_TeleportInteractor.gameObject.SetActive(false); - - m_PostponedDeactivateTeleport = false; - } + m_PostponedDeactivateTeleport = false; } } @@ -410,7 +398,7 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.StarterAssets { // Disable/enable Teleport and Turn when Move is enabled/disabled. SetEnabled(m_Move, m_SmoothMotionEnabled); - SetEnabled(m_TeleportModeActivate, !m_SmoothMotionEnabled); + SetEnabled(m_TeleportMode, !m_SmoothMotionEnabled); SetEnabled(m_TeleportModeCancel, !m_SmoothMotionEnabled); // Disable ability to turn when using continuous movement @@ -418,18 +406,28 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.StarterAssets SetEnabled(m_SnapTurn, !m_SmoothMotionEnabled && !m_SmoothTurnEnabled); } - void DisableLocomotionActions() + void DisableTeleportActions() + { + DisableAction(m_TeleportMode); + DisableAction(m_TeleportModeCancel); + } + + void DisableMoveAndTurnActions() { DisableAction(m_Move); - DisableAction(m_TeleportModeActivate); - DisableAction(m_TeleportModeCancel); DisableAction(m_Turn); DisableAction(m_SnapTurn); } + void DisableAllLocomotionActions() + { + DisableTeleportActions(); + DisableMoveAndTurnActions(); + } + void UpdateUIActions() { - SetEnabled(m_UIScroll, m_UIScrollingEnabled); + SetEnabled(m_UIScroll, m_UIScrollingEnabled && m_HoveringScrollableUI && m_LocomotionUsers.Count == 0); } static void SetEnabled(InputActionReference actionReference, bool enabled) diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Scripts/ActionBasedControllerManager.cs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/ControllerInputActionManager.cs.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Scripts/ActionBasedControllerManager.cs.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/ControllerInputActionManager.cs.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Scripts/DestroySelf.cs b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/DestroySelf.cs similarity index 99% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Scripts/DestroySelf.cs rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/DestroySelf.cs index 93e53933..f10ffc41 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Scripts/DestroySelf.cs +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/DestroySelf.cs @@ -17,7 +17,7 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.StarterAssets get => m_Lifetime; set => m_Lifetime = value; } - + /// /// See . /// @@ -26,4 +26,4 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.StarterAssets Destroy(gameObject, m_Lifetime); } } -} \ No newline at end of file +} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Scripts/DestroySelf.cs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/DestroySelf.cs.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Scripts/DestroySelf.cs.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/DestroySelf.cs.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Scripts/DynamicMoveProvider.cs b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/DynamicMoveProvider.cs similarity index 94% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Scripts/DynamicMoveProvider.cs rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/DynamicMoveProvider.cs index e5ec63e4..243cfed8 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Scripts/DynamicMoveProvider.cs +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/DynamicMoveProvider.cs @@ -1,14 +1,15 @@ using Unity.XR.CoreUtils; using UnityEngine.Assertions; +using UnityEngine.XR.Interaction.Toolkit.Locomotion.Movement; namespace UnityEngine.XR.Interaction.Toolkit.Samples.StarterAssets { /// - /// A version of action-based continuous movement that automatically controls the frame of reference that + /// A version of continuous movement that automatically controls the frame of reference that /// determines the forward direction of movement based on user preference for each hand. /// For example, can configure to use head relative movement for the left hand and controller relative movement for the right hand. /// - public class DynamicMoveProvider : ActionBasedContinuousMoveProvider + public class DynamicMoveProvider : ContinuousMoveProvider { /// /// Defines which transform the XR Origin's movement direction is relative to. @@ -121,7 +122,7 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.StarterAssets // Initialize the Head Transform if necessary, getting the Camera from XR Origin if (m_HeadTransform == null) { - var xrOrigin = system.xrOrigin; + var xrOrigin = mediator.xrOrigin; if (xrOrigin != null) { var xrCamera = xrOrigin.Camera; @@ -171,8 +172,8 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.StarterAssets } // Combine the two poses into the forward source based on the magnitude of input - var leftHandValue = leftHandMoveAction.action?.ReadValue() ?? Vector2.zero; - var rightHandValue = rightHandMoveAction.action?.ReadValue() ?? Vector2.zero; + var leftHandValue = leftHandMoveInput.ReadValue(); + var rightHandValue = rightHandMoveInput.ReadValue(); var totalSqrMagnitude = leftHandValue.sqrMagnitude + rightHandValue.sqrMagnitude; var leftHandBlend = 0.5f; diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Scripts/DynamicMoveProvider.cs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/DynamicMoveProvider.cs.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Scripts/DynamicMoveProvider.cs.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/DynamicMoveProvider.cs.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Scripts/GazeInputManager.cs b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/GazeInputManager.cs similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Scripts/GazeInputManager.cs rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/GazeInputManager.cs diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Scripts/GazeInputManager.cs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/GazeInputManager.cs.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Scripts/GazeInputManager.cs.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/GazeInputManager.cs.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/MaterialPipelineHandler.cs b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/MaterialPipelineHandler.cs new file mode 100644 index 00000000..b72012b3 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/MaterialPipelineHandler.cs @@ -0,0 +1,242 @@ +using UnityEngine.Rendering; +using System.Collections.Generic; +#if UNITY_EDITOR +using UnityEditor; +#endif + +namespace UnityEngine.XR.Interaction.Toolkit.Samples.StarterAssets +{ +#if UNITY_EDITOR + [InitializeOnLoad] + static class RenderPipelineValidation + { + static RenderPipelineValidation() + { + foreach (var pipelineHandler in GetAllInstances()) + pipelineHandler.AutoRefreshPipelineShaders(); + } + + static List GetAllInstances() + { + var instances = new List(); + + // Find all GUIDs for objects that match the type MaterialPipelineHandler + var guids = AssetDatabase.FindAssets("t:MaterialPipelineHandler"); + for (int i = 0; i < guids.Length; i++) + { + string path = AssetDatabase.GUIDToAssetPath(guids[i]); + var asset = AssetDatabase.LoadAssetAtPath(path); + if (asset != null) + instances.Add(asset); + } + + return instances; + } + } +#endif + + /// + /// Serializable class that contains the shader information for a material. + /// + [System.Serializable] + public class ShaderContainer + { + public Material material; + public bool useSRPShaderName = true; + public string scriptableRenderPipelineShaderName = "Universal Render Pipeline/Lit"; + public Shader scriptableRenderPipelineShader; + public bool useBuiltinShaderName = true; + public string builtInPipelineShaderName = "Standard"; + public Shader builtInPipelineShader; + } + + /// + /// Scriptable object that allows for setting the shader on a material based on the current render pipeline. + /// Will run automatically OnEnable in the editor to set the shaders on project bootup. Can be refreshed manually with editor button. + /// This exists because while objects render correctly using shadergraph shaders, others do not and using the standard shader resolves various rendering issues. + /// + [CreateAssetMenu(fileName = "MaterialPipelineHandler", menuName = "XR/MaterialPipelineHandler", order = 0)] + public class MaterialPipelineHandler : ScriptableObject + { + [SerializeField] + [Tooltip("List of materials and their associated shaders.")] + List m_ShaderContainers; + + [SerializeField] + [Tooltip("If true, the shaders will be refreshed automatically when the editor opens and when this scriptable object instance is enabled.")] + bool m_AutoRefreshShaders = true; + +#if UNITY_EDITOR + void OnEnable() + { + if (Application.isPlaying) + return; + AutoRefreshPipelineShaders(); + } +#endif + + public void AutoRefreshPipelineShaders() + { + if (m_AutoRefreshShaders) + SetPipelineShaders(); + } + + /// + /// Applies the appropriate shader to the materials based on the current render pipeline. + /// + public void SetPipelineShaders() + { + if (m_ShaderContainers == null) + return; + + bool isBuiltinRenderPipeline = GraphicsSettings.currentRenderPipeline == null; + + foreach (var info in m_ShaderContainers) + { + if (info.material == null) + continue; + + // Find the appropriate shaders based on the toggle + Shader birpShader = info.useBuiltinShaderName ? Shader.Find(info.builtInPipelineShaderName) : info.builtInPipelineShader; + Shader srpShader = info.useSRPShaderName ? Shader.Find(info.scriptableRenderPipelineShaderName) : info.scriptableRenderPipelineShader; + + // Determine current shader for comparison + Shader currentShader = info.material.shader; + + // Update shader for the current render pipeline only if necessary + if (isBuiltinRenderPipeline && birpShader != null && currentShader != birpShader) + { + info.material.shader = birpShader; + MarkMaterialModified(info.material); + } + else if (!isBuiltinRenderPipeline && srpShader != null && currentShader != srpShader) + { + info.material.shader = srpShader; + MarkMaterialModified(info.material); + } + } + } + + static void MarkMaterialModified(Material material) + { +#if UNITY_EDITOR + EditorUtility.SetDirty(material); +#endif + } + } + +#if UNITY_EDITOR + /// + /// Custom property drawer for the shader container class. + /// + [CustomPropertyDrawer(typeof(ShaderContainer))] + public class ShaderContainerDrawer : PropertyDrawer + { + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + EditorGUI.BeginProperty(position, label, property); + + float singleLineHeight = EditorGUIUtility.singleLineHeight; + float verticalSpacing = EditorGUIUtility.standardVerticalSpacing; + + SerializedProperty materialProp = property.FindPropertyRelative("material"); + SerializedProperty useSRPShaderNameProp = property.FindPropertyRelative("useSRPShaderName"); + SerializedProperty scriptableShaderNameProp = property.FindPropertyRelative("scriptableRenderPipelineShaderName"); + SerializedProperty scriptableShaderProp = property.FindPropertyRelative("scriptableRenderPipelineShader"); + SerializedProperty useShaderNameProp = property.FindPropertyRelative("useBuiltinShaderName"); + SerializedProperty builtInNameProp = property.FindPropertyRelative("builtInPipelineShaderName"); + SerializedProperty builtInShaderProp = property.FindPropertyRelative("builtInPipelineShader"); + + // Draw Material without the header. + position.height = singleLineHeight; + EditorGUI.PropertyField(position, materialProp); + position.y += singleLineHeight + verticalSpacing; + + // SRP Shader header and fields. + EditorGUI.LabelField(position, "Scriptable Render Pipeline Shader", EditorStyles.boldLabel); + position.y += EditorGUIUtility.singleLineHeight + verticalSpacing; + + EditorGUI.PropertyField(position, useSRPShaderNameProp); + position.y += singleLineHeight + verticalSpacing; + + if (useSRPShaderNameProp.boolValue) + { + EditorGUI.PropertyField(position, scriptableShaderNameProp); + position.y += singleLineHeight + verticalSpacing; + } + else + { + EditorGUI.PropertyField(position, scriptableShaderProp); + position.y += singleLineHeight + verticalSpacing; + } + + // Built-in Shader header and fields. + EditorGUI.LabelField(position, "Built-In Render Pipeline Shader", EditorStyles.boldLabel); + position.y += singleLineHeight + verticalSpacing; + + EditorGUI.PropertyField(position, useShaderNameProp); + position.y += singleLineHeight + verticalSpacing; + + if (useShaderNameProp.boolValue) + { + EditorGUI.PropertyField(position, builtInNameProp); + position.y += singleLineHeight + verticalSpacing; + } + else + { + EditorGUI.PropertyField(position, builtInShaderProp); + position.y += singleLineHeight + verticalSpacing; + } + + // Draw a separator line at the end. + position.y += verticalSpacing / 2; // Extra space for the line. + position.height = 1; + EditorGUI.DrawRect(new Rect(position.x, position.y, position.width, 1), Color.gray); + + EditorGUI.EndProperty(); + } + + public override float GetPropertyHeight(SerializedProperty property, GUIContent label) + { + const int baseFieldCount = 4; // The Material field, the two toggles, and one for an optional field. + int extraLineCount = property.FindPropertyRelative("useBuiltinShaderName").boolValue ? 0 : 1; + extraLineCount += property.FindPropertyRelative("useSRPShaderName").boolValue ? 0 : 1; + + float singleLineHeight = EditorGUIUtility.singleLineHeight; + float verticalSpacing = EditorGUIUtility.standardVerticalSpacing; + float headerHeight = EditorGUIUtility.singleLineHeight; // No longer need extra height for headers. + + // Calculate height for fields and headers + float fieldsHeight = baseFieldCount * singleLineHeight + (baseFieldCount - 1 + extraLineCount) * verticalSpacing; + + // Allow space for header, separator line, and a bit of padding before the line. + float headersHeight = 2 * (headerHeight + verticalSpacing); + float separatorSpace = verticalSpacing / 2 + 1; // Additional vertical spacing and line height. + + return fieldsHeight + headersHeight + separatorSpace + singleLineHeight * 1.5f; + } + } + + /// + /// Custom editor MaterialPipelineHandler + /// + [CustomEditor(typeof(MaterialPipelineHandler)), CanEditMultipleObjects] + public class MaterialPipelineHandlerEditor : Editor + { + public override void OnInspectorGUI() + { + base.OnInspectorGUI(); + + // Draw the "Refresh Shaders" button + if (GUILayout.Button("Refresh Shaders")) + { + foreach (var t in targets) + { + var handler = (MaterialPipelineHandler)t; + handler.SetPipelineShaders(); + } + } + } + } +#endif +} diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/MaterialPipelineHandler.cs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/MaterialPipelineHandler.cs.meta new file mode 100644 index 00000000..cd729367 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/MaterialPipelineHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e7883133e628dff4a86f50c082f77055 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Scripts/ObjectSpawner.cs b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/ObjectSpawner.cs similarity index 99% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Scripts/ObjectSpawner.cs rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/ObjectSpawner.cs index 485e34ae..3b278e0b 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Scripts/ObjectSpawner.cs +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/ObjectSpawner.cs @@ -211,7 +211,7 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.StarterAssets newObject.transform.position = spawnPoint; EnsureFacingCamera(); - + var facePosition = m_CameraToFace.transform.position; var forward = facePosition - spawnPoint; BurstMathUtility.ProjectOnPlane(forward, spawnNormal, out var projectedForward); @@ -234,4 +234,4 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.StarterAssets return true; } } -} \ No newline at end of file +} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Scripts/ObjectSpawner.cs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/ObjectSpawner.cs.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Scripts/ObjectSpawner.cs.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/ObjectSpawner.cs.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/GrabTransformerRotationAxisLock.cs b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/RotationAxisLockGrabTransformer.cs similarity index 91% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/GrabTransformerRotationAxisLock.cs rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/RotationAxisLockGrabTransformer.cs index 11d699ad..a5799aa5 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/HandsDemoSceneAssets/Scripts/GrabTransformerRotationAxisLock.cs +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/RotationAxisLockGrabTransformer.cs @@ -1,12 +1,13 @@ +using UnityEngine.XR.Interaction.Toolkit.Interactables; using UnityEngine.XR.Interaction.Toolkit.Transformers; -namespace UnityEngine.XR.Interaction.Toolkit.Samples.Hands +namespace UnityEngine.XR.Interaction.Toolkit.Samples.StarterAssets { /// /// An XR grab transformer that allows for the locking of specific rotation axes. When an object is grabbed and manipulated, /// this class ensures that rotations are only applied to the specified axes, preserving the initial rotation for the others. /// - public class GrabTransformerRotationAxisLock : XRBaseGrabTransformer + public class RotationAxisLockGrabTransformer : XRBaseGrabTransformer { [SerializeField] [Tooltip("Defines which rotation axes are allowed when an object is grabbed. Axes not selected will maintain their initial rotation.")] diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/RotationAxisLockGrabTransformer.cs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/RotationAxisLockGrabTransformer.cs.meta new file mode 100644 index 00000000..c16b51ce --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/RotationAxisLockGrabTransformer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4dd2e41114c62b44fbd334ca5b314352 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/TeleportVolumeAnchorAffordanceStateLink.cs b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/TeleportVolumeAnchorAffordanceStateLink.cs new file mode 100644 index 00000000..7cc9a21b --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/TeleportVolumeAnchorAffordanceStateLink.cs @@ -0,0 +1,97 @@ +using System; +using UnityEngine.XR.Interaction.Toolkit.AffordanceSystem.State; +using UnityEngine.XR.Interaction.Toolkit.Interactables; +using UnityEngine.XR.Interaction.Toolkit.Locomotion.Teleportation; + +namespace UnityEngine.XR.Interaction.Toolkit.Samples.StarterAssets +{ + /// + /// Helper component that binds an to a + /// when the teleport volume sets its destination anchor to a child transform + /// of the state provider's originally bound interactable. + /// + [RequireComponent(typeof(XRInteractableAffordanceStateProvider))] + [Obsolete("The Affordance System namespace and all associated classes have been deprecated. The existing affordance system will be moved, replaced and updated with a new interaction feedback system in a future version of XRI.")] + public class TeleportVolumeAnchorAffordanceStateLink : MonoBehaviour + { + [SerializeField] + [Tooltip("The teleport volume that will drive affordance states when its destination anchor belongs to this interactable.")] + TeleportationMultiAnchorVolume m_ContainingTeleportVolume; + + /// + /// The teleport volume that will drive affordance states when its destination anchor belongs to the + /// state provider's originally bound interactable. + /// + public TeleportationMultiAnchorVolume containingTeleportVolume + { + get => m_ContainingTeleportVolume; + set => m_ContainingTeleportVolume = value; + } + + XRInteractableAffordanceStateProvider m_AffordanceStateProvider; + IXRInteractable m_Interactable; + + /// + /// See . + /// + protected void OnEnable() + { + m_AffordanceStateProvider = GetComponent(); + if (m_AffordanceStateProvider == null) + { + Debug.LogError($"Missing {nameof(XRInteractableAffordanceStateProvider)} on {gameObject.name}.", this); + enabled = false; + return; + } + + if (m_ContainingTeleportVolume == null) + { + Debug.LogError($"Missing {nameof(TeleportationMultiAnchorVolume)} reference on {gameObject.name}.", this); + enabled = false; + return; + } + + var interactableSource = m_AffordanceStateProvider.interactableSource; + m_Interactable = interactableSource != null && interactableSource is IXRInteractable interactable + ? interactable + : m_AffordanceStateProvider.GetComponentInParent(); + + if (m_Interactable == null) + { + Debug.LogError($"Interactable source must be an {nameof(IXRInteractable)}.", this); + enabled = false; + return; + } + + m_ContainingTeleportVolume.destinationAnchorChanged += OnDestinationAnchorChanged; + } + + /// + /// See . + /// + protected void OnDisable() + { + if (m_ContainingTeleportVolume != null) + m_ContainingTeleportVolume.destinationAnchorChanged -= OnDestinationAnchorChanged; + + if (m_AffordanceStateProvider != null) + m_AffordanceStateProvider.SetBoundInteractionReceiver(m_Interactable); + } + + void OnDestinationAnchorChanged(TeleportationMultiAnchorVolume anchorVolume) + { + var anchor = anchorVolume.destinationAnchor; + if (anchor == null) + { + m_AffordanceStateProvider.SetBoundInteractionReceiver(m_Interactable); + return; + } + + // Use teleport volume to drive affordance states if its current anchor belongs to this interactable + m_AffordanceStateProvider.SetBoundInteractionReceiver( + anchor.IsChildOf(m_Interactable.transform) + ? m_ContainingTeleportVolume + : m_Interactable); + } + } +} diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/TeleportVolumeAnchorAffordanceStateLink.cs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/TeleportVolumeAnchorAffordanceStateLink.cs.meta new file mode 100644 index 00000000..2244e8e5 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/TeleportVolumeAnchorAffordanceStateLink.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7da98a0edd844d83b9b4de3f91de030c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Scripts/XRPokeFollowAffordance.cs b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/XRPokeFollowAffordance.cs similarity index 68% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Scripts/XRPokeFollowAffordance.cs rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/XRPokeFollowAffordance.cs index eb735ac0..25e252ca 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Scripts/XRPokeFollowAffordance.cs +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/XRPokeFollowAffordance.cs @@ -1,4 +1,5 @@ -using Unity.Mathematics; +using System; +using Unity.Mathematics; using Unity.XR.CoreUtils.Bindings; using UnityEngine.XR.Interaction.Toolkit.AffordanceSystem.State; using UnityEngine.XR.Interaction.Toolkit.Filtering; @@ -10,6 +11,11 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.StarterAssets /// Follow animation affordance for , such as . /// Used to animate a pressed transform, such as a button to follow the poke position. /// + /// + /// The Affordance System namespace and all associated classes have been deprecated. + /// The existing affordance system will be moved, replaced and updated with a new interaction + /// feedback system in a future version of XRI, including this sample script. + /// [AddComponentMenu("XR/XR Poke Follow Affordance", 22)] public class XRPokeFollowAffordance : MonoBehaviour { @@ -109,18 +115,24 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.StarterAssets IPokeStateDataProvider m_PokeDataProvider; IMultiPokeStateDataProvider m_MultiPokeStateDataProvider; +#pragma warning disable CS0618 // Type or member is obsolete readonly Vector3TweenableVariable m_TransformTweenableVariable = new Vector3TweenableVariable(); +#pragma warning restore CS0618 // Type or member is obsolete readonly BindingsGroup m_BindingsGroup = new BindingsGroup(); Vector3 m_InitialPosition; bool m_IsFirstFrame; + [HideInInspector] + [SerializeField] + XRPokeFilter m_PokeFilter = null; + /// /// See . /// protected void Awake() { m_MultiPokeStateDataProvider = GetComponentInParent(); - if(m_MultiPokeStateDataProvider == null) + if (m_MultiPokeStateDataProvider == null) m_PokeDataProvider = GetComponentInParent(); } @@ -133,10 +145,10 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.StarterAssets { m_InitialPosition = m_PokeFollowTransform.localPosition; m_BindingsGroup.AddBinding(m_TransformTweenableVariable.Subscribe(OnTransformTweenableVariableUpdated)); - - if(m_MultiPokeStateDataProvider != null) + + if (m_MultiPokeStateDataProvider != null) m_BindingsGroup.AddBinding(m_MultiPokeStateDataProvider.GetPokeStateDataForTarget(transform).Subscribe(OnPokeStateDataUpdated)); - else if(m_PokeDataProvider != null) + else if (m_PokeDataProvider != null) m_BindingsGroup.AddBinding(m_PokeDataProvider.pokeStateData.SubscribeAndUpdate(OnPokeStateDataUpdated)); } else @@ -166,12 +178,23 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.StarterAssets m_IsFirstFrame = false; return; } + m_TransformTweenableVariable.HandleTween(m_SmoothingSpeed > 0f ? Time.deltaTime * m_SmoothingSpeed : 1f); } - void OnTransformTweenableVariableUpdated(float3 position) + protected virtual void OnTransformTweenableVariableUpdated(float3 position) { - m_PokeFollowTransform.localPosition = position; + // UI Anchors can cause this to not work correctly, so we check if it's a RectTransform and set the localPosition Z only + if (m_PokeFollowTransform is RectTransform) + { + var targetPosition = m_PokeFollowTransform.localPosition; + targetPosition.z = position.z; + m_PokeFollowTransform.localPosition = targetPosition; + } + else + { + m_PokeFollowTransform.localPosition = position; + } } void OnPokeStateDataUpdated(PokeStateData data) @@ -202,5 +225,74 @@ namespace UnityEngine.XR.Interaction.Toolkit.Samples.StarterAssets m_PokeFollowTransform.localPosition = m_InitialPosition; } + + void OnDrawGizmos() + { + if (!TryGetTargetEndPoint(out var endPoint)) + return; + + Gizmos.color = Color.yellow; + Gizmos.DrawLine(transform.position, endPoint); + } + + bool TryGetTargetEndPoint(out Vector3 endPoint) + { + if (!m_ClampToMaxDistance || m_PokeFilter == null) + { + endPoint = Vector3.zero; + return false; + } + + Vector3 origin = transform.position; + Vector3 direction = ComputeRotatedDepthEvaluationAxis(m_PokeFilter.pokeConfiguration); + endPoint = origin + direction.normalized * m_MaxDistance; + return true; + } + + Vector3 ComputeRotatedDepthEvaluationAxis(PokeThresholdData pokeThresholdData) + { + if (pokeThresholdData == null) + return Vector3.zero; + + Vector3 rotatedDepthEvaluationAxis = Vector3.zero; + switch (pokeThresholdData.pokeDirection) + { + case PokeAxis.X: + case PokeAxis.NegativeX: + rotatedDepthEvaluationAxis = transform.right; + break; + case PokeAxis.Y: + case PokeAxis.NegativeY: + rotatedDepthEvaluationAxis = transform.up; + break; + case PokeAxis.Z: + case PokeAxis.NegativeZ: + rotatedDepthEvaluationAxis = transform.forward; + break; + } + + switch (pokeThresholdData.pokeDirection) + { + case PokeAxis.X: + case PokeAxis.Y: + case PokeAxis.Z: + rotatedDepthEvaluationAxis = -rotatedDepthEvaluationAxis; + break; + } + + return rotatedDepthEvaluationAxis; + } + + void OnValidate() + { + if (m_PokeFilter == null) + { + m_PokeFilter = GetComponentInParent(); + } + + // Visually update the end point to match the target clamped position + if (m_PokeFollowTransform != null && TryGetTargetEndPoint(out var endPoint)) + m_PokeFollowTransform.position = endPoint; + } } -} \ No newline at end of file +} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Scripts/XRPokeFollowAffordance.cs.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/XRPokeFollowAffordance.cs.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Scripts/XRPokeFollowAffordance.cs.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Scripts/XRPokeFollowAffordance.cs.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders.meta new file mode 100644 index 00000000..eed0ac56 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 388cb625f9bdf7444b7b2df5b64a84c6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/BiRP_Fresnel.shader b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/BiRP_Fresnel.shader new file mode 100644 index 00000000..d7f4bffb --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/BiRP_Fresnel.shader @@ -0,0 +1,83 @@ +Shader "XRIT/BiRP_Fresnel" +{ + Properties + { + _BaseColor ("_BaseColor", Color) = (0, 0, 0, 1) + _MainTex ("Texture", 2D) = "white" {} + _Smoothness ("Smoothness", Range(0, 1)) = 0 + _Metallic ("Metalness", Range(0, 1)) = 0 + _RimColor ("_RimColor", Color) = (1,1,1,1) + [PowerSlider(4)]_RimPower ("_RimPower", Range(0.25, 10)) = 1 + } + + SubShader + { + Tags + { + "RenderType"="Opaque" + } + LOD 200 + + CGPROGRAM + #if !defined(UNITY_USES_HDRP) && !defined(UNITY_USES_URP) + // Physically based Standard lighting model, and enable shadows on all light types + #pragma surface surf Standard fullforwardshadows + + // Use shader model 3.0 target, to get nicer looking lighting + #pragma target 3.0 + + sampler2D _MainTex; + fixed4 _BaseColor; + half _Smoothness; + half _Metallic; + float3 _RimColor; + float _RimPower; + + struct Input + { + float2 uv_MainTex; + float3 worldNormal; + float3 viewDir; + INTERNAL_DATA + }; + + // Add instancing support for this shader. You need to check 'Enable Instancing' on materials that use the shader. + // See https://docs.unity3d.com/Manual/GPUInstancing.html for more information about instancing. + // #pragma instancing_options assumeuniformscaling + UNITY_INSTANCING_BUFFER_START(Props) + UNITY_INSTANCING_BUFFER_END(Props) + + half4 LightingSimpleLambert (SurfaceOutput s, half3 lightDir, half atten) { + half NdotL = dot (s.Normal, lightDir); + half4 c; + c.rgb = s.Albedo * _LightColor0.rgb * (NdotL * atten); + c.a = s.Alpha; + return c; + } + + void surf(Input i, inout SurfaceOutputStandard o) + { + //sample and tint albedo texture + fixed4 col = tex2D(_MainTex, i.uv_MainTex); + col *= _BaseColor; + o.Albedo = col.rgb; + //just apply the values for metalness and smoothness + o.Metallic = _Metallic; + o.Smoothness = _Smoothness; + //get the dot product between the normal and the view direction + float fresnel = dot(i.worldNormal, i.viewDir); + //invert the fresnel so the big values are on the outside + fresnel = saturate(1 - fresnel); + //raise the fresnel value to the exponents power to be able to adjust it + fresnel = pow(fresnel, _RimPower); + //combine the fresnel value with a color + float3 fresnelColor = fresnel * _RimColor; + //apply the fresnel value to the emission + o.Emission = fresnelColor; + } + #endif + ENDCG + } + FallBack "Diffuse" + FallBack "Standard" +} diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/BiRP_Fresnel.shader.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/BiRP_Fresnel.shader.meta new file mode 100644 index 00000000..7773a18a --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/BiRP_Fresnel.shader.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: b24c216c4acb0094c892a61dfbbb76b4 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + preprocessorOverride: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/Interactable.shadergraph b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/Interactable.shadergraph new file mode 100644 index 00000000..753107cb --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/Interactable.shadergraph @@ -0,0 +1,4145 @@ +{ + "m_SGVersion": 3, + "m_Type": "UnityEditor.ShaderGraph.GraphData", + "m_ObjectId": "34a2241cace747c1aab795b47b74d96c", + "m_Properties": [ + { + "m_Id": "482b6de253db465e808a80828ae136f2" + }, + { + "m_Id": "48a4c9b172e24ee490580e77efba26cc" + }, + { + "m_Id": "13226371ac59487c895d28a58a0b3e3a" + }, + { + "m_Id": "d777fa61789b4e60ac09af623ceb253c" + }, + { + "m_Id": "33ed807b47194420b7ca5e54e9eaddd5" + }, + { + "m_Id": "8b7d12739f9d4a64ad74d97000195713" + }, + { + "m_Id": "0e2d0060fb6647d8acd0791e1a2eb28f" + }, + { + "m_Id": "9a38e5a780f542199b7ea2ec7be0f311" + }, + { + "m_Id": "286f78650b2f4e19bbe36808021ec65b" + }, + { + "m_Id": "edabcdf3486a4812ae5658b8254c258d" + } + ], + "m_Keywords": [], + "m_Dropdowns": [], + "m_CategoryData": [ + { + "m_Id": "ce7e4776faf54c8c921c004ff57e6a67" + } + ], + "m_Nodes": [ + { + "m_Id": "dc5c91e79c014636a601536af3db47c8" + }, + { + "m_Id": "92a68cfb809948f78bed1524817e802f" + }, + { + "m_Id": "cee5b6702a794bbeb43982d32bfc94fd" + }, + { + "m_Id": "420cff3beaab447a98e34cbb581c753f" + }, + { + "m_Id": "b6a22e59a17a422c9ceac09ca5674c70" + }, + { + "m_Id": "0d031ca8645e4afea738475766ca5bb3" + }, + { + "m_Id": "19c524ef7c754603b474342b29968df0" + }, + { + "m_Id": "edc683028f7f4a08b249d0f0183a917e" + }, + { + "m_Id": "cef58d737f9a4ad88ee208166ef4ce90" + }, + { + "m_Id": "44e63cb3307344a88ed8b1a5f11b3502" + }, + { + "m_Id": "09b3896ce0154c11be905235318d515f" + }, + { + "m_Id": "eafb2f1b4ba4441e9fa3108ff8dca237" + }, + { + "m_Id": "1392772296394069b49fae2bbb14d56d" + }, + { + "m_Id": "b595b08d61a241218a3d80c369108496" + }, + { + "m_Id": "b235a886335b4c1ab4872a03c9eccfb0" + }, + { + "m_Id": "bdf57607f4ba4a3489c0e98ad3c19461" + }, + { + "m_Id": "67cd07f9ae82453ea0de2e29dae18080" + }, + { + "m_Id": "ec5b4f9bacdc41899dc4d7117d8770c5" + }, + { + "m_Id": "2bdcefbcdf6c41c6a3e2987caa8c3026" + }, + { + "m_Id": "0acf8bd626b94aabb7d43f6b72ce295d" + }, + { + "m_Id": "ae5e313f8d344ca893e946534337db18" + }, + { + "m_Id": "5f73c8e6a9e04ee6bd08c7ec664f9ead" + }, + { + "m_Id": "4f3ed500dc274e0aa11ac48d35310f1a" + }, + { + "m_Id": "4aa1427bc1fe490a9883f5a6cd2264a4" + }, + { + "m_Id": "16c7ac4e3c05444eb73185aa4ceb9045" + }, + { + "m_Id": "4b21122999664ab3bd65422a1090bf90" + }, + { + "m_Id": "9be4b481dfe642d3960f2b92e27f46f7" + }, + { + "m_Id": "e6385eca93e04655ac0c7e189b3fcc60" + }, + { + "m_Id": "287d175dfb7e44c18187bdf69ed6d5d0" + }, + { + "m_Id": "347ba48b64334e4da6257f142dac85bd" + }, + { + "m_Id": "b73b6b04fdab45deba4776d91f3464e7" + }, + { + "m_Id": "a494549a5e5c4a9eaa0853c58ef669a7" + }, + { + "m_Id": "8fa23fa35fce46898c7646a5eb1ed324" + }, + { + "m_Id": "c41673cb40ec4182ba75ff9078f9dd76" + }, + { + "m_Id": "ed5c980ec8ff40d8b0929a9783b4749b" + }, + { + "m_Id": "ff719c8fc32845faa0b1dc53fd3eae21" + } + ], + "m_GroupDatas": [ + { + "m_Id": "346e9930ce5d4eca9bd1178e5109e3f1" + }, + { + "m_Id": "d2387c00d8984e4aa40d39ea25262374" + }, + { + "m_Id": "e12fecca803d4bcea0269e65353747b9" + } + ], + "m_StickyNoteDatas": [], + "m_Edges": [ + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "0acf8bd626b94aabb7d43f6b72ce295d" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "2bdcefbcdf6c41c6a3e2987caa8c3026" + }, + "m_SlotId": 1 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "1392772296394069b49fae2bbb14d56d" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "b235a886335b4c1ab4872a03c9eccfb0" + }, + "m_SlotId": 1 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "16c7ac4e3c05444eb73185aa4ceb9045" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "0d031ca8645e4afea738475766ca5bb3" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "287d175dfb7e44c18187bdf69ed6d5d0" + }, + "m_SlotId": 2 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "bdf57607f4ba4a3489c0e98ad3c19461" + }, + "m_SlotId": 2 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "287d175dfb7e44c18187bdf69ed6d5d0" + }, + "m_SlotId": 2 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "edc683028f7f4a08b249d0f0183a917e" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "2bdcefbcdf6c41c6a3e2987caa8c3026" + }, + "m_SlotId": 3 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "5f73c8e6a9e04ee6bd08c7ec664f9ead" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "347ba48b64334e4da6257f142dac85bd" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "b595b08d61a241218a3d80c369108496" + }, + "m_SlotId": 1 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "4aa1427bc1fe490a9883f5a6cd2264a4" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "ed5c980ec8ff40d8b0929a9783b4749b" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "4b21122999664ab3bd65422a1090bf90" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "19c524ef7c754603b474342b29968df0" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "4f3ed500dc274e0aa11ac48d35310f1a" + }, + "m_SlotId": 4 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "287d175dfb7e44c18187bdf69ed6d5d0" + }, + "m_SlotId": 1 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "5f73c8e6a9e04ee6bd08c7ec664f9ead" + }, + "m_SlotId": 2 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "287d175dfb7e44c18187bdf69ed6d5d0" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "67cd07f9ae82453ea0de2e29dae18080" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "ec5b4f9bacdc41899dc4d7117d8770c5" + }, + "m_SlotId": 1 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "8fa23fa35fce46898c7646a5eb1ed324" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "a494549a5e5c4a9eaa0853c58ef669a7" + }, + "m_SlotId": 1 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "9be4b481dfe642d3960f2b92e27f46f7" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "2bdcefbcdf6c41c6a3e2987caa8c3026" + }, + "m_SlotId": 2 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "a494549a5e5c4a9eaa0853c58ef669a7" + }, + "m_SlotId": 3 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "4aa1427bc1fe490a9883f5a6cd2264a4" + }, + "m_SlotId": 2 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "ae5e313f8d344ca893e946534337db18" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "2bdcefbcdf6c41c6a3e2987caa8c3026" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "b235a886335b4c1ab4872a03c9eccfb0" + }, + "m_SlotId": 2 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "bdf57607f4ba4a3489c0e98ad3c19461" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "b235a886335b4c1ab4872a03c9eccfb0" + }, + "m_SlotId": 2 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "ec5b4f9bacdc41899dc4d7117d8770c5" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "b595b08d61a241218a3d80c369108496" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "b235a886335b4c1ab4872a03c9eccfb0" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "b73b6b04fdab45deba4776d91f3464e7" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "4aa1427bc1fe490a9883f5a6cd2264a4" + }, + "m_SlotId": 1 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "bdf57607f4ba4a3489c0e98ad3c19461" + }, + "m_SlotId": 3 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "420cff3beaab447a98e34cbb581c753f" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "c41673cb40ec4182ba75ff9078f9dd76" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "a494549a5e5c4a9eaa0853c58ef669a7" + }, + "m_SlotId": 2 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "e6385eca93e04655ac0c7e189b3fcc60" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "4f3ed500dc274e0aa11ac48d35310f1a" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "e6385eca93e04655ac0c7e189b3fcc60" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "5f73c8e6a9e04ee6bd08c7ec664f9ead" + }, + "m_SlotId": 1 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "ec5b4f9bacdc41899dc4d7117d8770c5" + }, + "m_SlotId": 2 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "bdf57607f4ba4a3489c0e98ad3c19461" + }, + "m_SlotId": 1 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "ed5c980ec8ff40d8b0929a9783b4749b" + }, + "m_SlotId": 2 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "b6a22e59a17a422c9ceac09ca5674c70" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "ff719c8fc32845faa0b1dc53fd3eae21" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "ed5c980ec8ff40d8b0929a9783b4749b" + }, + "m_SlotId": 1 + } + } + ], + "m_VertexContext": { + "m_Position": { + "x": 112.99992370605469, + "y": 132.00003051757813 + }, + "m_Blocks": [ + { + "m_Id": "dc5c91e79c014636a601536af3db47c8" + }, + { + "m_Id": "92a68cfb809948f78bed1524817e802f" + }, + { + "m_Id": "cee5b6702a794bbeb43982d32bfc94fd" + } + ] + }, + "m_FragmentContext": { + "m_Position": { + "x": 112.99992370605469, + "y": 331.9999084472656 + }, + "m_Blocks": [ + { + "m_Id": "420cff3beaab447a98e34cbb581c753f" + }, + { + "m_Id": "b6a22e59a17a422c9ceac09ca5674c70" + }, + { + "m_Id": "0d031ca8645e4afea738475766ca5bb3" + }, + { + "m_Id": "19c524ef7c754603b474342b29968df0" + }, + { + "m_Id": "edc683028f7f4a08b249d0f0183a917e" + }, + { + "m_Id": "cef58d737f9a4ad88ee208166ef4ce90" + }, + { + "m_Id": "44e63cb3307344a88ed8b1a5f11b3502" + }, + { + "m_Id": "09b3896ce0154c11be905235318d515f" + }, + { + "m_Id": "eafb2f1b4ba4441e9fa3108ff8dca237" + } + ] + }, + "m_PreviewData": { + "serializedMesh": { + "m_SerializedMesh": "{\"mesh\":{\"instanceID\":0}}", + "m_Guid": "" + }, + "preventRotation": false + }, + "m_Path": "Shader Graphs", + "m_GraphPrecision": 1, + "m_PreviewMode": 2, + "m_OutputNode": { + "m_Id": "" + }, + "m_ActiveTargets": [ + { + "m_Id": "7f4faf20e056441da3400fcf5a01bd1d" + }, + { + "m_Id": "4aa8a973dd78498e827b15fa6d213bc0" + } + ] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "010c84257e1d457c9139b10afe0c86ce", + "m_Id": 0, + "m_DisplayName": "Alpha Clip Threshold", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "AlphaClipThreshold", + "m_StageCapability": 2, + "m_Value": 0.5, + "m_DefaultValue": 0.5, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", + "m_ObjectId": "07b346956d8e427a8fb6a4e597439425", + "m_Id": 0, + "m_DisplayName": "Out", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot", + "m_ObjectId": "08269a550cd74ba29f50c7d60fb4dcc2", + "m_Id": 2, + "m_DisplayName": "Out", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": { + "e00": 0.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 0.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 0.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 0.0 + }, + "m_DefaultValue": { + "e00": 1.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 1.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 1.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 1.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", + "m_ObjectId": "090dac5d94e9450bbca9bf47c6502992", + "m_Id": 0, + "m_DisplayName": "Out", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.NormalMaterialSlot", + "m_ObjectId": "093e7e86995446d2ab10f431b05ef76a", + "m_Id": 0, + "m_DisplayName": "Normal", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Normal", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [], + "m_Space": 2 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "09b3896ce0154c11be905235318d515f", + "m_Group": { + "m_Id": "" + }, + "m_Name": "SurfaceDescription.Alpha", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": 0.0, + "y": 0.0, + "width": 0.0, + "height": 0.0 + } + }, + "m_Slots": [ + { + "m_Id": "1b62da38b8ef48edb6ff30ae07ce41b8" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "SurfaceDescription.Alpha" +} + +{ + "m_SGVersion": 1, + "m_Type": "UnityEditor.ShaderGraph.ViewDirectionNode", + "m_ObjectId": "0acf8bd626b94aabb7d43f6b72ce295d", + "m_Group": { + "m_Id": "d2387c00d8984e4aa40d39ea25262374" + }, + "m_Name": "View Direction", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -1811.9998779296875, + "y": 336.6666564941406, + "width": 207.3331298828125, + "height": 134.66671752929688 + } + }, + "m_Slots": [ + { + "m_Id": "07b346956d8e427a8fb6a4e597439425" + } + ], + "synonyms": [ + "eye direction" + ], + "m_Precision": 0, + "m_PreviewExpanded": false, + "m_PreviewMode": 2, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_Space": 2 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "0d031ca8645e4afea738475766ca5bb3", + "m_Group": { + "m_Id": "" + }, + "m_Name": "SurfaceDescription.Metallic", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": 0.0, + "y": 0.0, + "width": 0.0, + "height": 0.0 + } + }, + "m_Slots": [ + { + "m_Id": "f9bfc7cf42df49dbb5c5bb74afedf657" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "SurfaceDescription.Metallic" +} + +{ + "m_SGVersion": 3, + "m_Type": "UnityEditor.ShaderGraph.Internal.ColorShaderProperty", + "m_ObjectId": "0e2d0060fb6647d8acd0791e1a2eb28f", + "m_Guid": { + "m_GuidSerialized": "c5c7a42b-05c6-4506-8cd3-7905607cdb99" + }, + "m_Name": "_RimColor", + "m_DefaultRefNameVersion": 1, + "m_RefNameGeneratedByDisplayName": "_RimColor", + "m_DefaultReferenceName": "_RimColor", + "m_OverrideReferenceName": "", + "m_GeneratePropertyBlock": true, + "m_UseCustomSlotLabel": false, + "m_CustomSlotLabel": "", + "m_Precision": 0, + "overrideHLSLDeclaration": false, + "hlslDeclarationOverride": 0, + "m_Hidden": false, + "m_Value": { + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 0.5803921818733215 + }, + "isMainColor": false, + "m_ColorMode": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot", + "m_ObjectId": "0f2b559f30b14a44ad0eb771394fba11", + "m_Id": 0, + "m_DisplayName": "A", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "A", + "m_StageCapability": 3, + "m_Value": { + "e00": 0.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 0.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 0.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 0.0 + }, + "m_DefaultValue": { + "e00": 1.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 1.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 1.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 1.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "1256dd214f7e485c8ceba8ab2793b320", + "m_Id": 7, + "m_DisplayName": "A", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "A", + "m_StageCapability": 2, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 3, + "m_Type": "UnityEditor.ShaderGraph.Internal.ColorShaderProperty", + "m_ObjectId": "13226371ac59487c895d28a58a0b3e3a", + "m_Guid": { + "m_GuidSerialized": "63931a48-e350-41dc-959a-31ee6a7dd197" + }, + "m_Name": "_BaseColor", + "m_DefaultRefNameVersion": 1, + "m_RefNameGeneratedByDisplayName": "_BaseColor", + "m_DefaultReferenceName": "_BaseColor", + "m_OverrideReferenceName": "", + "m_GeneratePropertyBlock": true, + "m_UseCustomSlotLabel": false, + "m_CustomSlotLabel": "", + "m_Precision": 0, + "overrideHLSLDeclaration": false, + "hlslDeclarationOverride": 0, + "m_Hidden": false, + "m_Value": { + "r": 0.4433962106704712, + "g": 0.4433962106704712, + "b": 0.4433962106704712, + "a": 0.0 + }, + "isMainColor": false, + "m_ColorMode": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.PropertyNode", + "m_ObjectId": "1392772296394069b49fae2bbb14d56d", + "m_Group": { + "m_Id": "346e9930ce5d4eca9bd1178e5109e3f1" + }, + "m_Name": "Property", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -1472.0, + "y": -92.00001525878906, + "width": 136.0, + "height": 34.000057220458987 + } + }, + "m_Slots": [ + { + "m_Id": "e233a5083310407eb373bca889c776fb" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_Property": { + "m_Id": "13226371ac59487c895d28a58a0b3e3a" + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot", + "m_ObjectId": "168ebbe1e8ff4012ba3f03f575db7f62", + "m_Id": 1, + "m_DisplayName": "B", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "B", + "m_StageCapability": 3, + "m_Value": { + "e00": 2.0, + "e01": 2.0, + "e02": 2.0, + "e03": 2.0, + "e10": 2.0, + "e11": 2.0, + "e12": 2.0, + "e13": 2.0, + "e20": 2.0, + "e21": 2.0, + "e22": 2.0, + "e23": 2.0, + "e30": 2.0, + "e31": 2.0, + "e32": 2.0, + "e33": 2.0 + }, + "m_DefaultValue": { + "e00": 1.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 1.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 1.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 1.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.PropertyNode", + "m_ObjectId": "16c7ac4e3c05444eb73185aa4ceb9045", + "m_Group": { + "m_Id": "" + }, + "m_Name": "Property", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -111.0, + "y": 450.0000305175781, + "width": 120.99996948242188, + "height": 33.99993896484375 + } + }, + "m_Slots": [ + { + "m_Id": "a0af5b6dc5e04d53961c9637cae2fd54" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_Property": { + "m_Id": "33ed807b47194420b7ca5e54e9eaddd5" + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "19c524ef7c754603b474342b29968df0", + "m_Group": { + "m_Id": "" + }, + "m_Name": "SurfaceDescription.Smoothness", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": 0.0, + "y": 0.0, + "width": 0.0, + "height": 0.0 + } + }, + "m_Slots": [ + { + "m_Id": "1a6239ebfe974097a50095d7a90a657d" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "SurfaceDescription.Smoothness" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "1a6239ebfe974097a50095d7a90a657d", + "m_Id": 0, + "m_DisplayName": "Smoothness", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Smoothness", + "m_StageCapability": 2, + "m_Value": 0.5, + "m_DefaultValue": 0.5, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "1b62da38b8ef48edb6ff30ae07ce41b8", + "m_Id": 0, + "m_DisplayName": "Alpha", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Alpha", + "m_StageCapability": 2, + "m_Value": 1.0, + "m_DefaultValue": 1.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.NormalMaterialSlot", + "m_ObjectId": "1b7a5e0aa600437986160c13473a534c", + "m_Id": 0, + "m_DisplayName": "Normal (Tangent Space)", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "NormalTS", + "m_StageCapability": 2, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [], + "m_Space": 3 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot", + "m_ObjectId": "204bf07fc52f464886121fba7aa55854", + "m_Id": 0, + "m_DisplayName": "A", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "A", + "m_StageCapability": 3, + "m_Value": { + "e00": 0.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 0.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 0.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 0.0 + }, + "m_DefaultValue": { + "e00": 1.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 1.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 1.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 1.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot", + "m_ObjectId": "21ecb0ca4fd14bd1963896f80890fcdf", + "m_Id": 0, + "m_DisplayName": "_NormalOffset", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0 + }, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Internal.Texture2DShaderProperty", + "m_ObjectId": "286f78650b2f4e19bbe36808021ec65b", + "m_Guid": { + "m_GuidSerialized": "585b125c-7345-4901-8a0a-911173c93c23" + }, + "m_Name": "_NormalMap", + "m_DefaultRefNameVersion": 1, + "m_RefNameGeneratedByDisplayName": "_NormalMap", + "m_DefaultReferenceName": "_NormalMap", + "m_OverrideReferenceName": "", + "m_GeneratePropertyBlock": true, + "m_UseCustomSlotLabel": false, + "m_CustomSlotLabel": "", + "m_Precision": 0, + "overrideHLSLDeclaration": false, + "hlslDeclarationOverride": 0, + "m_Hidden": false, + "m_Value": { + "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}", + "m_Guid": "" + }, + "isMainTexture": false, + "useTilingAndOffset": false, + "m_Modifiable": true, + "m_DefaultType": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.MultiplyNode", + "m_ObjectId": "287d175dfb7e44c18187bdf69ed6d5d0", + "m_Group": { + "m_Id": "d2387c00d8984e4aa40d39ea25262374" + }, + "m_Name": "Multiply", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -1062.0, + "y": 782.6666259765625, + "width": 209.3333740234375, + "height": 304.0001220703125 + } + }, + "m_Slots": [ + { + "m_Id": "9373dada293e4cfe873ee24758aab624" + }, + { + "m_Id": "48d0163f1eb44689bd2d92db8b83c26d" + }, + { + "m_Id": "9b7541f5acf24bebab9e6e52ddbd6978" + } + ], + "synonyms": [ + "multiplication", + "times", + "x" + ], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.FresnelNode", + "m_ObjectId": "2bdcefbcdf6c41c6a3e2987caa8c3026", + "m_Group": { + "m_Id": "d2387c00d8984e4aa40d39ea25262374" + }, + "m_Name": "Fresnel Effect", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -1575.9998779296875, + "y": 192.66664123535157, + "width": 209.3331298828125, + "height": 328.0 + } + }, + "m_Slots": [ + { + "m_Id": "093e7e86995446d2ab10f431b05ef76a" + }, + { + "m_Id": "c2bc03b289c8414faefea80453a771d7" + }, + { + "m_Id": "fb35a4ac50284fd7be5ad8f9852599d8" + }, + { + "m_Id": "a3abbf8c77134dfb883d49bd47948ff5" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 2, + "m_CustomColors": { + "m_SerializableColors": [] + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot", + "m_ObjectId": "2ce60f6d067840858f6f483fe66f7920", + "m_Id": 1, + "m_DisplayName": "Tiling", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Tiling", + "m_StageCapability": 3, + "m_Value": { + "x": 1.0, + "y": 1.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0 + }, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.ColorRGBMaterialSlot", + "m_ObjectId": "3048608fbe8642e28d956117310e0289", + "m_Id": 0, + "m_DisplayName": "Base Color", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "BaseColor", + "m_StageCapability": 2, + "m_Value": { + "x": 0.5, + "y": 0.5, + "z": 0.5 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [], + "m_ColorMode": 0, + "m_DefaultColor": { + "r": 0.5, + "g": 0.5, + "b": 0.5, + "a": 1.0 + } +} + +{ + "m_SGVersion": 1, + "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty", + "m_ObjectId": "33ed807b47194420b7ca5e54e9eaddd5", + "m_Guid": { + "m_GuidSerialized": "6bf14cc0-0608-4ee2-a8ab-3b5e777048a0" + }, + "m_Name": "_Metallic", + "m_DefaultRefNameVersion": 1, + "m_RefNameGeneratedByDisplayName": "_Metallic", + "m_DefaultReferenceName": "_Metallic", + "m_OverrideReferenceName": "", + "m_GeneratePropertyBlock": true, + "m_UseCustomSlotLabel": false, + "m_CustomSlotLabel": "", + "m_Precision": 0, + "overrideHLSLDeclaration": false, + "hlslDeclarationOverride": 0, + "m_Hidden": false, + "m_Value": 0.0, + "m_FloatType": 0, + "m_RangeValues": { + "x": 0.0, + "y": 1.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.GroupData", + "m_ObjectId": "346e9930ce5d4eca9bd1178e5109e3f1", + "m_Title": "Base Color", + "m_Position": { + "x": -1750.0, + "y": -418.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.PropertyNode", + "m_ObjectId": "347ba48b64334e4da6257f142dac85bd", + "m_Group": { + "m_Id": "346e9930ce5d4eca9bd1178e5109e3f1" + }, + "m_Name": "Property", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -1725.0, + "y": -320.9999694824219, + "width": 154.0, + "height": 34.0 + } + }, + "m_Slots": [ + { + "m_Id": "aa99c20e15b34ddd93fbfc3785e93c84" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_Property": { + "m_Id": "9a38e5a780f542199b7ea2ec7be0f311" + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", + "m_ObjectId": "3ca310b930214bd488cbcfe0fb4c4aa1", + "m_Id": 2, + "m_DisplayName": "T", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "T", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot", + "m_ObjectId": "3df7ef171b554965934cd6c224c2fe01", + "m_Id": 2, + "m_DisplayName": "UV", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "UV", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0 + }, + "m_Labels": [], + "m_Channel": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "420cff3beaab447a98e34cbb581c753f", + "m_Group": { + "m_Id": "" + }, + "m_Name": "SurfaceDescription.BaseColor", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": 0.0, + "y": 0.0, + "width": 0.0, + "height": 0.0 + } + }, + "m_Slots": [ + { + "m_Id": "3048608fbe8642e28d956117310e0289" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "SurfaceDescription.BaseColor" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot", + "m_ObjectId": "435c1f0c66d446bcaa8b9305c86b343b", + "m_Id": 0, + "m_DisplayName": "UV", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "UV", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0 + }, + "m_Labels": [], + "m_Channel": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "44e63cb3307344a88ed8b1a5f11b3502", + "m_Group": { + "m_Id": "" + }, + "m_Name": "SurfaceDescription.Specular", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": 0.0, + "y": 0.0, + "width": 0.0, + "height": 0.0 + } + }, + "m_Slots": [ + { + "m_Id": "62558937cb274219a225293cb367c131" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "SurfaceDescription.Specular" +} + +{ + "m_SGVersion": 1, + "m_Type": "UnityEditor.ShaderGraph.Internal.Vector2ShaderProperty", + "m_ObjectId": "482b6de253db465e808a80828ae136f2", + "m_Guid": { + "m_GuidSerialized": "5e3d2d5b-4c27-43b5-a362-5d81e01557f9" + }, + "m_Name": "_NormalTiling", + "m_DefaultRefNameVersion": 1, + "m_RefNameGeneratedByDisplayName": "_NormalTiling", + "m_DefaultReferenceName": "_NormalTiling", + "m_OverrideReferenceName": "", + "m_GeneratePropertyBlock": true, + "m_UseCustomSlotLabel": false, + "m_CustomSlotLabel": "", + "m_Precision": 0, + "overrideHLSLDeclaration": false, + "hlslDeclarationOverride": 0, + "m_Hidden": false, + "m_Value": { + "x": 1.0, + "y": 1.0, + "z": 0.0, + "w": 0.0 + } +} + +{ + "m_SGVersion": 1, + "m_Type": "UnityEditor.ShaderGraph.Internal.Vector2ShaderProperty", + "m_ObjectId": "48a4c9b172e24ee490580e77efba26cc", + "m_Guid": { + "m_GuidSerialized": "3dc1dccc-2e7e-40ab-bdc9-cf5f59fa035f" + }, + "m_Name": "_NormalOffset", + "m_DefaultRefNameVersion": 1, + "m_RefNameGeneratedByDisplayName": "_NormalOffset", + "m_DefaultReferenceName": "_NormalOffset", + "m_OverrideReferenceName": "", + "m_GeneratePropertyBlock": true, + "m_UseCustomSlotLabel": false, + "m_CustomSlotLabel": "", + "m_Precision": 0, + "overrideHLSLDeclaration": false, + "hlslDeclarationOverride": 0, + "m_Hidden": false, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot", + "m_ObjectId": "48d0163f1eb44689bd2d92db8b83c26d", + "m_Id": 1, + "m_DisplayName": "B", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "B", + "m_StageCapability": 3, + "m_Value": { + "e00": 2.0, + "e01": 2.0, + "e02": 2.0, + "e03": 2.0, + "e10": 2.0, + "e11": 2.0, + "e12": 2.0, + "e13": 2.0, + "e20": 2.0, + "e21": 2.0, + "e22": 2.0, + "e23": 2.0, + "e30": 2.0, + "e31": 2.0, + "e32": 2.0, + "e33": 2.0 + }, + "m_DefaultValue": { + "e00": 1.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 1.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 1.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 1.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "49b2e273ff8143c98594122e7bda1921", + "m_Id": 5, + "m_DisplayName": "G", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "G", + "m_StageCapability": 2, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode", + "m_ObjectId": "4aa1427bc1fe490a9883f5a6cd2264a4", + "m_Group": { + "m_Id": "e12fecca803d4bcea0269e65353747b9" + }, + "m_Name": "Sample Texture 2D", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -689.3334350585938, + "y": 1431.3336181640625, + "width": 184.66665649414063, + "height": 254.666748046875 + } + }, + "m_Slots": [ + { + "m_Id": "aedd4f017f0a429eaeec2300f2d34a13" + }, + { + "m_Id": "c1693d33b43944939f79836b5ee92b9e" + }, + { + "m_Id": "49b2e273ff8143c98594122e7bda1921" + }, + { + "m_Id": "75e4b2fc2b14411ea596ad6d043bfd19" + }, + { + "m_Id": "1256dd214f7e485c8ceba8ab2793b320" + }, + { + "m_Id": "69185d49db874cdd997509b2bc47ccf4" + }, + { + "m_Id": "3df7ef171b554965934cd6c224c2fe01" + }, + { + "m_Id": "ca01421b190c4577a0224197d2cd5c7a" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": false, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_TextureType": 1, + "m_NormalMapSpace": 0, + "m_EnableGlobalMipBias": true +} + +{ + "m_SGVersion": 1, + "m_Type": "UnityEditor.Rendering.Universal.ShaderGraph.UniversalTarget", + "m_ObjectId": "4aa8a973dd78498e827b15fa6d213bc0", + "m_ActiveSubTarget": { + "m_Id": "8950326a11f44a81b3fc69ca5170c9c1" + }, + "m_AllowMaterialOverride": true, + "m_SurfaceType": 0, + "m_ZTestMode": 4, + "m_ZWriteControl": 0, + "m_AlphaMode": 0, + "m_RenderFace": 2, + "m_AlphaClip": false, + "m_CastShadows": true, + "m_ReceiveShadows": true, + "m_CustomEditorGUI": "", + "m_SupportVFX": false +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.PropertyNode", + "m_ObjectId": "4b21122999664ab3bd65422a1090bf90", + "m_Group": { + "m_Id": "" + }, + "m_Name": "Property", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -111.0, + "y": 498.0000305175781, + "width": 144.99998474121095, + "height": 33.999969482421878 + } + }, + "m_Slots": [ + { + "m_Id": "78d5ba098fff44d784cac38e12121e35" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_Property": { + "m_Id": "d777fa61789b4e60ac09af623ceb253c" + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "4b876a2eb5374638aa8127fe007028e1", + "m_Id": 5, + "m_DisplayName": "G", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "G", + "m_StageCapability": 2, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.SplitNode", + "m_ObjectId": "4f3ed500dc274e0aa11ac48d35310f1a", + "m_Group": { + "m_Id": "d2387c00d8984e4aa40d39ea25262374" + }, + "m_Name": "Split", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -1666.0, + "y": 750.0000610351563, + "width": 120.6666259765625, + "height": 150.66656494140626 + } + }, + "m_Slots": [ + { + "m_Id": "a25121cc210e4d98839a6414ec205c52" + }, + { + "m_Id": "55f511eff23a439d8e7bb1b90e286404" + }, + { + "m_Id": "c0d7bc7d667546cfa35d8b3f8dcd2a91" + }, + { + "m_Id": "aeaf3c2e18ac44519565912a2a226e0d" + }, + { + "m_Id": "a949b7346d8e49ebb5620272fcfb649b" + } + ], + "synonyms": [ + "separate" + ], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.Rendering.BuiltIn.ShaderGraph.BuiltInLitSubTarget", + "m_ObjectId": "4f5ac9a480ac4addaabd14ae58f8f316", + "m_WorkflowMode": 1, + "m_NormalDropOffSpace": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot", + "m_ObjectId": "506c0f1aebfc4ad09f0eb2121587bcbf", + "m_Id": 0, + "m_DisplayName": "_NormalTiling", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0 + }, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "55f511eff23a439d8e7bb1b90e286404", + "m_Id": 1, + "m_DisplayName": "R", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "R", + "m_StageCapability": 3, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot", + "m_ObjectId": "5924130b5dd6473ab2250627bd2fd164", + "m_Id": 2, + "m_DisplayName": "UV", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "UV", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0 + }, + "m_Labels": [], + "m_Channel": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "597df34c40a4441f998897dc339fb224", + "m_Id": 4, + "m_DisplayName": "R", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "R", + "m_StageCapability": 2, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot", + "m_ObjectId": "5caea0051a0243c69d697cdc1c61849f", + "m_Id": 1, + "m_DisplayName": "Texture", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Texture", + "m_StageCapability": 3, + "m_BareResource": false, + "m_Texture": { + "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}", + "m_Guid": "" + }, + "m_DefaultType": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot", + "m_ObjectId": "5d643daba2cd49489834d2ff5c533711", + "m_Id": 0, + "m_DisplayName": "RGBA", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "RGBA", + "m_StageCapability": 2, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot", + "m_ObjectId": "5f46d02731dd44959c9de80809a55065", + "m_Id": 3, + "m_DisplayName": "Out", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0 + }, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.MultiplyNode", + "m_ObjectId": "5f73c8e6a9e04ee6bd08c7ec664f9ead", + "m_Group": { + "m_Id": "d2387c00d8984e4aa40d39ea25262374" + }, + "m_Name": "Multiply", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -1305.9998779296875, + "y": 368.66668701171877, + "width": 209.333251953125, + "height": 303.99993896484377 + } + }, + "m_Slots": [ + { + "m_Id": "f1e906005cdd4adb8ed714ff5a11decf" + }, + { + "m_Id": "b4d6ff520223479b96c05d917958b9ea" + }, + { + "m_Id": "89c379a11bff4e06a02b4f273fafe67a" + } + ], + "synonyms": [ + "multiplication", + "times", + "x" + ], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.ColorRGBMaterialSlot", + "m_ObjectId": "62558937cb274219a225293cb367c131", + "m_Id": 0, + "m_DisplayName": "Specular Color", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Specular", + "m_StageCapability": 2, + "m_Value": { + "x": 0.5, + "y": 0.5, + "z": 0.5 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [], + "m_ColorMode": 0, + "m_DefaultColor": { + "r": 0.5, + "g": 0.5, + "b": 0.5, + "a": 1.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot", + "m_ObjectId": "65c92864d5e04998a78eaae24932a8bc", + "m_Id": 2, + "m_DisplayName": "Offset", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Offset", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0 + }, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", + "m_ObjectId": "66bdfad7baee489e9146ffc0593536e6", + "m_Id": 1, + "m_DisplayName": "B", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "B", + "m_StageCapability": 3, + "m_Value": { + "x": 1.0, + "y": 1.0, + "z": 1.0, + "w": 1.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + } +} + +{ + "m_SGVersion": 1, + "m_Type": "UnityEditor.ShaderGraph.ColorNode", + "m_ObjectId": "67cd07f9ae82453ea0de2e29dae18080", + "m_Group": { + "m_Id": "346e9930ce5d4eca9bd1178e5109e3f1" + }, + "m_Name": "Color", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -1281.0, + "y": -92.00001525878906, + "width": 208.0, + "height": 127.00001525878906 + } + }, + "m_Slots": [ + { + "m_Id": "cc22d74ed8294080a6739d8c60960af4" + } + ], + "synonyms": [ + "rgba" + ], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_Color": { + "color": { + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 0.0 + }, + "mode": 0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot", + "m_ObjectId": "69185d49db874cdd997509b2bc47ccf4", + "m_Id": 1, + "m_DisplayName": "Texture", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Texture", + "m_StageCapability": 3, + "m_BareResource": false, + "m_Texture": { + "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}", + "m_Guid": "" + }, + "m_DefaultType": 3 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", + "m_ObjectId": "6ad20246b9ee43c1a3d764816839d87e", + "m_Id": 0, + "m_DisplayName": "A", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "A", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "6c6112919ae948c480f769618d6ca3cc", + "m_Id": 0, + "m_DisplayName": "Ambient Occlusion", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Occlusion", + "m_StageCapability": 2, + "m_Value": 1.0, + "m_DefaultValue": 1.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "75e4b2fc2b14411ea596ad6d043bfd19", + "m_Id": 6, + "m_DisplayName": "B", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "B", + "m_StageCapability": 2, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "78d5ba098fff44d784cac38e12121e35", + "m_Id": 0, + "m_DisplayName": "_Smoothness", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.NormalMaterialSlot", + "m_ObjectId": "7eb10e80af9945558dfdd46a9ab7711d", + "m_Id": 0, + "m_DisplayName": "Normal", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Normal", + "m_StageCapability": 1, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [], + "m_Space": 0 +} + +{ + "m_SGVersion": 2, + "m_Type": "UnityEditor.Rendering.BuiltIn.ShaderGraph.BuiltInTarget", + "m_ObjectId": "7f4faf20e056441da3400fcf5a01bd1d", + "m_ActiveSubTarget": { + "m_Id": "4f5ac9a480ac4addaabd14ae58f8f316" + }, + "m_AllowMaterialOverride": true, + "m_SurfaceType": 0, + "m_ZWriteControl": 0, + "m_ZTestMode": 4, + "m_AlphaMode": 0, + "m_RenderFace": 2, + "m_AlphaClip": false, + "m_CustomEditorGUI": "" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.PositionMaterialSlot", + "m_ObjectId": "82d125805fb943fe9c4a333fbd8e7255", + "m_Id": 0, + "m_DisplayName": "Position", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Position", + "m_StageCapability": 1, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [], + "m_Space": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "8361725185a94957a52e7ec7c79be04c", + "m_Id": 7, + "m_DisplayName": "A", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "A", + "m_StageCapability": 2, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "85094a7e47404ac2ab51e47eafce138f", + "m_Id": 1, + "m_DisplayName": "Strength", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Strength", + "m_StageCapability": 3, + "m_Value": 1.0, + "m_DefaultValue": 1.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.Rendering.Universal.ShaderGraph.UniversalLitSubTarget", + "m_ObjectId": "8950326a11f44a81b3fc69ca5170c9c1", + "m_WorkflowMode": 1, + "m_NormalDropOffSpace": 0, + "m_ClearCoat": false +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot", + "m_ObjectId": "89c379a11bff4e06a02b4f273fafe67a", + "m_Id": 2, + "m_DisplayName": "Out", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": { + "e00": 0.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 0.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 0.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 0.0 + }, + "m_DefaultValue": { + "e00": 1.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 1.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 1.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 1.0 + } +} + +{ + "m_SGVersion": 1, + "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty", + "m_ObjectId": "8b7d12739f9d4a64ad74d97000195713", + "m_Guid": { + "m_GuidSerialized": "e6af6915-1660-4e93-8ebe-6218e0863f03" + }, + "m_Name": "_RimPower", + "m_DefaultRefNameVersion": 1, + "m_RefNameGeneratedByDisplayName": "_RimPower", + "m_DefaultReferenceName": "_RimPower", + "m_OverrideReferenceName": "", + "m_GeneratePropertyBlock": true, + "m_UseCustomSlotLabel": false, + "m_CustomSlotLabel": "", + "m_Precision": 0, + "overrideHLSLDeclaration": false, + "hlslDeclarationOverride": 0, + "m_Hidden": false, + "m_Value": 5.0, + "m_FloatType": 0, + "m_RangeValues": { + "x": 0.0, + "y": 1.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.PropertyNode", + "m_ObjectId": "8fa23fa35fce46898c7646a5eb1ed324", + "m_Group": { + "m_Id": "e12fecca803d4bcea0269e65353747b9" + }, + "m_Name": "Property", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -1155.3336181640625, + "y": 1648.6671142578125, + "width": 148.66680908203126, + "height": 35.999755859375 + } + }, + "m_Slots": [ + { + "m_Id": "506c0f1aebfc4ad09f0eb2121587bcbf" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_Property": { + "m_Id": "482b6de253db465e808a80828ae136f2" + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "90dcf6b524a349428f5929f14d197009", + "m_Id": 0, + "m_DisplayName": "_NormalStrength", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "92a68cfb809948f78bed1524817e802f", + "m_Group": { + "m_Id": "" + }, + "m_Name": "VertexDescription.Normal", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": 0.0, + "y": 0.0, + "width": 0.0, + "height": 0.0 + } + }, + "m_Slots": [ + { + "m_Id": "7eb10e80af9945558dfdd46a9ab7711d" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "VertexDescription.Normal" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot", + "m_ObjectId": "9373dada293e4cfe873ee24758aab624", + "m_Id": 0, + "m_DisplayName": "A", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "A", + "m_StageCapability": 3, + "m_Value": { + "e00": 0.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 0.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 0.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 0.0 + }, + "m_DefaultValue": { + "e00": 1.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 1.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 1.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 1.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "93777603651842e8ba2575a7d75ab84e", + "m_Id": 6, + "m_DisplayName": "B", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "B", + "m_StageCapability": 2, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Internal.Texture2DShaderProperty", + "m_ObjectId": "9a38e5a780f542199b7ea2ec7be0f311", + "m_Guid": { + "m_GuidSerialized": "378aba7a-99d9-4bef-ae7d-ee04663c8b22" + }, + "m_Name": "_MainTexture", + "m_DefaultRefNameVersion": 1, + "m_RefNameGeneratedByDisplayName": "_MainTexture", + "m_DefaultReferenceName": "_MainTexture", + "m_OverrideReferenceName": "", + "m_GeneratePropertyBlock": true, + "m_UseCustomSlotLabel": false, + "m_CustomSlotLabel": "", + "m_Precision": 0, + "overrideHLSLDeclaration": false, + "hlslDeclarationOverride": 0, + "m_Hidden": false, + "m_Value": { + "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}", + "m_Guid": "" + }, + "isMainTexture": false, + "useTilingAndOffset": false, + "m_Modifiable": true, + "m_DefaultType": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot", + "m_ObjectId": "9b7541f5acf24bebab9e6e52ddbd6978", + "m_Id": 2, + "m_DisplayName": "Out", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": { + "e00": 0.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 0.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 0.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 0.0 + }, + "m_DefaultValue": { + "e00": 1.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 1.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 1.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 1.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.PropertyNode", + "m_ObjectId": "9be4b481dfe642d3960f2b92e27f46f7", + "m_Group": { + "m_Id": "d2387c00d8984e4aa40d39ea25262374" + }, + "m_Name": "Property", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -1727.333251953125, + "y": 512.0, + "width": 133.9998779296875, + "height": 36.0 + } + }, + "m_Slots": [ + { + "m_Id": "bc6beafdb79a48e0a51da2b31c014b0d" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_Property": { + "m_Id": "8b7d12739f9d4a64ad74d97000195713" + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "a0af5b6dc5e04d53961c9637cae2fd54", + "m_Id": 0, + "m_DisplayName": "_Metallic", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", + "m_ObjectId": "a0f05ff40df64bf88bdef02e17ad9f58", + "m_Id": 0, + "m_DisplayName": "In", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "In", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", + "m_ObjectId": "a25121cc210e4d98839a6414ec205c52", + "m_Id": 0, + "m_DisplayName": "In", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "In", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "a3abbf8c77134dfb883d49bd47948ff5", + "m_Id": 3, + "m_DisplayName": "Out", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.TilingAndOffsetNode", + "m_ObjectId": "a494549a5e5c4a9eaa0853c58ef669a7", + "m_Group": { + "m_Id": "e12fecca803d4bcea0269e65353747b9" + }, + "m_Name": "Tiling And Offset", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -982.6668090820313, + "y": 1569.3336181640625, + "width": 209.33331298828126, + "height": 327.9998779296875 + } + }, + "m_Slots": [ + { + "m_Id": "435c1f0c66d446bcaa8b9305c86b343b" + }, + { + "m_Id": "2ce60f6d067840858f6f483fe66f7920" + }, + { + "m_Id": "65c92864d5e04998a78eaae24932a8bc" + }, + { + "m_Id": "5f46d02731dd44959c9de80809a55065" + } + ], + "synonyms": [ + "pan", + "scale" + ], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "a949b7346d8e49ebb5620272fcfb649b", + "m_Id": 4, + "m_DisplayName": "A", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "A", + "m_StageCapability": 3, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot", + "m_ObjectId": "aa99c20e15b34ddd93fbfc3785e93c84", + "m_Id": 0, + "m_DisplayName": "_MainTexture", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_BareResource": false +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.NormalVectorNode", + "m_ObjectId": "ae5e313f8d344ca893e946534337db18", + "m_Group": { + "m_Id": "d2387c00d8984e4aa40d39ea25262374" + }, + "m_Name": "Normal Vector", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -1811.9998779296875, + "y": 192.66664123535157, + "width": 207.3331298828125, + "height": 134.6667022705078 + } + }, + "m_Slots": [ + { + "m_Id": "090dac5d94e9450bbca9bf47c6502992" + } + ], + "synonyms": [ + "surface direction" + ], + "m_Precision": 0, + "m_PreviewExpanded": false, + "m_PreviewMode": 2, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_Space": 2 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "aeaf3c2e18ac44519565912a2a226e0d", + "m_Id": 3, + "m_DisplayName": "B", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "B", + "m_StageCapability": 3, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot", + "m_ObjectId": "aedd4f017f0a429eaeec2300f2d34a13", + "m_Id": 0, + "m_DisplayName": "RGBA", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "RGBA", + "m_StageCapability": 2, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.MultiplyNode", + "m_ObjectId": "b235a886335b4c1ab4872a03c9eccfb0", + "m_Group": { + "m_Id": "346e9930ce5d4eca9bd1178e5109e3f1" + }, + "m_Name": "Multiply", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -1231.0, + "y": -260.0, + "width": 130.0, + "height": 118.00001525878906 + } + }, + "m_Slots": [ + { + "m_Id": "204bf07fc52f464886121fba7aa55854" + }, + { + "m_Id": "ce67ea2f6bc747a9b3388ca695f14173" + }, + { + "m_Id": "d0955daf6fd24052b1262de5b954a04c" + } + ], + "synonyms": [ + "multiplication", + "times", + "x" + ], + "m_Precision": 0, + "m_PreviewExpanded": false, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot", + "m_ObjectId": "b4d6ff520223479b96c05d917958b9ea", + "m_Id": 1, + "m_DisplayName": "B", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "B", + "m_StageCapability": 3, + "m_Value": { + "e00": 2.0, + "e01": 2.0, + "e02": 2.0, + "e03": 2.0, + "e10": 2.0, + "e11": 2.0, + "e12": 2.0, + "e13": 2.0, + "e20": 2.0, + "e21": 2.0, + "e22": 2.0, + "e23": 2.0, + "e30": 2.0, + "e31": 2.0, + "e32": 2.0, + "e33": 2.0 + }, + "m_DefaultValue": { + "e00": 1.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 1.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 1.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 1.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode", + "m_ObjectId": "b595b08d61a241218a3d80c369108496", + "m_Group": { + "m_Id": "346e9930ce5d4eca9bd1178e5109e3f1" + }, + "m_Name": "Sample Texture 2D", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -1524.0, + "y": -359.0, + "width": 183.0, + "height": 250.99996948242188 + } + }, + "m_Slots": [ + { + "m_Id": "5d643daba2cd49489834d2ff5c533711" + }, + { + "m_Id": "597df34c40a4441f998897dc339fb224" + }, + { + "m_Id": "4b876a2eb5374638aa8127fe007028e1" + }, + { + "m_Id": "93777603651842e8ba2575a7d75ab84e" + }, + { + "m_Id": "8361725185a94957a52e7ec7c79be04c" + }, + { + "m_Id": "5caea0051a0243c69d697cdc1c61849f" + }, + { + "m_Id": "5924130b5dd6473ab2250627bd2fd164" + }, + { + "m_Id": "d5be504a226a48f89855449d24fd4408" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": false, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_TextureType": 0, + "m_NormalMapSpace": 0, + "m_EnableGlobalMipBias": true +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "b6a22e59a17a422c9ceac09ca5674c70", + "m_Group": { + "m_Id": "" + }, + "m_Name": "SurfaceDescription.NormalTS", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": 0.0, + "y": 0.0, + "width": 0.0, + "height": 0.0 + } + }, + "m_Slots": [ + { + "m_Id": "1b7a5e0aa600437986160c13473a534c" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "SurfaceDescription.NormalTS" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.PropertyNode", + "m_ObjectId": "b73b6b04fdab45deba4776d91f3464e7", + "m_Group": { + "m_Id": "e12fecca803d4bcea0269e65353747b9" + }, + "m_Name": "Property", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -1155.3336181640625, + "y": 1468.6668701171875, + "width": 150.0, + "height": 36.0001220703125 + } + }, + "m_Slots": [ + { + "m_Id": "e496b85a93f84d2aaed9bffea8dd638a" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_Property": { + "m_Id": "286f78650b2f4e19bbe36808021ec65b" + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "bc6beafdb79a48e0a51da2b31c014b0d", + "m_Id": 0, + "m_DisplayName": "_RimPower", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.LerpNode", + "m_ObjectId": "bdf57607f4ba4a3489c0e98ad3c19461", + "m_Group": { + "m_Id": "346e9930ce5d4eca9bd1178e5109e3f1" + }, + "m_Name": "Lerp", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -795.0, + "y": -260.0, + "width": 130.0, + "height": 142.00003051757813 + } + }, + "m_Slots": [ + { + "m_Id": "6ad20246b9ee43c1a3d764816839d87e" + }, + { + "m_Id": "66bdfad7baee489e9146ffc0593536e6" + }, + { + "m_Id": "3ca310b930214bd488cbcfe0fb4c4aa1" + }, + { + "m_Id": "c9f4d4e361714aeda80766b19607836f" + } + ], + "synonyms": [ + "mix", + "blend", + "linear interpolate" + ], + "m_Precision": 0, + "m_PreviewExpanded": false, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "c0d7bc7d667546cfa35d8b3f8dcd2a91", + "m_Id": 2, + "m_DisplayName": "G", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "G", + "m_StageCapability": 3, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "c1693d33b43944939f79836b5ee92b9e", + "m_Id": 4, + "m_DisplayName": "R", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "R", + "m_StageCapability": 2, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.ViewDirectionMaterialSlot", + "m_ObjectId": "c2bc03b289c8414faefea80453a771d7", + "m_Id": 1, + "m_DisplayName": "View Dir", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "ViewDir", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [], + "m_Space": 2 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.ColorRGBMaterialSlot", + "m_ObjectId": "c3c92150b5bf4f5cba45fc161483f9b3", + "m_Id": 0, + "m_DisplayName": "Emission", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Emission", + "m_StageCapability": 2, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [], + "m_ColorMode": 1, + "m_DefaultColor": { + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 1.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.PropertyNode", + "m_ObjectId": "c41673cb40ec4182ba75ff9078f9dd76", + "m_Group": { + "m_Id": "e12fecca803d4bcea0269e65353747b9" + }, + "m_Name": "Property", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -1155.3336181640625, + "y": 1682.6669921875, + "width": 153.3333740234375, + "height": 36.0001220703125 + } + }, + "m_Slots": [ + { + "m_Id": "21ecb0ca4fd14bd1963896f80890fcdf" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_Property": { + "m_Id": "48a4c9b172e24ee490580e77efba26cc" + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", + "m_ObjectId": "c9f4d4e361714aeda80766b19607836f", + "m_Id": 3, + "m_DisplayName": "Out", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot", + "m_ObjectId": "ca01421b190c4577a0224197d2cd5c7a", + "m_Id": 3, + "m_DisplayName": "Sampler", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Sampler", + "m_StageCapability": 3, + "m_BareResource": false +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot", + "m_ObjectId": "cc22d74ed8294080a6739d8c60960af4", + "m_Id": 0, + "m_DisplayName": "Out", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot", + "m_ObjectId": "ce67ea2f6bc747a9b3388ca695f14173", + "m_Id": 1, + "m_DisplayName": "B", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "B", + "m_StageCapability": 3, + "m_Value": { + "e00": 2.0, + "e01": 2.0, + "e02": 2.0, + "e03": 2.0, + "e10": 2.0, + "e11": 2.0, + "e12": 2.0, + "e13": 2.0, + "e20": 2.0, + "e21": 2.0, + "e22": 2.0, + "e23": 2.0, + "e30": 2.0, + "e31": 2.0, + "e32": 2.0, + "e33": 2.0 + }, + "m_DefaultValue": { + "e00": 1.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 1.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 1.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 1.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.CategoryData", + "m_ObjectId": "ce7e4776faf54c8c921c004ff57e6a67", + "m_Name": "", + "m_ChildObjectList": [ + { + "m_Id": "13226371ac59487c895d28a58a0b3e3a" + }, + { + "m_Id": "9a38e5a780f542199b7ea2ec7be0f311" + }, + { + "m_Id": "d777fa61789b4e60ac09af623ceb253c" + }, + { + "m_Id": "33ed807b47194420b7ca5e54e9eaddd5" + }, + { + "m_Id": "8b7d12739f9d4a64ad74d97000195713" + }, + { + "m_Id": "0e2d0060fb6647d8acd0791e1a2eb28f" + }, + { + "m_Id": "286f78650b2f4e19bbe36808021ec65b" + }, + { + "m_Id": "482b6de253db465e808a80828ae136f2" + }, + { + "m_Id": "48a4c9b172e24ee490580e77efba26cc" + }, + { + "m_Id": "edabcdf3486a4812ae5658b8254c258d" + } + ] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "cee5b6702a794bbeb43982d32bfc94fd", + "m_Group": { + "m_Id": "" + }, + "m_Name": "VertexDescription.Tangent", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": 0.0, + "y": 0.0, + "width": 0.0, + "height": 0.0 + } + }, + "m_Slots": [ + { + "m_Id": "d0a6e92f04b14b07ba374bcd06109ec8" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "VertexDescription.Tangent" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "cef58d737f9a4ad88ee208166ef4ce90", + "m_Group": { + "m_Id": "" + }, + "m_Name": "SurfaceDescription.Occlusion", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": 0.0, + "y": 0.0, + "width": 0.0, + "height": 0.0 + } + }, + "m_Slots": [ + { + "m_Id": "6c6112919ae948c480f769618d6ca3cc" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "SurfaceDescription.Occlusion" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot", + "m_ObjectId": "d0955daf6fd24052b1262de5b954a04c", + "m_Id": 2, + "m_DisplayName": "Out", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": { + "e00": 0.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 0.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 0.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 0.0 + }, + "m_DefaultValue": { + "e00": 1.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 1.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 1.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 1.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.TangentMaterialSlot", + "m_ObjectId": "d0a6e92f04b14b07ba374bcd06109ec8", + "m_Id": 0, + "m_DisplayName": "Tangent", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Tangent", + "m_StageCapability": 1, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [], + "m_Space": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.GroupData", + "m_ObjectId": "d2387c00d8984e4aa40d39ea25262374", + "m_Title": "Edge Highlight", + "m_Position": { + "x": -1989.333251953125, + "y": 134.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot", + "m_ObjectId": "d5be504a226a48f89855449d24fd4408", + "m_Id": 3, + "m_DisplayName": "Sampler", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Sampler", + "m_StageCapability": 3, + "m_BareResource": false +} + +{ + "m_SGVersion": 1, + "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty", + "m_ObjectId": "d777fa61789b4e60ac09af623ceb253c", + "m_Guid": { + "m_GuidSerialized": "0c0c8dbd-aebb-4237-b517-04b8441662cd" + }, + "m_Name": "_Smoothness", + "m_DefaultRefNameVersion": 1, + "m_RefNameGeneratedByDisplayName": "_Smoothness", + "m_DefaultReferenceName": "_Smoothness", + "m_OverrideReferenceName": "", + "m_GeneratePropertyBlock": true, + "m_UseCustomSlotLabel": false, + "m_CustomSlotLabel": "", + "m_Precision": 0, + "overrideHLSLDeclaration": false, + "hlslDeclarationOverride": 0, + "m_Hidden": false, + "m_Value": 0.5, + "m_FloatType": 0, + "m_RangeValues": { + "x": 0.0, + "y": 1.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", + "m_ObjectId": "d8b5fc969aca4bf2b3b1da659f582a24", + "m_Id": 2, + "m_DisplayName": "Out", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "dc5c91e79c014636a601536af3db47c8", + "m_Group": { + "m_Id": "" + }, + "m_Name": "VertexDescription.Position", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": 0.0, + "y": 0.0, + "width": 0.0, + "height": 0.0 + } + }, + "m_Slots": [ + { + "m_Id": "82d125805fb943fe9c4a333fbd8e7255" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "VertexDescription.Position" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.GroupData", + "m_ObjectId": "e12fecca803d4bcea0269e65353747b9", + "m_Title": "Normal", + "m_Position": { + "x": -1180.6669921875, + "y": 1372.6666259765625 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot", + "m_ObjectId": "e233a5083310407eb373bca889c776fb", + "m_Id": 0, + "m_DisplayName": "_BaseColor", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot", + "m_ObjectId": "e496b85a93f84d2aaed9bffea8dd638a", + "m_Id": 0, + "m_DisplayName": "_NormalMap", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_BareResource": false +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.PropertyNode", + "m_ObjectId": "e6385eca93e04655ac0c7e189b3fcc60", + "m_Group": { + "m_Id": "d2387c00d8984e4aa40d39ea25262374" + }, + "m_Name": "Property", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -1963.9998779296875, + "y": 730.6666259765625, + "width": 130.6666259765625, + "height": 36.0 + } + }, + "m_Slots": [ + { + "m_Id": "ea6145f6bbac4c32be932805370dbecc" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_Property": { + "m_Id": "0e2d0060fb6647d8acd0791e1a2eb28f" + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot", + "m_ObjectId": "ea6145f6bbac4c32be932805370dbecc", + "m_Id": 0, + "m_DisplayName": "_RimColor", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "eafb2f1b4ba4441e9fa3108ff8dca237", + "m_Group": { + "m_Id": "" + }, + "m_Name": "SurfaceDescription.AlphaClipThreshold", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": 0.0, + "y": 0.0, + "width": 0.0, + "height": 0.0 + } + }, + "m_Slots": [ + { + "m_Id": "010c84257e1d457c9139b10afe0c86ce" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "SurfaceDescription.AlphaClipThreshold" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.MultiplyNode", + "m_ObjectId": "ec5b4f9bacdc41899dc4d7117d8770c5", + "m_Group": { + "m_Id": "346e9930ce5d4eca9bd1178e5109e3f1" + }, + "m_Name": "Multiply", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -1008.0, + "y": -176.99998474121095, + "width": 130.0, + "height": 118.0 + } + }, + "m_Slots": [ + { + "m_Id": "0f2b559f30b14a44ad0eb771394fba11" + }, + { + "m_Id": "168ebbe1e8ff4012ba3f03f575db7f62" + }, + { + "m_Id": "08269a550cd74ba29f50c7d60fb4dcc2" + } + ], + "synonyms": [ + "multiplication", + "times", + "x" + ], + "m_Precision": 0, + "m_PreviewExpanded": false, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.NormalStrengthNode", + "m_ObjectId": "ed5c980ec8ff40d8b0929a9783b4749b", + "m_Group": { + "m_Id": "e12fecca803d4bcea0269e65353747b9" + }, + "m_Name": "Normal Strength", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -466.6667785644531, + "y": 1648.6671142578125, + "width": 209.3333740234375, + "height": 303.9998779296875 + } + }, + "m_Slots": [ + { + "m_Id": "a0f05ff40df64bf88bdef02e17ad9f58" + }, + { + "m_Id": "85094a7e47404ac2ab51e47eafce138f" + }, + { + "m_Id": "d8b5fc969aca4bf2b3b1da659f582a24" + } + ], + "synonyms": [ + "intensity" + ], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + } +} + +{ + "m_SGVersion": 1, + "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty", + "m_ObjectId": "edabcdf3486a4812ae5658b8254c258d", + "m_Guid": { + "m_GuidSerialized": "c641259e-615a-4125-a659-964ec1e4ca41" + }, + "m_Name": "_NormalStrength", + "m_DefaultRefNameVersion": 1, + "m_RefNameGeneratedByDisplayName": "_NormalStrength", + "m_DefaultReferenceName": "_NormalStrength", + "m_OverrideReferenceName": "", + "m_GeneratePropertyBlock": true, + "m_UseCustomSlotLabel": false, + "m_CustomSlotLabel": "", + "m_Precision": 0, + "overrideHLSLDeclaration": false, + "hlslDeclarationOverride": 0, + "m_Hidden": false, + "m_Value": 0.20000000298023225, + "m_FloatType": 0, + "m_RangeValues": { + "x": 0.0, + "y": 1.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "edc683028f7f4a08b249d0f0183a917e", + "m_Group": { + "m_Id": "" + }, + "m_Name": "SurfaceDescription.Emission", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": 0.0, + "y": 0.0, + "width": 0.0, + "height": 0.0 + } + }, + "m_Slots": [ + { + "m_Id": "c3c92150b5bf4f5cba45fc161483f9b3" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "SurfaceDescription.Emission" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot", + "m_ObjectId": "f1e906005cdd4adb8ed714ff5a11decf", + "m_Id": 0, + "m_DisplayName": "A", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "A", + "m_StageCapability": 3, + "m_Value": { + "e00": 0.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 0.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 0.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 0.0 + }, + "m_DefaultValue": { + "e00": 1.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 1.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 1.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 1.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "f9bfc7cf42df49dbb5c5bb74afedf657", + "m_Id": 0, + "m_DisplayName": "Metallic", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Metallic", + "m_StageCapability": 2, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "fb35a4ac50284fd7be5ad8f9852599d8", + "m_Id": 2, + "m_DisplayName": "Power", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Power", + "m_StageCapability": 3, + "m_Value": 1.0, + "m_DefaultValue": 1.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.PropertyNode", + "m_ObjectId": "ff719c8fc32845faa0b1dc53fd3eae21", + "m_Group": { + "m_Id": "e12fecca803d4bcea0269e65353747b9" + }, + "m_Name": "Property", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -669.33349609375, + "y": 1759.333740234375, + "width": 163.99996948242188, + "height": 35.9998779296875 + } + }, + "m_Slots": [ + { + "m_Id": "90dcf6b524a349428f5929f14d197009" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_Property": { + "m_Id": "edabcdf3486a4812ae5658b8254c258d" + } +} + diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/Interactable.shadergraph.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/Interactable.shadergraph.meta new file mode 100644 index 00000000..36b31839 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/Interactable.shadergraph.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 0927d29e476ce5843b1f7d2a96943c51 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3} diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/UI-NoZTest.shader b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/UI-NoZTest.shader new file mode 100644 index 00000000..c8cc4efc --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/UI-NoZTest.shader @@ -0,0 +1,95 @@ +Shader "UI/NoZTest" +{ + Properties + { + [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} + _Color ("Tint", Color) = (1,1,1,1) + [Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0 + } + + SubShader + { + Tags + { + "Queue"="Transparent" + "IgnoreProjector"="True" + "RenderType"="Transparent" + "PreviewType"="Plane" + "CanUseSpriteAtlas"="True" + } + + Cull Off + Lighting Off + ZWrite Off + ZTest Off + Blend SrcAlpha OneMinusSrcAlpha + + Pass + { + Name "Default" + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma target 2.0 + + #include "UnityCG.cginc" + #include "UnityUI.cginc" + + #pragma multi_compile_local _ UNITY_UI_CLIP_RECT + #pragma multi_compile_local _ UNITY_UI_ALPHACLIP + + struct appdata_t + { + float4 vertex : POSITION; + float4 color : COLOR; + float2 texcoord : TEXCOORD0; + UNITY_VERTEX_INPUT_INSTANCE_ID + }; + + struct v2f + { + float4 vertex : SV_POSITION; + fixed4 color : COLOR; + float2 texcoord : TEXCOORD0; + float4 worldPosition : TEXCOORD1; + UNITY_VERTEX_OUTPUT_STEREO + }; + + sampler2D _MainTex; + fixed4 _Color; + fixed4 _TextureSampleAdd; + float4 _ClipRect; + float4 _MainTex_ST; + + v2f vert(appdata_t v) + { + v2f OUT; + UNITY_SETUP_INSTANCE_ID(v); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT); + OUT.worldPosition = v.vertex; + OUT.vertex = UnityObjectToClipPos(OUT.worldPosition); + + OUT.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex); + + OUT.color = v.color * _Color; + return OUT; + } + + fixed4 frag(v2f IN) : SV_Target + { + half4 color = (tex2D(_MainTex, IN.texcoord) + _TextureSampleAdd) * IN.color; + + #ifdef UNITY_UI_CLIP_RECT + color.a *= UnityGet2DClipping(IN.worldPosition.xy, _ClipRect); + #endif + + #ifdef UNITY_UI_ALPHACLIP + clip (color.a - 0.001); + #endif + + return color; + } + ENDCG + } + } +} diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/UI-NoZTest.shader.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/UI-NoZTest.shader.meta new file mode 100644 index 00000000..c289cee6 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/UI-NoZTest.shader.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: a661e7516de55c047905f40ca76fe701 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + preprocessorOverride: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/Unlit_Fresnel.shadergraph b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/Unlit_Fresnel.shadergraph new file mode 100644 index 00000000..d2cb6950 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/Unlit_Fresnel.shadergraph @@ -0,0 +1,2197 @@ +{ + "m_SGVersion": 3, + "m_Type": "UnityEditor.ShaderGraph.GraphData", + "m_ObjectId": "34a2241cace747c1aab795b47b74d96c", + "m_Properties": [ + { + "m_Id": "13226371ac59487c895d28a58a0b3e3a" + }, + { + "m_Id": "8b7d12739f9d4a64ad74d97000195713" + }, + { + "m_Id": "0e2d0060fb6647d8acd0791e1a2eb28f" + } + ], + "m_Keywords": [], + "m_Dropdowns": [], + "m_CategoryData": [ + { + "m_Id": "ce7e4776faf54c8c921c004ff57e6a67" + } + ], + "m_Nodes": [ + { + "m_Id": "dc5c91e79c014636a601536af3db47c8" + }, + { + "m_Id": "92a68cfb809948f78bed1524817e802f" + }, + { + "m_Id": "cee5b6702a794bbeb43982d32bfc94fd" + }, + { + "m_Id": "420cff3beaab447a98e34cbb581c753f" + }, + { + "m_Id": "09b3896ce0154c11be905235318d515f" + }, + { + "m_Id": "eafb2f1b4ba4441e9fa3108ff8dca237" + }, + { + "m_Id": "2bdcefbcdf6c41c6a3e2987caa8c3026" + }, + { + "m_Id": "0acf8bd626b94aabb7d43f6b72ce295d" + }, + { + "m_Id": "ae5e313f8d344ca893e946534337db18" + }, + { + "m_Id": "5f73c8e6a9e04ee6bd08c7ec664f9ead" + }, + { + "m_Id": "4f3ed500dc274e0aa11ac48d35310f1a" + }, + { + "m_Id": "9be4b481dfe642d3960f2b92e27f46f7" + }, + { + "m_Id": "e6385eca93e04655ac0c7e189b3fcc60" + }, + { + "m_Id": "287d175dfb7e44c18187bdf69ed6d5d0" + }, + { + "m_Id": "168e578c571c4e899268bfd7419acebb" + }, + { + "m_Id": "aaaf13e266e24c96b49d642e1d29febc" + }, + { + "m_Id": "1225ed0d1aa34528bbc8820b38841316" + }, + { + "m_Id": "3a2438f9bbdd447ca9be452f10c6038b" + } + ], + "m_GroupDatas": [ + { + "m_Id": "d2387c00d8984e4aa40d39ea25262374" + }, + { + "m_Id": "9366a6b5dbf4480fa0dbd4f5767c9c60" + } + ], + "m_StickyNoteDatas": [], + "m_Edges": [ + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "0acf8bd626b94aabb7d43f6b72ce295d" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "2bdcefbcdf6c41c6a3e2987caa8c3026" + }, + "m_SlotId": 1 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "1225ed0d1aa34528bbc8820b38841316" + }, + "m_SlotId": 4 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "3a2438f9bbdd447ca9be452f10c6038b" + }, + "m_SlotId": 1 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "168e578c571c4e899268bfd7419acebb" + }, + "m_SlotId": 2 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "287d175dfb7e44c18187bdf69ed6d5d0" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "287d175dfb7e44c18187bdf69ed6d5d0" + }, + "m_SlotId": 2 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "420cff3beaab447a98e34cbb581c753f" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "2bdcefbcdf6c41c6a3e2987caa8c3026" + }, + "m_SlotId": 3 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "5f73c8e6a9e04ee6bd08c7ec664f9ead" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "3a2438f9bbdd447ca9be452f10c6038b" + }, + "m_SlotId": 2 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "168e578c571c4e899268bfd7419acebb" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "4f3ed500dc274e0aa11ac48d35310f1a" + }, + "m_SlotId": 4 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "09b3896ce0154c11be905235318d515f" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "4f3ed500dc274e0aa11ac48d35310f1a" + }, + "m_SlotId": 4 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "287d175dfb7e44c18187bdf69ed6d5d0" + }, + "m_SlotId": 1 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "5f73c8e6a9e04ee6bd08c7ec664f9ead" + }, + "m_SlotId": 2 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "168e578c571c4e899268bfd7419acebb" + }, + "m_SlotId": 1 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "9be4b481dfe642d3960f2b92e27f46f7" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "2bdcefbcdf6c41c6a3e2987caa8c3026" + }, + "m_SlotId": 2 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "aaaf13e266e24c96b49d642e1d29febc" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "1225ed0d1aa34528bbc8820b38841316" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "aaaf13e266e24c96b49d642e1d29febc" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "3a2438f9bbdd447ca9be452f10c6038b" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "ae5e313f8d344ca893e946534337db18" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "2bdcefbcdf6c41c6a3e2987caa8c3026" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "e6385eca93e04655ac0c7e189b3fcc60" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "4f3ed500dc274e0aa11ac48d35310f1a" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "e6385eca93e04655ac0c7e189b3fcc60" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "5f73c8e6a9e04ee6bd08c7ec664f9ead" + }, + "m_SlotId": 1 + } + } + ], + "m_VertexContext": { + "m_Position": { + "x": 112.99992370605469, + "y": 132.00003051757813 + }, + "m_Blocks": [ + { + "m_Id": "dc5c91e79c014636a601536af3db47c8" + }, + { + "m_Id": "92a68cfb809948f78bed1524817e802f" + }, + { + "m_Id": "cee5b6702a794bbeb43982d32bfc94fd" + } + ] + }, + "m_FragmentContext": { + "m_Position": { + "x": 112.99992370605469, + "y": 331.9999084472656 + }, + "m_Blocks": [ + { + "m_Id": "420cff3beaab447a98e34cbb581c753f" + }, + { + "m_Id": "09b3896ce0154c11be905235318d515f" + }, + { + "m_Id": "eafb2f1b4ba4441e9fa3108ff8dca237" + } + ] + }, + "m_PreviewData": { + "serializedMesh": { + "m_SerializedMesh": "{\"mesh\":{\"instanceID\":0}}", + "m_Guid": "" + }, + "preventRotation": false + }, + "m_Path": "Shader Graphs", + "m_GraphPrecision": 1, + "m_PreviewMode": 2, + "m_OutputNode": { + "m_Id": "" + }, + "m_ActiveTargets": [ + { + "m_Id": "7f4faf20e056441da3400fcf5a01bd1d" + }, + { + "m_Id": "4aa8a973dd78498e827b15fa6d213bc0" + } + ] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", + "m_ObjectId": "000fa6abe01e4941816071bbc2cb95dc", + "m_Id": 1, + "m_DisplayName": "B", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "B", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "010c84257e1d457c9139b10afe0c86ce", + "m_Id": 0, + "m_DisplayName": "Alpha Clip Threshold", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "AlphaClipThreshold", + "m_StageCapability": 2, + "m_Value": 0.5, + "m_DefaultValue": 0.5, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", + "m_ObjectId": "07b346956d8e427a8fb6a4e597439425", + "m_Id": 0, + "m_DisplayName": "Out", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", + "m_ObjectId": "090dac5d94e9450bbca9bf47c6502992", + "m_Id": 0, + "m_DisplayName": "Out", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.NormalMaterialSlot", + "m_ObjectId": "093e7e86995446d2ab10f431b05ef76a", + "m_Id": 0, + "m_DisplayName": "Normal", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Normal", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [], + "m_Space": 2 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "09b3896ce0154c11be905235318d515f", + "m_Group": { + "m_Id": "" + }, + "m_Name": "SurfaceDescription.Alpha", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": 0.0, + "y": 0.0, + "width": 0.0, + "height": 0.0 + } + }, + "m_Slots": [ + { + "m_Id": "1b62da38b8ef48edb6ff30ae07ce41b8" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "SurfaceDescription.Alpha" +} + +{ + "m_SGVersion": 1, + "m_Type": "UnityEditor.ShaderGraph.ViewDirectionNode", + "m_ObjectId": "0acf8bd626b94aabb7d43f6b72ce295d", + "m_Group": { + "m_Id": "d2387c00d8984e4aa40d39ea25262374" + }, + "m_Name": "View Direction", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -1810.0001220703125, + "y": 332.0, + "width": 207.3333740234375, + "height": 134.66677856445313 + } + }, + "m_Slots": [ + { + "m_Id": "07b346956d8e427a8fb6a4e597439425" + } + ], + "synonyms": [ + "eye direction" + ], + "m_Precision": 0, + "m_PreviewExpanded": false, + "m_PreviewMode": 2, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_Space": 2 +} + +{ + "m_SGVersion": 3, + "m_Type": "UnityEditor.ShaderGraph.Internal.ColorShaderProperty", + "m_ObjectId": "0e2d0060fb6647d8acd0791e1a2eb28f", + "m_Guid": { + "m_GuidSerialized": "c5c7a42b-05c6-4506-8cd3-7905607cdb99" + }, + "m_Name": "_RimColor", + "m_DefaultRefNameVersion": 1, + "m_RefNameGeneratedByDisplayName": "_RimColor", + "m_DefaultReferenceName": "_RimColor", + "m_OverrideReferenceName": "", + "m_GeneratePropertyBlock": true, + "m_UseCustomSlotLabel": false, + "m_CustomSlotLabel": "", + "m_Precision": 0, + "overrideHLSLDeclaration": false, + "hlslDeclarationOverride": 0, + "m_Hidden": false, + "m_Value": { + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "isMainColor": false, + "m_ColorMode": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.SplitNode", + "m_ObjectId": "1225ed0d1aa34528bbc8820b38841316", + "m_Group": { + "m_Id": "9366a6b5dbf4480fa0dbd4f5767c9c60" + }, + "m_Name": "Split", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -1626.666748046875, + "y": -184.66664123535157, + "width": 120.6666259765625, + "height": 150.66668701171876 + } + }, + "m_Slots": [ + { + "m_Id": "d5376d2c832b407dab229ebc86c45dbe" + }, + { + "m_Id": "833fbccf318544d39d7164fab452a107" + }, + { + "m_Id": "ca09841cca9a4690a1c73b29a09ceffa" + }, + { + "m_Id": "f4d4793d915849e59674f61477e74517" + }, + { + "m_Id": "4144cd4ea63745f18260f8c6319348a9" + } + ], + "synonyms": [ + "separate" + ], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + } +} + +{ + "m_SGVersion": 3, + "m_Type": "UnityEditor.ShaderGraph.Internal.ColorShaderProperty", + "m_ObjectId": "13226371ac59487c895d28a58a0b3e3a", + "m_Guid": { + "m_GuidSerialized": "63931a48-e350-41dc-959a-31ee6a7dd197" + }, + "m_Name": "_BaseColor", + "m_DefaultRefNameVersion": 1, + "m_RefNameGeneratedByDisplayName": "_BaseColor", + "m_DefaultReferenceName": "_BaseColor", + "m_OverrideReferenceName": "", + "m_GeneratePropertyBlock": true, + "m_UseCustomSlotLabel": false, + "m_CustomSlotLabel": "", + "m_Precision": 0, + "overrideHLSLDeclaration": false, + "hlslDeclarationOverride": 0, + "m_Hidden": false, + "m_Value": { + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "isMainColor": false, + "m_ColorMode": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.AddNode", + "m_ObjectId": "168e578c571c4e899268bfd7419acebb", + "m_Group": { + "m_Id": "d2387c00d8984e4aa40d39ea25262374" + }, + "m_Name": "Add", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -950.0, + "y": 212.00009155273438, + "width": 209.33343505859376, + "height": 303.9999694824219 + } + }, + "m_Slots": [ + { + "m_Id": "c80b647882c94d8787e4f128cd9e7f29" + }, + { + "m_Id": "000fa6abe01e4941816071bbc2cb95dc" + }, + { + "m_Id": "1908a33a15f442f5b9213bd2a0249aee" + } + ], + "synonyms": [ + "addition", + "sum", + "plus" + ], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", + "m_ObjectId": "1908a33a15f442f5b9213bd2a0249aee", + "m_Id": 2, + "m_DisplayName": "Out", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "1b62da38b8ef48edb6ff30ae07ce41b8", + "m_Id": 0, + "m_DisplayName": "Alpha", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Alpha", + "m_StageCapability": 2, + "m_Value": 1.0, + "m_DefaultValue": 1.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.MultiplyNode", + "m_ObjectId": "287d175dfb7e44c18187bdf69ed6d5d0", + "m_Group": { + "m_Id": "d2387c00d8984e4aa40d39ea25262374" + }, + "m_Name": "Multiply", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -687.3333129882813, + "y": 804.6666259765625, + "width": 209.33328247070313, + "height": 304.000244140625 + } + }, + "m_Slots": [ + { + "m_Id": "9373dada293e4cfe873ee24758aab624" + }, + { + "m_Id": "48d0163f1eb44689bd2d92db8b83c26d" + }, + { + "m_Id": "9b7541f5acf24bebab9e6e52ddbd6978" + } + ], + "synonyms": [ + "multiplication", + "times", + "x" + ], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.FresnelNode", + "m_ObjectId": "2bdcefbcdf6c41c6a3e2987caa8c3026", + "m_Group": { + "m_Id": "d2387c00d8984e4aa40d39ea25262374" + }, + "m_Name": "Fresnel Effect", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -1574.0, + "y": 187.99996948242188, + "width": 209.333251953125, + "height": 328.0000915527344 + } + }, + "m_Slots": [ + { + "m_Id": "093e7e86995446d2ab10f431b05ef76a" + }, + { + "m_Id": "c2bc03b289c8414faefea80453a771d7" + }, + { + "m_Id": "fb35a4ac50284fd7be5ad8f9852599d8" + }, + { + "m_Id": "a3abbf8c77134dfb883d49bd47948ff5" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 2, + "m_CustomColors": { + "m_SerializableColors": [] + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.ColorRGBMaterialSlot", + "m_ObjectId": "3048608fbe8642e28d956117310e0289", + "m_Id": 0, + "m_DisplayName": "Base Color", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "BaseColor", + "m_StageCapability": 2, + "m_Value": { + "x": 0.5, + "y": 0.5, + "z": 0.5 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [], + "m_ColorMode": 0, + "m_DefaultColor": { + "r": 0.5, + "g": 0.5, + "b": 0.5, + "a": 1.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.MultiplyNode", + "m_ObjectId": "3a2438f9bbdd447ca9be452f10c6038b", + "m_Group": { + "m_Id": "9366a6b5dbf4480fa0dbd4f5767c9c60" + }, + "m_Name": "Multiply", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -1373.33349609375, + "y": -305.3332824707031, + "width": 209.3333740234375, + "height": 304.0 + } + }, + "m_Slots": [ + { + "m_Id": "e1135e6b17d64d509abf98c806937086" + }, + { + "m_Id": "45dba6cbeb7b46f0a2e873d6331798f7" + }, + { + "m_Id": "dfb61dcd21c049d58e6ea6d0a7258051" + } + ], + "synonyms": [ + "multiplication", + "times", + "x" + ], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "4144cd4ea63745f18260f8c6319348a9", + "m_Id": 4, + "m_DisplayName": "A", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "A", + "m_StageCapability": 3, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "420cff3beaab447a98e34cbb581c753f", + "m_Group": { + "m_Id": "" + }, + "m_Name": "SurfaceDescription.BaseColor", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": 0.0, + "y": 0.0, + "width": 0.0, + "height": 0.0 + } + }, + "m_Slots": [ + { + "m_Id": "3048608fbe8642e28d956117310e0289" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "SurfaceDescription.BaseColor" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot", + "m_ObjectId": "45dba6cbeb7b46f0a2e873d6331798f7", + "m_Id": 1, + "m_DisplayName": "B", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "B", + "m_StageCapability": 3, + "m_Value": { + "e00": 2.0, + "e01": 2.0, + "e02": 2.0, + "e03": 2.0, + "e10": 2.0, + "e11": 2.0, + "e12": 2.0, + "e13": 2.0, + "e20": 2.0, + "e21": 2.0, + "e22": 2.0, + "e23": 2.0, + "e30": 2.0, + "e31": 2.0, + "e32": 2.0, + "e33": 2.0 + }, + "m_DefaultValue": { + "e00": 1.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 1.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 1.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 1.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot", + "m_ObjectId": "477e186e47b34829a9654e492c14b7aa", + "m_Id": 0, + "m_DisplayName": "_BaseColor", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot", + "m_ObjectId": "48d0163f1eb44689bd2d92db8b83c26d", + "m_Id": 1, + "m_DisplayName": "B", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "B", + "m_StageCapability": 3, + "m_Value": { + "e00": 2.0, + "e01": 2.0, + "e02": 2.0, + "e03": 2.0, + "e10": 2.0, + "e11": 2.0, + "e12": 2.0, + "e13": 2.0, + "e20": 2.0, + "e21": 2.0, + "e22": 2.0, + "e23": 2.0, + "e30": 2.0, + "e31": 2.0, + "e32": 2.0, + "e33": 2.0 + }, + "m_DefaultValue": { + "e00": 1.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 1.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 1.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 1.0 + } +} + +{ + "m_SGVersion": 1, + "m_Type": "UnityEditor.Rendering.Universal.ShaderGraph.UniversalTarget", + "m_ObjectId": "4aa8a973dd78498e827b15fa6d213bc0", + "m_ActiveSubTarget": { + "m_Id": "82b2f67b52b0430a8982266199ef17c0" + }, + "m_AllowMaterialOverride": true, + "m_SurfaceType": 1, + "m_ZTestMode": 4, + "m_ZWriteControl": 0, + "m_AlphaMode": 0, + "m_RenderFace": 2, + "m_AlphaClip": false, + "m_CastShadows": false, + "m_ReceiveShadows": true, + "m_CustomEditorGUI": "", + "m_SupportVFX": false +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.SplitNode", + "m_ObjectId": "4f3ed500dc274e0aa11ac48d35310f1a", + "m_Group": { + "m_Id": "d2387c00d8984e4aa40d39ea25262374" + }, + "m_Name": "Split", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -1664.0, + "y": 745.3333129882813, + "width": 120.6666259765625, + "height": 150.666748046875 + } + }, + "m_Slots": [ + { + "m_Id": "a25121cc210e4d98839a6414ec205c52" + }, + { + "m_Id": "55f511eff23a439d8e7bb1b90e286404" + }, + { + "m_Id": "c0d7bc7d667546cfa35d8b3f8dcd2a91" + }, + { + "m_Id": "aeaf3c2e18ac44519565912a2a226e0d" + }, + { + "m_Id": "a949b7346d8e49ebb5620272fcfb649b" + } + ], + "synonyms": [ + "separate" + ], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "55f511eff23a439d8e7bb1b90e286404", + "m_Id": 1, + "m_DisplayName": "R", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "R", + "m_StageCapability": 3, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.MultiplyNode", + "m_ObjectId": "5f73c8e6a9e04ee6bd08c7ec664f9ead", + "m_Group": { + "m_Id": "d2387c00d8984e4aa40d39ea25262374" + }, + "m_Name": "Multiply", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -1304.0, + "y": 364.0, + "width": 209.3331298828125, + "height": 304.00006103515627 + } + }, + "m_Slots": [ + { + "m_Id": "f1e906005cdd4adb8ed714ff5a11decf" + }, + { + "m_Id": "b4d6ff520223479b96c05d917958b9ea" + }, + { + "m_Id": "89c379a11bff4e06a02b4f273fafe67a" + } + ], + "synonyms": [ + "multiplication", + "times", + "x" + ], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.NormalMaterialSlot", + "m_ObjectId": "7eb10e80af9945558dfdd46a9ab7711d", + "m_Id": 0, + "m_DisplayName": "Normal", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Normal", + "m_StageCapability": 1, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [], + "m_Space": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.Rendering.BuiltIn.ShaderGraph.BuiltInUnlitSubTarget", + "m_ObjectId": "7ec39f14b8b1406aaf27b19e88495159" +} + +{ + "m_SGVersion": 2, + "m_Type": "UnityEditor.Rendering.BuiltIn.ShaderGraph.BuiltInTarget", + "m_ObjectId": "7f4faf20e056441da3400fcf5a01bd1d", + "m_ActiveSubTarget": { + "m_Id": "7ec39f14b8b1406aaf27b19e88495159" + }, + "m_AllowMaterialOverride": true, + "m_SurfaceType": 1, + "m_ZWriteControl": 0, + "m_ZTestMode": 4, + "m_AlphaMode": 0, + "m_RenderFace": 2, + "m_AlphaClip": false, + "m_CustomEditorGUI": "" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.Rendering.Universal.ShaderGraph.UniversalUnlitSubTarget", + "m_ObjectId": "82b2f67b52b0430a8982266199ef17c0" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.PositionMaterialSlot", + "m_ObjectId": "82d125805fb943fe9c4a333fbd8e7255", + "m_Id": 0, + "m_DisplayName": "Position", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Position", + "m_StageCapability": 1, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [], + "m_Space": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "833fbccf318544d39d7164fab452a107", + "m_Id": 1, + "m_DisplayName": "R", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "R", + "m_StageCapability": 3, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot", + "m_ObjectId": "89c379a11bff4e06a02b4f273fafe67a", + "m_Id": 2, + "m_DisplayName": "Out", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": { + "e00": 0.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 0.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 0.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 0.0 + }, + "m_DefaultValue": { + "e00": 1.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 1.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 1.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 1.0 + } +} + +{ + "m_SGVersion": 1, + "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty", + "m_ObjectId": "8b7d12739f9d4a64ad74d97000195713", + "m_Guid": { + "m_GuidSerialized": "e6af6915-1660-4e93-8ebe-6218e0863f03" + }, + "m_Name": "_RimPower", + "m_DefaultRefNameVersion": 1, + "m_RefNameGeneratedByDisplayName": "_RimPower", + "m_DefaultReferenceName": "_RimPower", + "m_OverrideReferenceName": "", + "m_GeneratePropertyBlock": true, + "m_UseCustomSlotLabel": false, + "m_CustomSlotLabel": "", + "m_Precision": 0, + "overrideHLSLDeclaration": false, + "hlslDeclarationOverride": 0, + "m_Hidden": false, + "m_Value": 5.0, + "m_FloatType": 0, + "m_RangeValues": { + "x": 0.0, + "y": 1.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "92a68cfb809948f78bed1524817e802f", + "m_Group": { + "m_Id": "" + }, + "m_Name": "VertexDescription.Normal", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": 0.0, + "y": 0.0, + "width": 0.0, + "height": 0.0 + } + }, + "m_Slots": [ + { + "m_Id": "7eb10e80af9945558dfdd46a9ab7711d" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "VertexDescription.Normal" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.GroupData", + "m_ObjectId": "9366a6b5dbf4480fa0dbd4f5767c9c60", + "m_Title": "Base Color", + "m_Position": { + "x": -1808.7840576171875, + "y": -363.76800537109377 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot", + "m_ObjectId": "9373dada293e4cfe873ee24758aab624", + "m_Id": 0, + "m_DisplayName": "A", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "A", + "m_StageCapability": 3, + "m_Value": { + "e00": 0.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 0.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 0.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 0.0 + }, + "m_DefaultValue": { + "e00": 1.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 1.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 1.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 1.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot", + "m_ObjectId": "9b7541f5acf24bebab9e6e52ddbd6978", + "m_Id": 2, + "m_DisplayName": "Out", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": { + "e00": 0.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 0.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 0.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 0.0 + }, + "m_DefaultValue": { + "e00": 1.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 1.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 1.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 1.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.PropertyNode", + "m_ObjectId": "9be4b481dfe642d3960f2b92e27f46f7", + "m_Group": { + "m_Id": "d2387c00d8984e4aa40d39ea25262374" + }, + "m_Name": "Property", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -1725.3333740234375, + "y": 507.3334045410156, + "width": 133.9998779296875, + "height": 35.999969482421878 + } + }, + "m_Slots": [ + { + "m_Id": "bc6beafdb79a48e0a51da2b31c014b0d" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_Property": { + "m_Id": "8b7d12739f9d4a64ad74d97000195713" + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", + "m_ObjectId": "a25121cc210e4d98839a6414ec205c52", + "m_Id": 0, + "m_DisplayName": "In", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "In", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "a3abbf8c77134dfb883d49bd47948ff5", + "m_Id": 3, + "m_DisplayName": "Out", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "a949b7346d8e49ebb5620272fcfb649b", + "m_Id": 4, + "m_DisplayName": "A", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "A", + "m_StageCapability": 3, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.PropertyNode", + "m_ObjectId": "aaaf13e266e24c96b49d642e1d29febc", + "m_Group": { + "m_Id": "9366a6b5dbf4480fa0dbd4f5767c9c60" + }, + "m_Name": "Property", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -1784.0, + "y": -256.6666564941406, + "width": 137.3331298828125, + "height": 36.000030517578128 + } + }, + "m_Slots": [ + { + "m_Id": "477e186e47b34829a9654e492c14b7aa" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_Property": { + "m_Id": "13226371ac59487c895d28a58a0b3e3a" + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.NormalVectorNode", + "m_ObjectId": "ae5e313f8d344ca893e946534337db18", + "m_Group": { + "m_Id": "d2387c00d8984e4aa40d39ea25262374" + }, + "m_Name": "Normal Vector", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -1810.0001220703125, + "y": 187.99996948242188, + "width": 207.3333740234375, + "height": 134.666748046875 + } + }, + "m_Slots": [ + { + "m_Id": "090dac5d94e9450bbca9bf47c6502992" + } + ], + "synonyms": [ + "surface direction" + ], + "m_Precision": 0, + "m_PreviewExpanded": false, + "m_PreviewMode": 2, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_Space": 2 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "aeaf3c2e18ac44519565912a2a226e0d", + "m_Id": 3, + "m_DisplayName": "B", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "B", + "m_StageCapability": 3, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot", + "m_ObjectId": "b4d6ff520223479b96c05d917958b9ea", + "m_Id": 1, + "m_DisplayName": "B", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "B", + "m_StageCapability": 3, + "m_Value": { + "e00": 2.0, + "e01": 2.0, + "e02": 2.0, + "e03": 2.0, + "e10": 2.0, + "e11": 2.0, + "e12": 2.0, + "e13": 2.0, + "e20": 2.0, + "e21": 2.0, + "e22": 2.0, + "e23": 2.0, + "e30": 2.0, + "e31": 2.0, + "e32": 2.0, + "e33": 2.0 + }, + "m_DefaultValue": { + "e00": 1.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 1.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 1.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 1.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "bc6beafdb79a48e0a51da2b31c014b0d", + "m_Id": 0, + "m_DisplayName": "_RimPower", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "c0d7bc7d667546cfa35d8b3f8dcd2a91", + "m_Id": 2, + "m_DisplayName": "G", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "G", + "m_StageCapability": 3, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.ViewDirectionMaterialSlot", + "m_ObjectId": "c2bc03b289c8414faefea80453a771d7", + "m_Id": 1, + "m_DisplayName": "View Dir", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "ViewDir", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [], + "m_Space": 2 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", + "m_ObjectId": "c80b647882c94d8787e4f128cd9e7f29", + "m_Id": 0, + "m_DisplayName": "A", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "A", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "ca09841cca9a4690a1c73b29a09ceffa", + "m_Id": 2, + "m_DisplayName": "G", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "G", + "m_StageCapability": 3, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.CategoryData", + "m_ObjectId": "ce7e4776faf54c8c921c004ff57e6a67", + "m_Name": "", + "m_ChildObjectList": [ + { + "m_Id": "13226371ac59487c895d28a58a0b3e3a" + }, + { + "m_Id": "8b7d12739f9d4a64ad74d97000195713" + }, + { + "m_Id": "0e2d0060fb6647d8acd0791e1a2eb28f" + } + ] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "cee5b6702a794bbeb43982d32bfc94fd", + "m_Group": { + "m_Id": "" + }, + "m_Name": "VertexDescription.Tangent", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": 0.0, + "y": 0.0, + "width": 0.0, + "height": 0.0 + } + }, + "m_Slots": [ + { + "m_Id": "d0a6e92f04b14b07ba374bcd06109ec8" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "VertexDescription.Tangent" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.TangentMaterialSlot", + "m_ObjectId": "d0a6e92f04b14b07ba374bcd06109ec8", + "m_Id": 0, + "m_DisplayName": "Tangent", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Tangent", + "m_StageCapability": 1, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [], + "m_Space": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.GroupData", + "m_ObjectId": "d2387c00d8984e4aa40d39ea25262374", + "m_Title": "Edge Highlight", + "m_Position": { + "x": -1987.020263671875, + "y": 129.37379455566407 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", + "m_ObjectId": "d5376d2c832b407dab229ebc86c45dbe", + "m_Id": 0, + "m_DisplayName": "In", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "In", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "dc5c91e79c014636a601536af3db47c8", + "m_Group": { + "m_Id": "" + }, + "m_Name": "VertexDescription.Position", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": 0.0, + "y": 0.0, + "width": 0.0, + "height": 0.0 + } + }, + "m_Slots": [ + { + "m_Id": "82d125805fb943fe9c4a333fbd8e7255" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "VertexDescription.Position" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot", + "m_ObjectId": "dfb61dcd21c049d58e6ea6d0a7258051", + "m_Id": 2, + "m_DisplayName": "Out", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": { + "e00": 0.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 0.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 0.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 0.0 + }, + "m_DefaultValue": { + "e00": 1.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 1.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 1.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 1.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot", + "m_ObjectId": "e1135e6b17d64d509abf98c806937086", + "m_Id": 0, + "m_DisplayName": "A", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "A", + "m_StageCapability": 3, + "m_Value": { + "e00": 0.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 0.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 0.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 0.0 + }, + "m_DefaultValue": { + "e00": 1.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 1.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 1.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 1.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.PropertyNode", + "m_ObjectId": "e6385eca93e04655ac0c7e189b3fcc60", + "m_Group": { + "m_Id": "d2387c00d8984e4aa40d39ea25262374" + }, + "m_Name": "Property", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -1962.0, + "y": 726.0001220703125, + "width": 130.6666259765625, + "height": 35.99993896484375 + } + }, + "m_Slots": [ + { + "m_Id": "ea6145f6bbac4c32be932805370dbecc" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_Property": { + "m_Id": "0e2d0060fb6647d8acd0791e1a2eb28f" + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot", + "m_ObjectId": "ea6145f6bbac4c32be932805370dbecc", + "m_Id": 0, + "m_DisplayName": "_RimColor", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "eafb2f1b4ba4441e9fa3108ff8dca237", + "m_Group": { + "m_Id": "" + }, + "m_Name": "SurfaceDescription.AlphaClipThreshold", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": 0.0, + "y": 0.0, + "width": 0.0, + "height": 0.0 + } + }, + "m_Slots": [ + { + "m_Id": "010c84257e1d457c9139b10afe0c86ce" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "SurfaceDescription.AlphaClipThreshold" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot", + "m_ObjectId": "f1e906005cdd4adb8ed714ff5a11decf", + "m_Id": 0, + "m_DisplayName": "A", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "A", + "m_StageCapability": 3, + "m_Value": { + "e00": 0.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 0.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 0.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 0.0 + }, + "m_DefaultValue": { + "e00": 1.0, + "e01": 0.0, + "e02": 0.0, + "e03": 0.0, + "e10": 0.0, + "e11": 1.0, + "e12": 0.0, + "e13": 0.0, + "e20": 0.0, + "e21": 0.0, + "e22": 1.0, + "e23": 0.0, + "e30": 0.0, + "e31": 0.0, + "e32": 0.0, + "e33": 1.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "f4d4793d915849e59674f61477e74517", + "m_Id": 3, + "m_DisplayName": "B", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "B", + "m_StageCapability": 3, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "fb35a4ac50284fd7be5ad8f9852599d8", + "m_Id": 2, + "m_DisplayName": "Power", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Power", + "m_StageCapability": 3, + "m_Value": 1.0, + "m_DefaultValue": 1.0, + "m_Labels": [] +} + diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/Unlit_Fresnel.shadergraph.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/Unlit_Fresnel.shadergraph.meta new file mode 100644 index 00000000..9125bd13 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/Unlit_Fresnel.shadergraph.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: e19b5bb6cb8e91e43b1b5d81a069296f +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3} diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/Unlit_ShaderGraph.shadergraph b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/Unlit_ShaderGraph.shadergraph new file mode 100644 index 00000000..081e286c --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/Unlit_ShaderGraph.shadergraph @@ -0,0 +1,755 @@ +{ + "m_SGVersion": 3, + "m_Type": "UnityEditor.ShaderGraph.GraphData", + "m_ObjectId": "34a2241cace747c1aab795b47b74d96c", + "m_Properties": [ + { + "m_Id": "13226371ac59487c895d28a58a0b3e3a" + } + ], + "m_Keywords": [], + "m_Dropdowns": [], + "m_CategoryData": [ + { + "m_Id": "ce7e4776faf54c8c921c004ff57e6a67" + } + ], + "m_Nodes": [ + { + "m_Id": "dc5c91e79c014636a601536af3db47c8" + }, + { + "m_Id": "92a68cfb809948f78bed1524817e802f" + }, + { + "m_Id": "cee5b6702a794bbeb43982d32bfc94fd" + }, + { + "m_Id": "420cff3beaab447a98e34cbb581c753f" + }, + { + "m_Id": "f52a2322fd3545fc8d54cb272e73bfc9" + }, + { + "m_Id": "09b3896ce0154c11be905235318d515f" + }, + { + "m_Id": "eafb2f1b4ba4441e9fa3108ff8dca237" + }, + { + "m_Id": "7c518b6728a74dd58425375b3226e89a" + } + ], + "m_GroupDatas": [], + "m_StickyNoteDatas": [], + "m_Edges": [ + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "7c518b6728a74dd58425375b3226e89a" + }, + "m_SlotId": 4 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "09b3896ce0154c11be905235318d515f" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "f52a2322fd3545fc8d54cb272e73bfc9" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "420cff3beaab447a98e34cbb581c753f" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "f52a2322fd3545fc8d54cb272e73bfc9" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "7c518b6728a74dd58425375b3226e89a" + }, + "m_SlotId": 0 + } + } + ], + "m_VertexContext": { + "m_Position": { + "x": 0.0, + "y": 0.0 + }, + "m_Blocks": [ + { + "m_Id": "dc5c91e79c014636a601536af3db47c8" + }, + { + "m_Id": "92a68cfb809948f78bed1524817e802f" + }, + { + "m_Id": "cee5b6702a794bbeb43982d32bfc94fd" + } + ] + }, + "m_FragmentContext": { + "m_Position": { + "x": 0.0, + "y": 200.0 + }, + "m_Blocks": [ + { + "m_Id": "420cff3beaab447a98e34cbb581c753f" + }, + { + "m_Id": "09b3896ce0154c11be905235318d515f" + }, + { + "m_Id": "eafb2f1b4ba4441e9fa3108ff8dca237" + } + ] + }, + "m_PreviewData": { + "serializedMesh": { + "m_SerializedMesh": "{\"mesh\":{\"instanceID\":0}}", + "m_Guid": "" + }, + "preventRotation": false + }, + "m_Path": "Shader Graphs", + "m_GraphPrecision": 1, + "m_PreviewMode": 2, + "m_OutputNode": { + "m_Id": "" + }, + "m_ActiveTargets": [ + { + "m_Id": "7f4faf20e056441da3400fcf5a01bd1d" + }, + { + "m_Id": "4aa8a973dd78498e827b15fa6d213bc0" + } + ] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "010c84257e1d457c9139b10afe0c86ce", + "m_Id": 0, + "m_DisplayName": "Alpha Clip Threshold", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "AlphaClipThreshold", + "m_StageCapability": 2, + "m_Value": 0.5, + "m_DefaultValue": 0.5, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "09b3896ce0154c11be905235318d515f", + "m_Group": { + "m_Id": "" + }, + "m_Name": "SurfaceDescription.Alpha", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": 0.0, + "y": 0.0, + "width": 0.0, + "height": 0.0 + } + }, + "m_Slots": [ + { + "m_Id": "1b62da38b8ef48edb6ff30ae07ce41b8" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "SurfaceDescription.Alpha" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "0ec2aeaa7acc4cc48c62853418ca386c", + "m_Id": 1, + "m_DisplayName": "R", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "R", + "m_StageCapability": 3, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 3, + "m_Type": "UnityEditor.ShaderGraph.Internal.ColorShaderProperty", + "m_ObjectId": "13226371ac59487c895d28a58a0b3e3a", + "m_Guid": { + "m_GuidSerialized": "63931a48-e350-41dc-959a-31ee6a7dd197" + }, + "m_Name": "_BaseColor", + "m_DefaultRefNameVersion": 1, + "m_RefNameGeneratedByDisplayName": "_BaseColor", + "m_DefaultReferenceName": "_BaseColor", + "m_OverrideReferenceName": "", + "m_GeneratePropertyBlock": true, + "m_UseCustomSlotLabel": false, + "m_CustomSlotLabel": "", + "m_Precision": 0, + "overrideHLSLDeclaration": false, + "hlslDeclarationOverride": 0, + "m_Hidden": false, + "m_Value": { + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "isMainColor": false, + "m_ColorMode": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "1b62da38b8ef48edb6ff30ae07ce41b8", + "m_Id": 0, + "m_DisplayName": "Alpha", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Alpha", + "m_StageCapability": 2, + "m_Value": 1.0, + "m_DefaultValue": 1.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "2e8b814f0659493c9ce45b430a57e441", + "m_Id": 2, + "m_DisplayName": "G", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "G", + "m_StageCapability": 3, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.ColorRGBMaterialSlot", + "m_ObjectId": "3048608fbe8642e28d956117310e0289", + "m_Id": 0, + "m_DisplayName": "Base Color", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "BaseColor", + "m_StageCapability": 2, + "m_Value": { + "x": 0.5, + "y": 0.5, + "z": 0.5 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [], + "m_ColorMode": 0, + "m_DefaultColor": { + "r": 0.5, + "g": 0.5, + "b": 0.5, + "a": 1.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "365c7afee0714a3b9372d00357cd2b02", + "m_Id": 3, + "m_DisplayName": "B", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "B", + "m_StageCapability": 3, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.Rendering.Universal.ShaderGraph.UniversalUnlitSubTarget", + "m_ObjectId": "40976af7a36e42dfbe8c0521a60373d4" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "420cff3beaab447a98e34cbb581c753f", + "m_Group": { + "m_Id": "" + }, + "m_Name": "SurfaceDescription.BaseColor", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": 0.0, + "y": 0.0, + "width": 0.0, + "height": 0.0 + } + }, + "m_Slots": [ + { + "m_Id": "3048608fbe8642e28d956117310e0289" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "SurfaceDescription.BaseColor" +} + +{ + "m_SGVersion": 1, + "m_Type": "UnityEditor.Rendering.Universal.ShaderGraph.UniversalTarget", + "m_ObjectId": "4aa8a973dd78498e827b15fa6d213bc0", + "m_ActiveSubTarget": { + "m_Id": "40976af7a36e42dfbe8c0521a60373d4" + }, + "m_AllowMaterialOverride": true, + "m_SurfaceType": 0, + "m_ZTestMode": 4, + "m_ZWriteControl": 0, + "m_AlphaMode": 0, + "m_RenderFace": 2, + "m_AlphaClip": false, + "m_CastShadows": true, + "m_ReceiveShadows": true, + "m_CustomEditorGUI": "", + "m_SupportVFX": false +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", + "m_ObjectId": "5cf0ea0b89f34f509aa33f89065dc276", + "m_Id": 0, + "m_DisplayName": "In", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "In", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.Rendering.BuiltIn.ShaderGraph.BuiltInUnlitSubTarget", + "m_ObjectId": "5e730d4e0f344a498bfb4038e0d45f8f" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.SplitNode", + "m_ObjectId": "7c518b6728a74dd58425375b3226e89a", + "m_Group": { + "m_Id": "" + }, + "m_Name": "Split", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -282.3333435058594, + "y": 346.33331298828127, + "width": 120.66665649414063, + "height": 150.66665649414063 + } + }, + "m_Slots": [ + { + "m_Id": "5cf0ea0b89f34f509aa33f89065dc276" + }, + { + "m_Id": "0ec2aeaa7acc4cc48c62853418ca386c" + }, + { + "m_Id": "2e8b814f0659493c9ce45b430a57e441" + }, + { + "m_Id": "365c7afee0714a3b9372d00357cd2b02" + }, + { + "m_Id": "800f5ac4bddf40ccb0e846b3f7bc6577" + } + ], + "synonyms": [ + "separate" + ], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.NormalMaterialSlot", + "m_ObjectId": "7eb10e80af9945558dfdd46a9ab7711d", + "m_Id": 0, + "m_DisplayName": "Normal", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Normal", + "m_StageCapability": 1, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [], + "m_Space": 0 +} + +{ + "m_SGVersion": 2, + "m_Type": "UnityEditor.Rendering.BuiltIn.ShaderGraph.BuiltInTarget", + "m_ObjectId": "7f4faf20e056441da3400fcf5a01bd1d", + "m_ActiveSubTarget": { + "m_Id": "5e730d4e0f344a498bfb4038e0d45f8f" + }, + "m_AllowMaterialOverride": true, + "m_SurfaceType": 0, + "m_ZWriteControl": 0, + "m_ZTestMode": 4, + "m_AlphaMode": 0, + "m_RenderFace": 2, + "m_AlphaClip": false, + "m_CustomEditorGUI": "" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "800f5ac4bddf40ccb0e846b3f7bc6577", + "m_Id": 4, + "m_DisplayName": "A", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "A", + "m_StageCapability": 3, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.PositionMaterialSlot", + "m_ObjectId": "82d125805fb943fe9c4a333fbd8e7255", + "m_Id": 0, + "m_DisplayName": "Position", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Position", + "m_StageCapability": 1, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [], + "m_Space": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "92a68cfb809948f78bed1524817e802f", + "m_Group": { + "m_Id": "" + }, + "m_Name": "VertexDescription.Normal", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": 0.0, + "y": 0.0, + "width": 0.0, + "height": 0.0 + } + }, + "m_Slots": [ + { + "m_Id": "7eb10e80af9945558dfdd46a9ab7711d" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "VertexDescription.Normal" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot", + "m_ObjectId": "a8a5050a744e447eb795eda3239ce13a", + "m_Id": 0, + "m_DisplayName": "_BaseColor", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.CategoryData", + "m_ObjectId": "ce7e4776faf54c8c921c004ff57e6a67", + "m_Name": "", + "m_ChildObjectList": [ + { + "m_Id": "13226371ac59487c895d28a58a0b3e3a" + } + ] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "cee5b6702a794bbeb43982d32bfc94fd", + "m_Group": { + "m_Id": "" + }, + "m_Name": "VertexDescription.Tangent", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": 0.0, + "y": 0.0, + "width": 0.0, + "height": 0.0 + } + }, + "m_Slots": [ + { + "m_Id": "d0a6e92f04b14b07ba374bcd06109ec8" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "VertexDescription.Tangent" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.TangentMaterialSlot", + "m_ObjectId": "d0a6e92f04b14b07ba374bcd06109ec8", + "m_Id": 0, + "m_DisplayName": "Tangent", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Tangent", + "m_StageCapability": 1, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [], + "m_Space": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "dc5c91e79c014636a601536af3db47c8", + "m_Group": { + "m_Id": "" + }, + "m_Name": "VertexDescription.Position", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": 0.0, + "y": 0.0, + "width": 0.0, + "height": 0.0 + } + }, + "m_Slots": [ + { + "m_Id": "82d125805fb943fe9c4a333fbd8e7255" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "VertexDescription.Position" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "eafb2f1b4ba4441e9fa3108ff8dca237", + "m_Group": { + "m_Id": "" + }, + "m_Name": "SurfaceDescription.AlphaClipThreshold", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": 0.0, + "y": 0.0, + "width": 0.0, + "height": 0.0 + } + }, + "m_Slots": [ + { + "m_Id": "010c84257e1d457c9139b10afe0c86ce" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "SurfaceDescription.AlphaClipThreshold" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.PropertyNode", + "m_ObjectId": "f52a2322fd3545fc8d54cb272e73bfc9", + "m_Group": { + "m_Id": "" + }, + "m_Name": "Property", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -455.3333435058594, + "y": 245.33334350585938, + "width": 137.33334350585938, + "height": 35.999969482421878 + } + }, + "m_Slots": [ + { + "m_Id": "a8a5050a744e447eb795eda3239ce13a" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_Property": { + "m_Id": "13226371ac59487c895d28a58a0b3e3a" + } +} + diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/Unlit_ShaderGraph.shadergraph.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/Unlit_ShaderGraph.shadergraph.meta new file mode 100644 index 00000000..26100b16 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Shaders/Unlit_ShaderGraph.shadergraph.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 740445f1490c01e4b8feacf8d9ab5e7f +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Unity.XR.Interaction.Toolkit.Samples.StarterAssets.asmdef b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/StarterAssets.asmdef similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Unity.XR.Interaction.Toolkit.Samples.StarterAssets.asmdef rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/StarterAssets.asmdef diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Unity.XR.Interaction.Toolkit.Samples.StarterAssets.asmdef.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/StarterAssets.asmdef.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Unity.XR.Interaction.Toolkit.Samples.StarterAssets.asmdef.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/StarterAssets.asmdef.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Textures.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Textures.meta new file mode 100644 index 00000000..283e3e70 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Textures.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 91a77be4c84205e4ba7056605bdb9e1d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Textures/DefaultMaterial_AO.png b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Textures/DefaultMaterial_AO.png new file mode 100644 index 00000000..05da5ba9 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Textures/DefaultMaterial_AO.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2339b3e506470ef40d4c3d6a617bc4f1d3be0cc6910a2c9eecbfb8088b94824 +size 891404 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Textures/DefaultMaterial_AO.png.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Textures/DefaultMaterial_AO.png.meta new file mode 100644 index 00000000..6b36516d --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Textures/DefaultMaterial_AO.png.meta @@ -0,0 +1,135 @@ +fileFormatVersion: 2 +guid: 85e675893a909864d9c237e20202651b +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/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Tunneling Vignette.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/TunnelingVignette.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Tunneling Vignette.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/TunnelingVignette.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Tunneling Vignette/TunnelingVignette.mat b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/TunnelingVignette/TunnelingVignette.mat similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Tunneling Vignette/TunnelingVignette.mat rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/TunnelingVignette/TunnelingVignette.mat diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Tunneling Vignette/TunnelingVignette.mat.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/TunnelingVignette/TunnelingVignette.mat.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Tunneling Vignette/TunnelingVignette.mat.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/TunnelingVignette/TunnelingVignette.mat.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Tunneling Vignette/TunnelingVignette.prefab b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/TunnelingVignette/TunnelingVignette.prefab similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Tunneling Vignette/TunnelingVignette.prefab rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/TunnelingVignette/TunnelingVignette.prefab diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Tunneling Vignette/TunnelingVignette.prefab.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/TunnelingVignette/TunnelingVignette.prefab.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Tunneling Vignette/TunnelingVignette.prefab.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/TunnelingVignette/TunnelingVignette.prefab.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Tunneling Vignette/TunnelingVignette.shader b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/TunnelingVignette/TunnelingVignette.shader similarity index 99% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Tunneling Vignette/TunnelingVignette.shader rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/TunnelingVignette/TunnelingVignette.shader index 5ed7341f..75cb88e9 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Tunneling Vignette/TunnelingVignette.shader +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/TunnelingVignette/TunnelingVignette.shader @@ -75,4 +75,4 @@ Shader "VR/TunnelingVignette" ENDCG } } -} \ No newline at end of file +} diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Tunneling Vignette/TunnelingVignette.shader.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/TunnelingVignette/TunnelingVignette.shader.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Tunneling Vignette/TunnelingVignette.shader.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/TunnelingVignette/TunnelingVignette.shader.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Tunneling Vignette/TunnelingVignetteHemisphere.fbx b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/TunnelingVignette/TunnelingVignetteHemisphere.fbx similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Tunneling Vignette/TunnelingVignetteHemisphere.fbx rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/TunnelingVignette/TunnelingVignetteHemisphere.fbx diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Tunneling Vignette/TunnelingVignetteHemisphere.fbx.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/TunnelingVignette/TunnelingVignetteHemisphere.fbx.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Tunneling Vignette/TunnelingVignetteHemisphere.fbx.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/TunnelingVignette/TunnelingVignetteHemisphere.fbx.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Tunneling Vignette/TunnelingVignetteSG.shadergraph b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/TunnelingVignette/TunnelingVignetteSG.shadergraph similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Tunneling Vignette/TunnelingVignetteSG.shadergraph rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/TunnelingVignette/TunnelingVignetteSG.shadergraph diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Tunneling Vignette/TunnelingVignetteSG.shadergraph.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/TunnelingVignette/TunnelingVignetteSG.shadergraph.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Tunneling Vignette/TunnelingVignetteSG.shadergraph.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/TunnelingVignette/TunnelingVignetteSG.shadergraph.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/XRI Default Input Actions.inputactions b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/XRI Default Input Actions.inputactions similarity index 77% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/XRI Default Input Actions.inputactions rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/XRI Default Input Actions.inputactions index 62822989..3dcc2615 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/XRI Default Input Actions.inputactions +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/XRI Default Input Actions.inputactions @@ -85,7 +85,7 @@ "path": "/centerEyePosition", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Position", "isComposite": false, "isPartOfComposite": false @@ -107,7 +107,7 @@ "path": "/centerEyeRotation", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Rotation", "isComposite": false, "isPartOfComposite": false @@ -140,7 +140,7 @@ "path": "/pose/rotation", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Eye Gaze Rotation", "isComposite": false, "isPartOfComposite": true @@ -151,7 +151,7 @@ "path": "/centerEyeRotation", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Eye Gaze Rotation", "isComposite": false, "isPartOfComposite": true @@ -162,7 +162,7 @@ "path": "", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Eye Gaze Rotation", "isComposite": false, "isPartOfComposite": true @@ -184,7 +184,7 @@ "path": "/pose/position", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Eye Gaze Position", "isComposite": false, "isPartOfComposite": true @@ -195,7 +195,7 @@ "path": "/centerEyePosition", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Eye Gaze Position", "isComposite": false, "isPartOfComposite": true @@ -206,7 +206,7 @@ "path": "", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Eye Gaze Position", "isComposite": false, "isPartOfComposite": true @@ -228,7 +228,7 @@ "path": "/pose/trackingState", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Eye Gaze Tracking State", "isComposite": false, "isPartOfComposite": true @@ -239,7 +239,7 @@ "path": "/trackingState", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Eye Gaze Tracking State", "isComposite": false, "isPartOfComposite": true @@ -250,7 +250,7 @@ "path": "", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Eye Gaze Tracking State", "isComposite": false, "isPartOfComposite": true @@ -261,7 +261,7 @@ "path": "/trackingState", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Tracking State", "isComposite": false, "isPartOfComposite": false @@ -272,7 +272,7 @@ "path": "/isTracked", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Is Tracked", "isComposite": false, "isPartOfComposite": false @@ -294,7 +294,7 @@ "path": "/pose/isTracked", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Eye Gaze Is Tracked", "isComposite": false, "isPartOfComposite": true @@ -305,7 +305,7 @@ "path": "/isTracked", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Eye Gaze Is Tracked", "isComposite": false, "isPartOfComposite": true @@ -316,7 +316,7 @@ "path": "", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Eye Gaze Is Tracked", "isComposite": false, "isPartOfComposite": true @@ -324,7 +324,7 @@ ] }, { - "name": "XRI LeftHand", + "name": "XRI Left", "id": "5fe596f9-1b7b-49b7-80a7-3b5195caf74d", "actions": [ { @@ -391,7 +391,7 @@ "initialStateCheck": true }, { - "name": "Aim Flags", + "name": "Meta Aim Flags", "type": "Value", "id": "f98e71db-49b4-4882-8991-a0e386733e87", "expectedControlType": "Integer", @@ -443,6 +443,15 @@ "processors": "", "interactions": "", "initialStateCheck": true + }, + { + "name": "Thumbstick", + "type": "Value", + "id": "c01850c4-700b-4ae6-a187-a894afef5bbd", + "expectedControlType": "Vector2", + "processors": "", + "interactions": "", + "initialStateCheck": true } ], "bindings": [ @@ -463,7 +472,7 @@ "path": "{LeftHand}/pointerRotation", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Rotation", "isComposite": false, "isPartOfComposite": true @@ -474,7 +483,7 @@ "path": "{LeftHand}/deviceRotation", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Rotation", "isComposite": false, "isPartOfComposite": true @@ -485,7 +494,7 @@ "path": "{LeftHand}/deviceRotation", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Rotation", "isComposite": false, "isPartOfComposite": true @@ -507,7 +516,7 @@ "path": "{LeftHand}/pointerPosition", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Position", "isComposite": false, "isPartOfComposite": true @@ -518,7 +527,7 @@ "path": "{LeftHand}/devicePosition", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Position", "isComposite": false, "isPartOfComposite": true @@ -529,7 +538,7 @@ "path": "{LeftHand}/devicePosition", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Position", "isComposite": false, "isPartOfComposite": true @@ -540,7 +549,7 @@ "path": "{LeftHand}/*", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Haptic Device", "isComposite": false, "isPartOfComposite": false @@ -551,7 +560,7 @@ "path": "{LeftHand}/trackingState", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Tracking State", "isComposite": false, "isPartOfComposite": false @@ -562,7 +571,7 @@ "path": "{LeftHand}/trackingState", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Tracking State", "isComposite": false, "isPartOfComposite": false @@ -573,15 +582,37 @@ "path": "{LeftHand}/devicePosition", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Aim Position", "isComposite": false, "isPartOfComposite": false }, { "name": "", - "id": "51dc1815-5375-4d6f-b211-bbdb678bfc58", - "path": "{LeftHand}/devicePosition", + "id": "8ee39b25-fde6-4195-bc6e-68caadef9183", + "path": "{LeftHand}/pointer/position", + "interactions": "", + "processors": "", + "groups": "", + "action": "Aim Position", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "ec4a1046-3843-445d-8ad4-a769823faa86", + "path": "{LeftHand}/pointer/position", + "interactions": "", + "processors": "", + "groups": "", + "action": "Aim Position", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "d29757d4-ec35-4477-8a26-1d14acd14ba9", + "path": "{LeftHand}/pointer/position", "interactions": "", "processors": "", "groups": "", @@ -595,15 +626,15 @@ "path": "{LeftHand}/deviceRotation", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Aim Rotation", "isComposite": false, "isPartOfComposite": false }, { "name": "", - "id": "9bd317cf-5529-4a90-8daa-9e7e64d6e9b3", - "path": "{LeftHand}/deviceRotation", + "id": "c3ff2c3c-d1ef-40c9-8777-72ee03df3ff3", + "path": "{LeftHand}/pointer/rotation", "interactions": "", "processors": "", "groups": "", @@ -613,36 +644,157 @@ }, { "name": "", - "id": "f7a37505-52bd-4a96-8f88-c761a62a71e7", + "id": "68633061-addf-447b-969e-06249302eaad", + "path": "{LeftHand}/pointer/rotation", + "interactions": "", + "processors": "", + "groups": "", + "action": "Aim Rotation", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "4848899c-8c90-455a-a915-6422290f501b", + "path": "{LeftHand}/pointer/rotation", + "interactions": "", + "processors": "", + "groups": "", + "action": "Aim Rotation", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "Vector 3 Fallback", + "id": "aff6849b-544f-473c-9d7e-da40488aa6ab", + "path": "Vector3Fallback", + "interactions": "", + "processors": "", + "groups": "", + "action": "Pinch Position", + "isComposite": true, + "isPartOfComposite": false + }, + { + "name": "first", + "id": "e62f5918-8922-4a59-ae42-179b1fde0d29", "path": "{LeftHand}/pinchPosition", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Pinch Position", "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "second", + "id": "1e9cdc2b-24e6-4624-9bd8-02c7dcf68fb4", + "path": "{LeftHand}/pinchPose/position", + "interactions": "", + "processors": "", + "groups": "", + "action": "Pinch Position", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "third", + "id": "0adea6d4-f14c-4243-8217-dd63b6529bcc", + "path": "{LeftHand}/pinchPose/position", + "interactions": "", + "processors": "", + "groups": "", + "action": "Pinch Position", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "Vector 3 Fallback", + "id": "2ef93166-d4e5-471d-8321-71e7cdec9220", + "path": "Vector3Fallback", + "interactions": "", + "processors": "", + "groups": "", + "action": "Poke Position", + "isComposite": true, "isPartOfComposite": false }, { - "name": "", - "id": "017a01a2-6e1a-4b39-9b5e-e115d5d2dd6a", + "name": "first", + "id": "55020194-7022-4059-8424-8ecc0de92c13", "path": "{LeftHand}/pokePosition", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Poke Position", "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "second", + "id": "9a8820cc-2172-4641-9fae-0c416b2649e2", + "path": "{LeftHand}/pokePose/position", + "interactions": "", + "processors": "", + "groups": "", + "action": "Poke Position", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "third", + "id": "ef0a4717-47f8-47a3-8dae-fd0cba366115", + "path": "{LeftHand}/pokePose/position", + "interactions": "", + "processors": "", + "groups": "", + "action": "Poke Position", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "Quaternion Fallback", + "id": "892e5765-05a7-460a-942c-32e8a36bd441", + "path": "QuaternionFallback", + "interactions": "", + "processors": "", + "groups": "", + "action": "Poke Rotation", + "isComposite": true, "isPartOfComposite": false }, { - "name": "", - "id": "3ab4651e-837c-4352-9055-6671517f1917", + "name": "first", + "id": "5f5fb46a-effc-4105-bb74-d30dc9cd1f43", "path": "{LeftHand}/pokeRotation", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Poke Rotation", "isComposite": false, - "isPartOfComposite": false + "isPartOfComposite": true + }, + { + "name": "second", + "id": "8fba8372-e2dd-4a31-8048-45d49484323e", + "path": "{LeftHand}/pokePose/rotation", + "interactions": "", + "processors": "", + "groups": "", + "action": "Poke Rotation", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "third", + "id": "8c1d4e9b-88f5-4966-a6e4-0f22f7bb896d", + "path": "{LeftHand}/pokePose/rotation", + "interactions": "", + "processors": "", + "groups": "", + "action": "Poke Rotation", + "isComposite": false, + "isPartOfComposite": true }, { "name": "", @@ -650,7 +802,7 @@ "path": "{LeftHand}/isTracked", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Is Tracked", "isComposite": false, "isPartOfComposite": false @@ -661,7 +813,7 @@ "path": "{LeftHand}/isTracked", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Is Tracked", "isComposite": false, "isPartOfComposite": false @@ -672,19 +824,8 @@ "path": "{LeftHand}/aimFlags", "interactions": "", "processors": "", - "groups": "Generic XR Controller", - "action": "Aim Flags", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "37905047-4822-4a1e-953a-36eb8d0cebce", - "path": "{LeftHand}/aimFlags", - "interactions": "", - "processors": "", "groups": "", - "action": "Aim Flags", + "action": "Meta Aim Flags", "isComposite": false, "isPartOfComposite": false }, @@ -694,7 +835,7 @@ "path": "{LeftHand}/gripPosition", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Grip Position", "isComposite": false, "isPartOfComposite": false @@ -705,15 +846,26 @@ "path": "{LeftHand}/gripRotation", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Grip Rotation", "isComposite": false, "isPartOfComposite": false + }, + { + "name": "", + "id": "0123e5fd-aec0-4ab3-b201-2e6c65d2b93e", + "path": "{LeftHand}/{Primary2DAxis}", + "interactions": "", + "processors": "", + "groups": "", + "action": "Thumbstick", + "isComposite": false, + "isPartOfComposite": false } ] }, { - "name": "XRI LeftHand Interaction", + "name": "XRI Left Interaction", "id": "7a5e7537-cc30-4eb1-a544-6946baa8f3eb", "actions": [ { @@ -756,7 +908,7 @@ "name": "UI Press", "type": "Button", "id": "7e1eced7-c774-4fe5-be8f-d8711f646d9e", - "expectedControlType": "Button", + "expectedControlType": "", "processors": "", "interactions": "", "initialStateCheck": false @@ -780,7 +932,16 @@ "initialStateCheck": true }, { - "name": "Rotate Anchor", + "name": "Translate Manipulation", + "type": "Value", + "id": "bfa204c7-3c92-4193-bad1-39eb71920042", + "expectedControlType": "Vector2", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "Rotate Manipulation", "type": "Value", "id": "21b75b25-12ad-410f-b4f8-a7745b7aca27", "expectedControlType": "Vector2", @@ -789,9 +950,9 @@ "initialStateCheck": true }, { - "name": "Translate Anchor", + "name": "Directional Manipulation", "type": "Value", - "id": "bfa204c7-3c92-4193-bad1-39eb71920042", + "id": "93bd97c5-fd23-4853-8045-1b12324aa24e", "expectedControlType": "Vector2", "processors": "", "interactions": "", @@ -807,7 +968,7 @@ "initialStateCheck": false }, { - "name": "Scale Delta", + "name": "Scale Over Time", "type": "Value", "id": "2257500c-1efb-4f69-a54d-ed5db2708616", "expectedControlType": "Vector2", @@ -823,7 +984,7 @@ "path": "{LeftHand}/{GripButton}", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Select", "isComposite": false, "isPartOfComposite": false @@ -834,15 +995,37 @@ "path": "{LeftHand}/indexPressed", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Select", "isComposite": false, "isPartOfComposite": false }, { "name": "", - "id": "b00a6351-67b0-4c17-8a10-324f78c13425", - "path": "{LeftHand}/grabActive", + "id": "3bbf9f24-2edd-41b9-8456-683298f1e58c", + "path": "{LeftHand}/graspFirm", + "interactions": "", + "processors": "", + "groups": "", + "action": "Select", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "a86585c7-1d41-40e2-a7ca-bb76cca5c32a", + "path": "{LeftHand}/pinchTouched", + "interactions": "", + "processors": "", + "groups": "", + "action": "Select", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "ebab6345-d4f7-4a42-94b3-12d4464de218", + "path": "{LeftHand}/squeezePressed", "interactions": "", "processors": "", "groups": "", @@ -856,7 +1039,7 @@ "path": "{LeftHand}/{Grip}", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Select Value", "isComposite": false, "isPartOfComposite": false @@ -867,15 +1050,37 @@ "path": "{LeftHand}/pinchStrengthIndex", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Select Value", "isComposite": false, "isPartOfComposite": false }, { "name": "", - "id": "c077759c-ff81-4db2-a38b-609d34b5e256", - "path": "{LeftHand}/grabActive", + "id": "2a4b758a-252a-484c-9a26-438954189c08", + "path": "{LeftHand}/graspValue", + "interactions": "", + "processors": "", + "groups": "", + "action": "Select Value", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "bc272ed6-7655-4292-9c21-e5b87bec4350", + "path": "{LeftHand}/pinchValue", + "interactions": "", + "processors": "", + "groups": "", + "action": "Select Value", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "a8d99ae3-e736-4370-ad5e-9fa45cb7a1be", + "path": "{LeftHand}/squeeze", "interactions": "", "processors": "", "groups": "", @@ -889,7 +1094,7 @@ "path": "{LeftHand}/{TriggerButton}", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Activate", "isComposite": false, "isPartOfComposite": false @@ -900,7 +1105,7 @@ "path": "{LeftHand}/{Trigger}", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Activate Value", "isComposite": false, "isPartOfComposite": false @@ -911,7 +1116,7 @@ "path": "{LeftHand}/{TriggerButton}", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "UI Press", "isComposite": false, "isPartOfComposite": false @@ -922,15 +1127,26 @@ "path": "{LeftHand}/indexPressed", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "UI Press", "isComposite": false, "isPartOfComposite": false }, { "name": "", - "id": "1ee0549c-a5b7-4b3e-bbf0-8d6e5e934ed5", - "path": "{LeftHand}/indexPressed", + "id": "fc8b2287-429e-4be4-a34b-cca7c50eeb52", + "path": "{LeftHand}/pointerActivated", + "interactions": "", + "processors": "", + "groups": "", + "action": "UI Press", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "ca931b95-39e0-4db1-9887-f5a5f68298d4", + "path": "{LeftHand}/selectPressed", "interactions": "", "processors": "", "groups": "", @@ -944,7 +1160,7 @@ "path": "{LeftHand}/{Trigger}", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "UI Press Value", "isComposite": false, "isPartOfComposite": false @@ -955,15 +1171,26 @@ "path": "{LeftHand}/pinchStrengthIndex", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "UI Press Value", "isComposite": false, "isPartOfComposite": false }, { "name": "", - "id": "250ef949-5a7c-4283-91ea-3772cd9f4f43", - "path": "{LeftHand}/pinchStrengthIndex", + "id": "c4c2fc93-75fe-4910-95ca-6b1cc163a48a", + "path": "{LeftHand}/pointerActivateValue", + "interactions": "", + "processors": "", + "groups": "", + "action": "UI Press Value", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "c7b5ae56-e532-43a3-a053-8d66df507df1", + "path": "{LeftHand}/select", "interactions": "", "processors": "", "groups": "", @@ -977,19 +1204,8 @@ "path": "{LeftHand}/{Primary2DAxis}", "interactions": "", "processors": "ScaleVector2(y=0),StickDeadzone", - "groups": "Generic XR Controller", - "action": "Rotate Anchor", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "370f21e3-a80b-4b07-990b-299c2da0929a", - "path": "{LeftHand}/{Primary2DAxis}", - "interactions": "", - "processors": "ScaleVector2(x=0),StickDeadzone", - "groups": "Generic XR Controller", - "action": "Translate Anchor", + "groups": "", + "action": "Rotate Manipulation", "isComposite": false, "isPartOfComposite": false }, @@ -999,7 +1215,7 @@ "path": "{LeftHand}/{Primary2DAxis}", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "UI Scroll", "isComposite": false, "isPartOfComposite": false @@ -1010,7 +1226,7 @@ "path": "{LeftHand}/{Primary2DAxisClick}", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Scale Toggle", "isComposite": false, "isPartOfComposite": false @@ -1021,28 +1237,41 @@ "path": "{LeftHand}/{Primary2DAxis}", "interactions": "", "processors": "ScaleVector2(x=0),StickDeadzone", - "groups": "Generic XR Controller", - "action": "Scale Delta", + "groups": "", + "action": "Scale Over Time", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "5fe0ed53-b4d3-4cd8-b567-397a7d1e1c6a", + "path": "{LeftHand}/{Primary2DAxis}", + "interactions": "", + "processors": "", + "groups": "", + "action": "Directional Manipulation", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "370f21e3-a80b-4b07-990b-299c2da0929a", + "path": "{LeftHand}/{Primary2DAxis}", + "interactions": "", + "processors": "ScaleVector2(x=0),StickDeadzone", + "groups": "", + "action": "Translate Manipulation", "isComposite": false, "isPartOfComposite": false } ] }, { - "name": "XRI LeftHand Locomotion", + "name": "XRI Left Locomotion", "id": "22336389-9fb1-4c2c-8635-0ed30db0d29e", "actions": [ { - "name": "Teleport Select", - "type": "Value", - "id": "cbeaf823-3b69-4004-8ec8-13ea2ca3fc31", - "expectedControlType": "Vector2", - "processors": "", - "interactions": "", - "initialStateCheck": true - }, - { - "name": "Teleport Mode Activate", + "name": "Teleport Mode", "type": "Value", "id": "a21db72c-4843-4839-b4d0-3ce8d287cb86", "expectedControlType": "Vector2", @@ -1060,18 +1289,18 @@ "initialStateCheck": false }, { - "name": "Teleport Direction", + "name": "Turn", "type": "Value", - "id": "93bd97c5-fd23-4853-8045-1b12324aa24e", + "id": "9164e093-ebd4-4923-af32-1b52f31c2d66", "expectedControlType": "Vector2", "processors": "", "interactions": "", "initialStateCheck": true }, { - "name": "Turn", + "name": "Snap Turn", "type": "Value", - "id": "9164e093-ebd4-4923-af32-1b52f31c2d66", + "id": "8c14e969-a054-4f12-840c-4e0bd85173d9", "expectedControlType": "Vector2", "processors": "", "interactions": "", @@ -1094,37 +1323,17 @@ "processors": "", "interactions": "", "initialStateCheck": false - }, - { - "name": "Snap Turn", - "type": "Value", - "id": "8c14e969-a054-4f12-840c-4e0bd85173d9", - "expectedControlType": "Vector2", - "processors": "", - "interactions": "", - "initialStateCheck": true } ], "bindings": [ - { - "name": "", - "id": "95fa1419-ca7b-4c8a-8d15-7d46e58d82e3", - "path": "{LeftHand}/{Primary2DAxis}", - "interactions": "Sector(directions=-1,sweepBehavior=3)", - "processors": "", - "groups": "Noncontinuous Move", - "action": "Teleport Select", - "isComposite": false, - "isPartOfComposite": false - }, { "name": "", "id": "8da6ed3a-f621-49fe-8c76-1f6b7d7754d6", "path": "{LeftHand}/{Primary2DAxis}", "interactions": "Sector(directions=1)", "processors": "", - "groups": "Noncontinuous Move", - "action": "Teleport Mode Activate", + "groups": "", + "action": "Teleport Mode", "isComposite": false, "isPartOfComposite": false }, @@ -1134,7 +1343,7 @@ "path": "{LeftHand}/{GripButton}", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Teleport Mode Cancel", "isComposite": false, "isPartOfComposite": false @@ -1145,7 +1354,7 @@ "path": "{LeftHand}/{Primary2DAxis}", "interactions": "Sector(directions=12,sweepBehavior=1),Sector(directions=2,sweepBehavior=2)", "processors": "", - "groups": "Noncontinuous Move", + "groups": "", "action": "Turn", "isComposite": false, "isPartOfComposite": false @@ -1156,29 +1365,18 @@ "path": "{LeftHand}/{Primary2DAxis}", "interactions": "", "processors": "StickDeadzone", - "groups": "Continuous Move", + "groups": "", "action": "Move", "isComposite": false, "isPartOfComposite": false }, - { - "name": "", - "id": "5fe0ed53-b4d3-4cd8-b567-397a7d1e1c6a", - "path": "{LeftHand}/{Primary2DAxis}", - "interactions": "", - "processors": "", - "groups": "Noncontinuous Move", - "action": "Teleport Direction", - "isComposite": false, - "isPartOfComposite": false - }, { "name": "", "id": "9e2fa814-8cbd-4c65-a60d-a1503f30ffd8", "path": "{LeftHand}/{GripButton}", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Grab Move", "isComposite": false, "isPartOfComposite": false @@ -1189,7 +1387,7 @@ "path": "{LeftHand}/{Primary2DAxis}", "interactions": "Sector(directions=12,sweepBehavior=1),Sector(directions=2,sweepBehavior=2)", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Snap Turn", "isComposite": false, "isPartOfComposite": false @@ -1197,7 +1395,7 @@ ] }, { - "name": "XRI RightHand", + "name": "XRI Right", "id": "7960f8ef-2bf3-4281-aecc-4c03809d6c8c", "actions": [ { @@ -1222,7 +1420,7 @@ "name": "Is Tracked", "type": "Button", "id": "a705ffe4-b2c8-4b78-847f-25257d4e30af", - "expectedControlType": "Button", + "expectedControlType": "", "processors": "", "interactions": "", "initialStateCheck": true @@ -1264,7 +1462,7 @@ "initialStateCheck": true }, { - "name": "Aim Flags", + "name": "Meta Aim Flags", "type": "Value", "id": "93a75a21-033e-440c-9954-ff264afb2db9", "expectedControlType": "Integer", @@ -1316,6 +1514,15 @@ "processors": "", "interactions": "", "initialStateCheck": true + }, + { + "name": "Thumbstick", + "type": "Value", + "id": "b8c0ccd3-e1b6-4913-96b3-e0864c9ac6bd", + "expectedControlType": "Vector2", + "processors": "", + "interactions": "", + "initialStateCheck": true } ], "bindings": [ @@ -1336,7 +1543,7 @@ "path": "{RightHand}/pointerRotation", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Rotation", "isComposite": false, "isPartOfComposite": true @@ -1347,7 +1554,7 @@ "path": "{RightHand}/deviceRotation", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Rotation", "isComposite": false, "isPartOfComposite": true @@ -1358,7 +1565,7 @@ "path": "{RightHand}/deviceRotation", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Rotation", "isComposite": false, "isPartOfComposite": true @@ -1380,7 +1587,7 @@ "path": "{RightHand}/pointerPosition", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Position", "isComposite": false, "isPartOfComposite": true @@ -1391,7 +1598,7 @@ "path": "{RightHand}/devicePosition", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Position", "isComposite": false, "isPartOfComposite": true @@ -1402,7 +1609,7 @@ "path": "{RightHand}/devicePosition", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Position", "isComposite": false, "isPartOfComposite": true @@ -1413,7 +1620,7 @@ "path": "{RightHand}/*", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Haptic Device", "isComposite": false, "isPartOfComposite": false @@ -1424,7 +1631,7 @@ "path": "{RightHand}/trackingState", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Tracking State", "isComposite": false, "isPartOfComposite": false @@ -1435,7 +1642,7 @@ "path": "{RightHand}/trackingState", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Tracking State", "isComposite": false, "isPartOfComposite": false @@ -1446,15 +1653,37 @@ "path": "{RightHand}/devicePosition", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Aim Position", "isComposite": false, "isPartOfComposite": false }, { "name": "", - "id": "29fc2d66-6999-451e-91c2-33ad2dd1e196", - "path": "{RightHand}/devicePosition", + "id": "e60d7767-705f-4af2-ae42-f135e6580630", + "path": "{RightHand}/pointer/position", + "interactions": "", + "processors": "", + "groups": "", + "action": "Aim Position", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "d34dafcf-a3a4-4511-a73f-1ecbfd6099c8", + "path": "{RightHand}/pointer/position", + "interactions": "", + "processors": "", + "groups": "", + "action": "Aim Position", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "720d5e83-6877-4504-9b4a-aa550c2593af", + "path": "{RightHand}/pointer/position", "interactions": "", "processors": "", "groups": "", @@ -1468,15 +1697,15 @@ "path": "{RightHand}/deviceRotation", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Aim Rotation", "isComposite": false, "isPartOfComposite": false }, { "name": "", - "id": "a2ddbfaf-6217-47e4-b0e6-1c6f7c9fa869", - "path": "{RightHand}/deviceRotation", + "id": "256fbef4-95a6-4127-ac3e-6a259b640666", + "path": "{RightHand}/pointer/rotation", "interactions": "", "processors": "", "groups": "", @@ -1486,36 +1715,157 @@ }, { "name": "", - "id": "21413a94-0048-4112-b433-a770f183f592", + "id": "d46291b9-775e-457b-a909-649a301d55c3", + "path": "{RightHand}/pointer/rotation", + "interactions": "", + "processors": "", + "groups": "", + "action": "Aim Rotation", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "2fac2635-e015-4fb7-9578-34b85a5d5797", + "path": "{RightHand}/pointer/rotation", + "interactions": "", + "processors": "", + "groups": "", + "action": "Aim Rotation", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "Vector 3 Fallback", + "id": "0323576b-ec88-4459-a791-4afeada3f7c8", + "path": "Vector3Fallback", + "interactions": "", + "processors": "", + "groups": "", + "action": "Pinch Position", + "isComposite": true, + "isPartOfComposite": false + }, + { + "name": "first", + "id": "0bdf98f1-d1a8-443f-805e-9718b34fc6ea", "path": "{RightHand}/pinchPosition", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Pinch Position", "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "second", + "id": "0bd62ec6-1259-40f6-aa0a-71b82a790764", + "path": "{RightHand}/pinchPose/position", + "interactions": "", + "processors": "", + "groups": "", + "action": "Pinch Position", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "third", + "id": "7271c456-534a-4e51-9835-1ebd589a938e", + "path": "{RightHand}/pinchPose/position", + "interactions": "", + "processors": "", + "groups": "", + "action": "Pinch Position", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "Vector 3 Fallback", + "id": "5724159b-b0ee-4458-b567-63874ee6e24a", + "path": "Vector3Fallback", + "interactions": "", + "processors": "", + "groups": "", + "action": "Poke Position", + "isComposite": true, "isPartOfComposite": false }, { - "name": "", - "id": "5e847fad-7431-4e48-883a-d489fca4ce0d", + "name": "first", + "id": "3f5ff135-3cfa-48b6-a35c-aa52badc1d6e", "path": "{RightHand}/pokePosition", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Poke Position", "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "second", + "id": "c46e492c-1618-4d10-8c99-3079cf9deda6", + "path": "{RightHand}/pokePose/position", + "interactions": "", + "processors": "", + "groups": "", + "action": "Poke Position", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "third", + "id": "34b9f870-767e-422c-b558-0708567a1a5d", + "path": "{RightHand}/pokePose/position", + "interactions": "", + "processors": "", + "groups": "", + "action": "Poke Position", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "Quaternion Fallback", + "id": "74a5f1ad-f8ed-42cf-aff3-eb911325ca7d", + "path": "QuaternionFallback", + "interactions": "", + "processors": "", + "groups": "", + "action": "Poke Rotation", + "isComposite": true, "isPartOfComposite": false }, { - "name": "", - "id": "99b19b88-e2ad-4670-91ee-1f55f6c34a69", + "name": "first", + "id": "595c1ccb-9c05-411a-a2fd-e892ca0c9091", "path": "{RightHand}/pokeRotation", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Poke Rotation", "isComposite": false, - "isPartOfComposite": false + "isPartOfComposite": true + }, + { + "name": "second", + "id": "d7ce6129-ec94-4757-9595-aaf1032cae86", + "path": "{RightHand}/pokePose/rotation", + "interactions": "", + "processors": "", + "groups": "", + "action": "Poke Rotation", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "third", + "id": "0e7b9607-caf5-46cc-adb9-2a1500c718a4", + "path": "{RightHand}/pokePose/rotation", + "interactions": "", + "processors": "", + "groups": "", + "action": "Poke Rotation", + "isComposite": false, + "isPartOfComposite": true }, { "name": "", @@ -1523,7 +1873,7 @@ "path": "{RightHand}/isTracked", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Is Tracked", "isComposite": false, "isPartOfComposite": false @@ -1534,7 +1884,7 @@ "path": "{RightHand}/isTracked", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Is Tracked", "isComposite": false, "isPartOfComposite": false @@ -1545,19 +1895,8 @@ "path": "{RightHand}/aimFlags", "interactions": "", "processors": "", - "groups": "Generic XR Controller", - "action": "Aim Flags", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "f86084c3-8cbd-4b77-8317-267eb319819e", - "path": "{RightHand}/aimFlags", - "interactions": "", - "processors": "", "groups": "", - "action": "Aim Flags", + "action": "Meta Aim Flags", "isComposite": false, "isPartOfComposite": false }, @@ -1567,7 +1906,7 @@ "path": "{RightHand}/gripPosition", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Grip Position", "isComposite": false, "isPartOfComposite": false @@ -1578,15 +1917,26 @@ "path": "{RightHand}/gripRotation", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Grip Rotation", "isComposite": false, "isPartOfComposite": false + }, + { + "name": "", + "id": "709cc921-f3b0-4dc8-88d4-7787b8a3ced1", + "path": "{RightHand}/{Primary2DAxis}", + "interactions": "", + "processors": "", + "groups": "", + "action": "Thumbstick", + "isComposite": false, + "isPartOfComposite": false } ] }, { - "name": "XRI RightHand Interaction", + "name": "XRI Right Interaction", "id": "461bce25-7762-40c5-b639-f190649be6d6", "actions": [ { @@ -1629,7 +1979,7 @@ "name": "UI Press", "type": "Button", "id": "65174b45-c2ee-4f90-93bb-fb4084eaaab3", - "expectedControlType": "Button", + "expectedControlType": "", "processors": "", "interactions": "", "initialStateCheck": false @@ -1653,7 +2003,16 @@ "initialStateCheck": true }, { - "name": "Rotate Anchor", + "name": "Translate Manipulation", + "type": "Value", + "id": "6f7cf253-7062-443b-b10f-2be48a33f027", + "expectedControlType": "Vector2", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "Rotate Manipulation", "type": "Value", "id": "9b5d8312-f609-4895-b70f-81a722b2ae11", "expectedControlType": "Vector2", @@ -1662,9 +2021,9 @@ "initialStateCheck": true }, { - "name": "Translate Anchor", + "name": "Directional Manipulation", "type": "Value", - "id": "6f7cf253-7062-443b-b10f-2be48a33f027", + "id": "b950a329-6492-4e29-b563-afc726f81e95", "expectedControlType": "Vector2", "processors": "", "interactions": "", @@ -1674,13 +2033,13 @@ "name": "Scale Toggle", "type": "Button", "id": "5ad73d15-99a4-4bce-a76f-f49815602416", - "expectedControlType": "Button", + "expectedControlType": "", "processors": "", "interactions": "", "initialStateCheck": false }, { - "name": "Scale Delta", + "name": "Scale Over Time", "type": "Value", "id": "19a21f59-bd21-4f77-b29d-4fda26ef6769", "expectedControlType": "Vector2", @@ -1696,7 +2055,7 @@ "path": "{RightHand}/{GripButton}", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Select", "isComposite": false, "isPartOfComposite": false @@ -1707,15 +2066,37 @@ "path": "{RightHand}/indexPressed", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Select", "isComposite": false, "isPartOfComposite": false }, { "name": "", - "id": "f1f0ee56-dfeb-428b-b581-419f440f23a2", - "path": "{RightHand}/grabActive", + "id": "1fe3ab58-51f3-4274-995c-176ac72d9610", + "path": "{RightHand}/graspFirm", + "interactions": "", + "processors": "", + "groups": "", + "action": "Select", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "f6083118-4e38-45a2-afaf-52fa60444f78", + "path": "{RightHand}/pinchTouched", + "interactions": "", + "processors": "", + "groups": "", + "action": "Select", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "82f232f1-6246-4d1e-aacc-a7ccc16c76d9", + "path": "{RightHand}/squeezePressed", "interactions": "", "processors": "", "groups": "", @@ -1729,7 +2110,7 @@ "path": "{RightHand}/{Grip}", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Select Value", "isComposite": false, "isPartOfComposite": false @@ -1740,15 +2121,37 @@ "path": "{RightHand}/pinchStrengthIndex", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Select Value", "isComposite": false, "isPartOfComposite": false }, { "name": "", - "id": "05a06cc4-bd94-4916-836a-a954ceedcb02", - "path": "{RightHand}/grabActive", + "id": "e8d22d4b-ac0c-452b-9f5e-247f94754302", + "path": "{RightHand}/graspValue", + "interactions": "", + "processors": "", + "groups": "", + "action": "Select Value", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "c850e784-816f-4df7-8759-a725cb4a84bf", + "path": "{RightHand}/pinchValue", + "interactions": "", + "processors": "", + "groups": "", + "action": "Select Value", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "e890a130-d436-4b52-a092-bff81d18bfb7", + "path": "{RightHand}/squeeze", "interactions": "", "processors": "", "groups": "", @@ -1762,7 +2165,7 @@ "path": "{RightHand}/{TriggerButton}", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Activate", "isComposite": false, "isPartOfComposite": false @@ -1773,7 +2176,7 @@ "path": "{RightHand}/{Trigger}", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Activate Value", "isComposite": false, "isPartOfComposite": false @@ -1784,7 +2187,7 @@ "path": "{RightHand}/{TriggerButton}", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "UI Press", "isComposite": false, "isPartOfComposite": false @@ -1795,15 +2198,26 @@ "path": "{RightHand}/indexPressed", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "UI Press", "isComposite": false, "isPartOfComposite": false }, { "name": "", - "id": "06ad2ed4-86c4-45e7-be80-c82d6549f259", - "path": "{RightHand}/indexPressed", + "id": "7ae41e93-9c2b-4d15-8387-0eddbc823053", + "path": "{RightHand}/pointerActivated", + "interactions": "", + "processors": "", + "groups": "", + "action": "UI Press", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "f8a900c7-8116-4f44-9d24-8f19caf07108", + "path": "{RightHand}/selectPressed", "interactions": "", "processors": "", "groups": "", @@ -1817,7 +2231,7 @@ "path": "{RightHand}/{Trigger}", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "UI Press Value", "isComposite": false, "isPartOfComposite": false @@ -1828,15 +2242,26 @@ "path": "{RightHand}/pinchStrengthIndex", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "UI Press Value", "isComposite": false, "isPartOfComposite": false }, { "name": "", - "id": "a1b2690b-71eb-40cc-ae49-1a00e5148342", - "path": "{RightHand}/pinchStrengthIndex", + "id": "4bfac4d7-1bce-4fa7-a6b1-00eb7e5f346e", + "path": "{RightHand}/pointerActivateValue", + "interactions": "", + "processors": "", + "groups": "", + "action": "UI Press Value", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "e2fbf204-5031-483f-beaa-abf05113dbc7", + "path": "{RightHand}/select", "interactions": "", "processors": "", "groups": "", @@ -1850,19 +2275,8 @@ "path": "{RightHand}/{Primary2DAxis}", "interactions": "", "processors": "ScaleVector2(y=0),StickDeadzone", - "groups": "Generic XR Controller", - "action": "Rotate Anchor", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "4caf4e8d-13e5-4bd6-8f42-b6b99c315ad0", - "path": "{RightHand}/{Primary2DAxis}", - "interactions": "", - "processors": "ScaleVector2(x=0),StickDeadzone", - "groups": "Generic XR Controller", - "action": "Translate Anchor", + "groups": "", + "action": "Rotate Manipulation", "isComposite": false, "isPartOfComposite": false }, @@ -1872,7 +2286,7 @@ "path": "{RightHand}/{Primary2DAxis}", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "UI Scroll", "isComposite": false, "isPartOfComposite": false @@ -1883,7 +2297,7 @@ "path": "{RightHand}/{Primary2DAxisClick}", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Scale Toggle", "isComposite": false, "isPartOfComposite": false @@ -1894,28 +2308,41 @@ "path": "{RightHand}/{Primary2DAxis}", "interactions": "", "processors": "ScaleVector2(x=0),StickDeadzone", - "groups": "Generic XR Controller", - "action": "Scale Delta", + "groups": "", + "action": "Scale Over Time", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "c4b46d7d-8231-4672-83f9-75af565faf57", + "path": "{RightHand}/{Primary2DAxis}", + "interactions": "", + "processors": "", + "groups": "", + "action": "Directional Manipulation", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "4caf4e8d-13e5-4bd6-8f42-b6b99c315ad0", + "path": "{RightHand}/{Primary2DAxis}", + "interactions": "", + "processors": "ScaleVector2(x=0),StickDeadzone", + "groups": "", + "action": "Translate Manipulation", "isComposite": false, "isPartOfComposite": false } ] }, { - "name": "XRI RightHand Locomotion", + "name": "XRI Right Locomotion", "id": "99ce76d3-82c5-4289-9670-2ecffa6833fd", "actions": [ { - "name": "Teleport Select", - "type": "Value", - "id": "02e43582-8973-4940-af06-dff6158e3df2", - "expectedControlType": "Vector2", - "processors": "", - "interactions": "", - "initialStateCheck": true - }, - { - "name": "Teleport Mode Activate", + "name": "Teleport Mode", "type": "Value", "id": "a6c7231d-c55d-4dd4-9e87-877bb5522ef5", "expectedControlType": "Vector2", @@ -1933,18 +2360,18 @@ "initialStateCheck": false }, { - "name": "Teleport Direction", + "name": "Turn", "type": "Value", - "id": "b950a329-6492-4e29-b563-afc726f81e95", + "id": "9fb2eb2b-2fb6-4328-8167-10a1bf11b424", "expectedControlType": "Vector2", "processors": "", "interactions": "", "initialStateCheck": true }, { - "name": "Turn", + "name": "Snap Turn", "type": "Value", - "id": "9fb2eb2b-2fb6-4328-8167-10a1bf11b424", + "id": "44441ad6-5762-466d-ad54-aa44fcd61a5c", "expectedControlType": "Vector2", "processors": "", "interactions": "", @@ -1967,37 +2394,17 @@ "processors": "", "interactions": "", "initialStateCheck": false - }, - { - "name": "Snap Turn", - "type": "Value", - "id": "44441ad6-5762-466d-ad54-aa44fcd61a5c", - "expectedControlType": "Vector2", - "processors": "", - "interactions": "", - "initialStateCheck": true } ], "bindings": [ - { - "name": "", - "id": "919c4a6c-22ed-4083-8e14-f30e91ff59fe", - "path": "{RightHand}/{Primary2DAxis}", - "interactions": "Sector(directions=-1,sweepBehavior=3)", - "processors": "", - "groups": "Generic XR Controller", - "action": "Teleport Select", - "isComposite": false, - "isPartOfComposite": false - }, { "name": "", "id": "62690862-4688-4010-975b-b3d9c6062157", "path": "{RightHand}/{Primary2DAxis}", "interactions": "Sector(directions=1)", "processors": "", - "groups": "Generic XR Controller", - "action": "Teleport Mode Activate", + "groups": "", + "action": "Teleport Mode", "isComposite": false, "isPartOfComposite": false }, @@ -2007,7 +2414,7 @@ "path": "{RightHand}/{GripButton}", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Teleport Mode Cancel", "isComposite": false, "isPartOfComposite": false @@ -2018,7 +2425,7 @@ "path": "{RightHand}/{Primary2DAxis}", "interactions": "Sector(directions=12,sweepBehavior=1),Sector(directions=2,sweepBehavior=2)", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Turn", "isComposite": false, "isPartOfComposite": false @@ -2029,29 +2436,18 @@ "path": "{RightHand}/{Primary2DAxis}", "interactions": "", "processors": "StickDeadzone", - "groups": "Continuous Move", + "groups": "", "action": "Move", "isComposite": false, "isPartOfComposite": false }, - { - "name": "", - "id": "c4b46d7d-8231-4672-83f9-75af565faf57", - "path": "{RightHand}/{Primary2DAxis}", - "interactions": "", - "processors": "", - "groups": "Noncontinuous Move", - "action": "Teleport Direction", - "isComposite": false, - "isPartOfComposite": false - }, { "name": "", "id": "7ecb549e-ab98-4a4b-b979-38068fe3b811", "path": "{RightHand}/{GripButton}", "interactions": "", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Grab Move", "isComposite": false, "isPartOfComposite": false @@ -2062,7 +2458,7 @@ "path": "{RightHand}/{Primary2DAxis}", "interactions": "Sector(directions=12,sweepBehavior=1),Sector(directions=2,sweepBehavior=2)", "processors": "", - "groups": "Generic XR Controller", + "groups": "", "action": "Snap Turn", "isComposite": false, "isPartOfComposite": false @@ -2618,6 +3014,15 @@ "processors": "", "interactions": "", "initialStateCheck": true + }, + { + "name": "Spawn Object", + "type": "Button", + "id": "1415f3c5-fc5f-4f58-a044-4a69560151f2", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false } ], "bindings": [ @@ -2625,13 +3030,46 @@ "name": "", "id": "fea81b99-07f5-426a-beba-5e0832c14855", "path": "/tapStartPosition", - "interactions": "Tap", + "interactions": "", "processors": "", "groups": "", "action": "Tap Start Position", "isComposite": false, "isPartOfComposite": false }, + { + "name": "One Modifier", + "id": "ccaca70d-b804-4cda-9dd1-ee9152fa6ec8", + "path": "OneModifier", + "interactions": "Tap", + "processors": "", + "groups": "", + "action": "Tap Start Position", + "isComposite": true, + "isPartOfComposite": false + }, + { + "name": "modifier", + "id": "30c845d9-0972-4e51-92bf-2eee8171abc7", + "path": "/press", + "interactions": "", + "processors": "", + "groups": "", + "action": "Tap Start Position", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "binding", + "id": "9ab23efd-1004-4423-b9b9-b070db6cde4e", + "path": "/position", + "interactions": "", + "processors": "", + "groups": "", + "action": "Tap Start Position", + "isComposite": false, + "isPartOfComposite": true + }, { "name": "", "id": "eb175a82-fad6-4249-bc9f-a6c9acee4436", @@ -2687,6 +3125,39 @@ "isComposite": false, "isPartOfComposite": false }, + { + "name": "1D Axis", + "id": "57cc64a3-de05-45d9-971f-764c0aa9efe5", + "path": "1DAxis", + "interactions": "", + "processors": "", + "groups": "", + "action": "Twist Delta Rotation", + "isComposite": true, + "isPartOfComposite": false + }, + { + "name": "negative", + "id": "475bf595-e1da-44b6-8674-677260bd2dcf", + "path": "/r", + "interactions": "", + "processors": "", + "groups": "", + "action": "Twist Delta Rotation", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "positive", + "id": "05a801e2-b5df-4253-b3a9-ad2213853f57", + "path": "/e", + "interactions": "", + "processors": "", + "groups": "", + "action": "Twist Delta Rotation", + "isComposite": false, + "isPartOfComposite": true + }, { "name": "", "id": "d919e652-0e4a-4f12-a1f9-b18cead206e2", @@ -2731,6 +3202,50 @@ "isComposite": false, "isPartOfComposite": false }, + { + "name": "", + "id": "6926b069-b36d-40c2-8325-797a8deb9038", + "path": "/scroll/y", + "interactions": "", + "processors": "", + "groups": "", + "action": "Pinch Gap Delta", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "1D Axis", + "id": "da16ab02-4e2b-46f5-a969-c780423ac0e9", + "path": "1DAxis", + "interactions": "", + "processors": "", + "groups": "", + "action": "Pinch Gap Delta", + "isComposite": true, + "isPartOfComposite": false + }, + { + "name": "negative", + "id": "07794ffe-429a-49c7-93c1-83c4af6695f4", + "path": "/z", + "interactions": "", + "processors": "", + "groups": "", + "action": "Pinch Gap Delta", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "positive", + "id": "c480645b-97d7-4c34-8797-7f9a24edb3c5", + "path": "/x", + "interactions": "", + "processors": "", + "groups": "", + "action": "Pinch Gap Delta", + "isComposite": false, + "isPartOfComposite": true + }, { "name": "", "id": "0f8550ed-7261-48e0-aa0e-6670f29141f5", @@ -2752,68 +3267,53 @@ "action": "Pinch Gap", "isComposite": false, "isPartOfComposite": false + }, + { + "name": "", + "id": "f0f27c2a-eef2-418a-986a-811bf690fd89", + "path": "/Press", + "interactions": "Tap", + "processors": "", + "groups": "", + "action": "Spawn Object", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "One Modifier", + "id": "6f6c3123-8e3c-4f69-9ecc-2a605a5f8777", + "path": "OneModifier", + "interactions": "Tap", + "processors": "", + "groups": "", + "action": "Spawn Object", + "isComposite": true, + "isPartOfComposite": false + }, + { + "name": "modifier", + "id": "ab34c73d-e0f0-4cf2-962e-2c201f9c5714", + "path": "/press", + "interactions": "", + "processors": "", + "groups": "", + "action": "Spawn Object", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "binding", + "id": "38c38fe4-fefa-4a01-a80a-6185ecb009cb", + "path": "/position", + "interactions": "", + "processors": "", + "groups": "", + "action": "Spawn Object", + "isComposite": false, + "isPartOfComposite": true } ] } ], - "controlSchemes": [ - { - "name": "Generic XR Controller", - "bindingGroup": "Generic XR Controller", - "devices": [ - { - "devicePath": "{LeftHand}", - "isOptional": true, - "isOR": false - }, - { - "devicePath": "{RightHand}", - "isOptional": true, - "isOR": false - }, - { - "devicePath": "", - "isOptional": true, - "isOR": false - }, - { - "devicePath": "", - "isOptional": true, - "isOR": false - } - ] - }, - { - "name": "Continuous Move", - "bindingGroup": "Continuous Move", - "devices": [ - { - "devicePath": "{LeftHand}", - "isOptional": false, - "isOR": false - }, - { - "devicePath": "{RightHand}", - "isOptional": false, - "isOR": false - } - ] - }, - { - "name": "Noncontinuous Move", - "bindingGroup": "Noncontinuous Move", - "devices": [ - { - "devicePath": "{LeftHand}", - "isOptional": false, - "isOR": false - }, - { - "devicePath": "{RightHand}", - "isOptional": false, - "isOR": false - } - ] - } - ] + "controlSchemes": [] } \ No newline at end of file diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/XRI Default Input Actions.inputactions.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/XRI Default Input Actions.inputactions.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/XRI Default Input Actions.inputactions.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/XRI Default Input Actions.inputactions.meta diff --git a/Assets/Scenes/Old/Launcher.unity b/Assets/Scenes/Old/Launcher.unity index 11bc03cb..15635377 100644 --- a/Assets/Scenes/Old/Launcher.unity +++ b/Assets/Scenes/Old/Launcher.unity @@ -38,7 +38,6 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: @@ -1163,12 +1162,17 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_SendPointerHoverToParent: 1 + m_EventSystem: {fileID: 0} + m_InputOverride: {fileID: 0} + m_DefaultInput: {fileID: 0} m_ClickSpeed: 0.3 m_MoveDeadzone: 0.6 m_RepeatDelay: 0.5 m_RepeatRate: 0.1 m_TrackedDeviceDragThresholdMultiplier: 1.4 m_TrackedScrollDeltaMultiplier: 5 + m_UICamera: {fileID: 0} + m_MainCameraCache: {fileID: 0} m_ActiveInputMode: 0 m_MaxTrackedDeviceRaycastDistance: 1000 m_EnableXRInput: 1 @@ -1189,6 +1193,8 @@ MonoBehaviour: m_VerticalAxis: Vertical m_SubmitButton: Submit m_CancelButton: Cancel + m_RollingPointerId: 0 + m_UseBuiltInInputSystemActions: 0 --- !u!114 &256662350 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Help/SetHandRay.cs b/Assets/Scripts/Help/SetHandRay.cs index a48b3010..75e0796b 100644 --- a/Assets/Scripts/Help/SetHandRay.cs +++ b/Assets/Scripts/Help/SetHandRay.cs @@ -1,6 +1,6 @@ using UnityEngine; using UnityEngine.Rendering; -using UnityEngine.XR.Interaction.Toolkit; + using BigSpace.Logic; using BigSpace.XRCore.Event; @@ -10,14 +10,14 @@ public class SetHandRay : MonoBehaviour public GameObject LeftRya; public GameObject RigthRay; - XRRayInteractor xRRayInteractor_Left; + UnityEngine.XR.Interaction.Toolkit.Interactors.XRRayInteractor xRRayInteractor_Left; LineRenderer lineRenderer_Left; - XRInteractorLineVisual xRInteractorLineVisual_Left; + UnityEngine.XR.Interaction.Toolkit.Interactors.Visuals.XRInteractorLineVisual xRInteractorLineVisual_Left; SortingGroup sortingGroup_Left; - XRRayInteractor xRRayInteractor_Right; + UnityEngine.XR.Interaction.Toolkit.Interactors.XRRayInteractor xRRayInteractor_Right; LineRenderer lineRenderer_Right; - XRInteractorLineVisual xRInteractorLineVisual_Right; + UnityEngine.XR.Interaction.Toolkit.Interactors.Visuals.XRInteractorLineVisual xRInteractorLineVisual_Right; SortingGroup sortingGroup_Right; @@ -25,14 +25,14 @@ public class SetHandRay : MonoBehaviour // Start is called before the first frame update void Start() { - xRRayInteractor_Left = LeftRya.GetComponent(); + xRRayInteractor_Left = LeftRya.GetComponent(); lineRenderer_Left = LeftRya.GetComponent(); - xRInteractorLineVisual_Left = LeftRya.GetComponent(); + xRInteractorLineVisual_Left = LeftRya.GetComponent(); sortingGroup_Left = LeftRya.GetComponent(); - xRRayInteractor_Right = RigthRay.GetComponent(); + xRRayInteractor_Right = RigthRay.GetComponent(); lineRenderer_Right = RigthRay.GetComponent(); - xRInteractorLineVisual_Right = RigthRay.GetComponent(); + xRInteractorLineVisual_Right = RigthRay.GetComponent(); sortingGroup_Right = RigthRay.GetComponent(); diff --git a/Assets/Third Party/AmplifyShaderEditor/Examples/Built-In Samples.unitypackage.meta b/Assets/Third Party/AmplifyShaderEditor/Examples/Built-In Samples.unitypackage.meta deleted file mode 100644 index ee1d5e40..00000000 --- a/Assets/Third Party/AmplifyShaderEditor/Examples/Built-In Samples.unitypackage.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: e00e6f90ab8233e46a41c5e33917c642 -timeCreated: 1585839223 -licenseType: Store -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Third Party/AmplifyShaderEditor/Examples/HDRP Samples 14x.unitypackage.meta b/Assets/Third Party/AmplifyShaderEditor/Examples/HDRP Samples 14x.unitypackage.meta deleted file mode 100644 index ba827d29..00000000 --- a/Assets/Third Party/AmplifyShaderEditor/Examples/HDRP Samples 14x.unitypackage.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 7a0bb33169d95ec499136d59cb25918b -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Third Party/AmplifyShaderEditor/Examples/HDRP Samples.unitypackage.meta b/Assets/Third Party/AmplifyShaderEditor/Examples/HDRP Samples.unitypackage.meta deleted file mode 100644 index 59379f1b..00000000 --- a/Assets/Third Party/AmplifyShaderEditor/Examples/HDRP Samples.unitypackage.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: d1c0b77896049554fa4b635531caf741 -timeCreated: 1533059192 -licenseType: Store -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Third Party/AmplifyShaderEditor/Examples/Sample Resources.unitypackage.meta b/Assets/Third Party/AmplifyShaderEditor/Examples/Sample Resources.unitypackage.meta deleted file mode 100644 index 2de62af1..00000000 --- a/Assets/Third Party/AmplifyShaderEditor/Examples/Sample Resources.unitypackage.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: c0a0a980c9ba86345bc15411db88d34f -timeCreated: 1585839223 -licenseType: Store -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Third Party/AmplifyShaderEditor/Examples/URP Samples 10x.unitypackage.meta b/Assets/Third Party/AmplifyShaderEditor/Examples/URP Samples 10x.unitypackage.meta deleted file mode 100644 index 819d3c7d..00000000 --- a/Assets/Third Party/AmplifyShaderEditor/Examples/URP Samples 10x.unitypackage.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 2edbf4a9b9544774bbef617e92429664 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Third Party/AmplifyShaderEditor/Examples/URP Samples 12x.unitypackage.meta b/Assets/Third Party/AmplifyShaderEditor/Examples/URP Samples 12x.unitypackage.meta deleted file mode 100644 index 9c0d665d..00000000 --- a/Assets/Third Party/AmplifyShaderEditor/Examples/URP Samples 12x.unitypackage.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 13ab599a7bda4e54fba3e92a13c9580a -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Third Party/AmplifyShaderEditor/Examples/URP Samples 14x.unitypackage.meta b/Assets/Third Party/AmplifyShaderEditor/Examples/URP Samples 14x.unitypackage.meta deleted file mode 100644 index 624d8621..00000000 --- a/Assets/Third Party/AmplifyShaderEditor/Examples/URP Samples 14x.unitypackage.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: f6f268949ccf3f34fa4d18e92501ed82 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Third Party/AmplifyShaderEditor/Examples/URP Samples.unitypackage.meta b/Assets/Third Party/AmplifyShaderEditor/Examples/URP Samples.unitypackage.meta deleted file mode 100644 index 10f67fac..00000000 --- a/Assets/Third Party/AmplifyShaderEditor/Examples/URP Samples.unitypackage.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: a9d68dd8913f05d4d9ce75e7b40c6044 -timeCreated: 1575902011 -licenseType: Store -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Third Party/AmplifyShaderEditor/Plugins/EditorResources/Templates/HDRP 10x.unitypackage.meta b/Assets/Third Party/AmplifyShaderEditor/Plugins/EditorResources/Templates/HDRP 10x.unitypackage.meta deleted file mode 100644 index 602bd09a..00000000 --- a/Assets/Third Party/AmplifyShaderEditor/Plugins/EditorResources/Templates/HDRP 10x.unitypackage.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 2243c8b4e1ab6914995699133f67ab5a -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Third Party/AmplifyShaderEditor/Plugins/EditorResources/Templates/HDRP 12x.unitypackage.meta b/Assets/Third Party/AmplifyShaderEditor/Plugins/EditorResources/Templates/HDRP 12x.unitypackage.meta deleted file mode 100644 index e51ee6d4..00000000 --- a/Assets/Third Party/AmplifyShaderEditor/Plugins/EditorResources/Templates/HDRP 12x.unitypackage.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 9a5e61a8b3421b944863d0946e32da0a -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Third Party/AmplifyShaderEditor/Plugins/EditorResources/Templates/HDRP 14x.unitypackage.meta b/Assets/Third Party/AmplifyShaderEditor/Plugins/EditorResources/Templates/HDRP 14x.unitypackage.meta deleted file mode 100644 index 82a2ab0e..00000000 --- a/Assets/Third Party/AmplifyShaderEditor/Plugins/EditorResources/Templates/HDRP 14x.unitypackage.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 89f0b84148d149d4d96b838d7ef60e92 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Third Party/AmplifyShaderEditor/Plugins/EditorResources/Templates/URP 10x.unitypackage.meta b/Assets/Third Party/AmplifyShaderEditor/Plugins/EditorResources/Templates/URP 10x.unitypackage.meta deleted file mode 100644 index 34f23836..00000000 --- a/Assets/Third Party/AmplifyShaderEditor/Plugins/EditorResources/Templates/URP 10x.unitypackage.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: b460b52e6c1feae45b70b7ddc2c45bd6 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Third Party/AmplifyShaderEditor/Plugins/EditorResources/Templates/URP 12x.unitypackage.meta b/Assets/Third Party/AmplifyShaderEditor/Plugins/EditorResources/Templates/URP 12x.unitypackage.meta deleted file mode 100644 index 04c4f886..00000000 --- a/Assets/Third Party/AmplifyShaderEditor/Plugins/EditorResources/Templates/URP 12x.unitypackage.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 57fcea0ed8b5eb347923c4c21fa31b57 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Third Party/AmplifyShaderEditor/Plugins/EditorResources/Templates/URP 14x.unitypackage.meta b/Assets/Third Party/AmplifyShaderEditor/Plugins/EditorResources/Templates/URP 14x.unitypackage.meta deleted file mode 100644 index d5cd3087..00000000 --- a/Assets/Third Party/AmplifyShaderEditor/Plugins/EditorResources/Templates/URP 14x.unitypackage.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 2e9da72e7e3196146bf7d27450013734 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Third Party/Procedural Worlds/Packages - Install/Gaia/Editor Resources/GaiaXRController.unitypackage.meta b/Assets/Third Party/Procedural Worlds/Packages - Install/Gaia/Editor Resources/GaiaXRController.unitypackage.meta deleted file mode 100644 index a33ac68b..00000000 --- a/Assets/Third Party/Procedural Worlds/Packages - Install/Gaia/Editor Resources/GaiaXRController.unitypackage.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: c814d2df27a2eb14d9f6198b08046609 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor.meta b/Packages/MCPForUnity/Editor.meta new file mode 100644 index 00000000..26495d40 --- /dev/null +++ b/Packages/MCPForUnity/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 31e7fac5858840340a75cc6df0ad3d9e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/AssemblyInfo.cs b/Packages/MCPForUnity/Editor/AssemblyInfo.cs new file mode 100644 index 00000000..bae75b67 --- /dev/null +++ b/Packages/MCPForUnity/Editor/AssemblyInfo.cs @@ -0,0 +1,3 @@ +using System.Runtime.CompilerServices; + +[assembly: InternalsVisibleTo("MCPForUnityTests.EditMode")] diff --git a/Packages/MCPForUnity/Editor/AssemblyInfo.cs.meta b/Packages/MCPForUnity/Editor/AssemblyInfo.cs.meta new file mode 100644 index 00000000..72bf5f72 --- /dev/null +++ b/Packages/MCPForUnity/Editor/AssemblyInfo.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: be61633e00d934610ac1ff8192ffbe3d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Clients.meta b/Packages/MCPForUnity/Editor/Clients.meta new file mode 100644 index 00000000..b4105b36 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c9d47f01d06964ee7843765d1bd71205 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Clients/Configurators.meta b/Packages/MCPForUnity/Editor/Clients/Configurators.meta new file mode 100644 index 00000000..a259c217 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/Configurators.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 59ff83375c2c74c8385c4a22549778dd +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Clients/Configurators/AntigravityConfigurator.cs b/Packages/MCPForUnity/Editor/Clients/Configurators/AntigravityConfigurator.cs new file mode 100644 index 00000000..9a83620f --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/Configurators/AntigravityConfigurator.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.IO; +using MCPForUnity.Editor.Constants; +using MCPForUnity.Editor.Models; +using UnityEditor; + +namespace MCPForUnity.Editor.Clients.Configurators +{ + public class AntigravityConfigurator : JsonFileMcpConfigurator + { + public AntigravityConfigurator() : base(new McpClient + { + name = "Antigravity", + windowsConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".gemini", "antigravity", "mcp_config.json"), + macConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".gemini", "antigravity", "mcp_config.json"), + linuxConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".gemini", "antigravity", "mcp_config.json"), + HttpUrlProperty = "serverUrl", + DefaultUnityFields = { { "disabled", false } }, + StripEnvWhenNotRequired = true + }) + { } + + public override IList GetInstallationSteps() => new List + { + "Open Antigravity", + "Click the more_horiz menu in the Agent pane > MCP Servers", + "Select 'Install' for Unity MCP or use the Configure button above", + "Restart Antigravity if necessary" + }; + } +} diff --git a/Packages/MCPForUnity/Editor/Clients/Configurators/AntigravityConfigurator.cs.meta b/Packages/MCPForUnity/Editor/Clients/Configurators/AntigravityConfigurator.cs.meta new file mode 100644 index 00000000..76e91a07 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/Configurators/AntigravityConfigurator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 331b33961513042e3945d0a1d06615b5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Clients/Configurators/CherryStudioConfigurator.cs b/Packages/MCPForUnity/Editor/Clients/Configurators/CherryStudioConfigurator.cs new file mode 100644 index 00000000..bf14559f --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/Configurators/CherryStudioConfigurator.cs @@ -0,0 +1,94 @@ +using System; +using System.Collections.Generic; +using System.IO; +using MCPForUnity.Editor.Constants; +using MCPForUnity.Editor.Models; +using MCPForUnity.Editor.Services; +using UnityEditor; + +namespace MCPForUnity.Editor.Clients.Configurators +{ + public class CherryStudioConfigurator : JsonFileMcpConfigurator + { + public const string ClientName = "Cherry Studio"; + + public CherryStudioConfigurator() : base(new McpClient + { + name = ClientName, + windowsConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Cherry Studio", "config"), + macConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Library", "Application Support", "Cherry Studio", "config"), + linuxConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".config", "Cherry Studio", "config"), + SupportsHttpTransport = false + }) + { } + + public override bool SupportsAutoConfigure => false; + + public override IList GetInstallationSteps() => new List + { + "Open Cherry Studio", + "Go to Settings (⚙️) → MCP Server", + "Click 'Add Server' button", + "For STDIO mode (recommended):", + " - Name: unity-mcp", + " - Type: STDIO", + " - Command: uvx", + " - Arguments: Copy from the Manual Configuration JSON below", + "Click Save and restart Cherry Studio", + "", + "Note: Cherry Studio uses UI-based configuration.", + "Use the manual snippet below as reference for the values to enter." + }; + + public override McpStatus CheckStatus(bool attemptAutoRewrite = true) + { + client.SetStatus(McpStatus.NotConfigured, "Cherry Studio requires manual UI configuration"); + return client.status; + } + + public override void Configure() + { + throw new InvalidOperationException( + "Cherry Studio uses UI-based configuration. " + + "Please use the Manual Configuration snippet and Installation Steps to configure manually." + ); + } + + public override string GetManualSnippet() + { + bool useHttp = EditorConfigurationCache.Instance.UseHttpTransport; + + if (useHttp) + { + return "# Cherry Studio does not support WebSocket transport.\n" + + "# Cherry Studio supports STDIO and SSE transports.\n" + + "# \n" + + "# To use Cherry Studio:\n" + + "# 1. Switch transport to 'Stdio' in Advanced Settings below\n" + + "# 2. Return to this configuration screen\n" + + "# 3. Copy the STDIO configuration snippet that will appear\n" + + "# \n" + + "# OPTION 2: SSE mode (future support)\n" + + "# Note: Unity MCP does not currently have an SSE endpoint.\n" + + "# This may be added in a future update."; + } + + return base.GetManualSnippet() + "\n\n" + + "# Cherry Studio Configuration Instructions:\n" + + "# Cherry Studio uses UI-based configuration, not a JSON file.\n" + + "# \n" + + "# To configure:\n" + + "# 1. Open Cherry Studio\n" + + "# 2. Go to Settings (⚙️) → MCP Server\n" + + "# 3. Click 'Add Server'\n" + + "# 4. Enter the following values from the JSON above:\n" + + "# - Name: unity-mcp\n" + + "# - Type: STDIO\n" + + "# - Command: (copy 'command' value from JSON)\n" + + "# - Arguments: (copy 'args' array values, space-separated or as individual entries)\n" + + "# - Active: true\n" + + "# 5. Click Save\n" + + "# 6. Restart Cherry Studio"; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Clients/Configurators/CherryStudioConfigurator.cs.meta b/Packages/MCPForUnity/Editor/Clients/Configurators/CherryStudioConfigurator.cs.meta new file mode 100644 index 00000000..81450515 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/Configurators/CherryStudioConfigurator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6de06c6bb0399154d840a1e4c84be869 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: \ No newline at end of file diff --git a/Packages/MCPForUnity/Editor/Clients/Configurators/ClaudeCodeConfigurator.cs b/Packages/MCPForUnity/Editor/Clients/Configurators/ClaudeCodeConfigurator.cs new file mode 100644 index 00000000..c890d7c4 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/Configurators/ClaudeCodeConfigurator.cs @@ -0,0 +1,27 @@ +using System.Collections.Generic; +using MCPForUnity.Editor.Models; + +namespace MCPForUnity.Editor.Clients.Configurators +{ + /// + /// Claude Code configurator using the CLI-based registration (claude mcp add/remove). + /// This integrates with Claude Code's native MCP management. + /// + public class ClaudeCodeConfigurator : ClaudeCliMcpConfigurator + { + public ClaudeCodeConfigurator() : base(new McpClient + { + name = "Claude Code", + SupportsHttpTransport = true, + }) + { } + + public override IList GetInstallationSteps() => new List + { + "Ensure Claude CLI is installed (comes with Claude Code)", + "Click Register to add UnityMCP via 'claude mcp add'", + "The server will be automatically available in Claude Code", + "Use Unregister to remove via 'claude mcp remove'" + }; + } +} diff --git a/Packages/MCPForUnity/Editor/Clients/Configurators/ClaudeCodeConfigurator.cs.meta b/Packages/MCPForUnity/Editor/Clients/Configurators/ClaudeCodeConfigurator.cs.meta new file mode 100644 index 00000000..b5ceb3fc --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/Configurators/ClaudeCodeConfigurator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d0d22681fc594475db1c189f2d9abdf7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Clients/Configurators/ClaudeDesktopConfigurator.cs b/Packages/MCPForUnity/Editor/Clients/Configurators/ClaudeDesktopConfigurator.cs new file mode 100644 index 00000000..72861349 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/Configurators/ClaudeDesktopConfigurator.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections.Generic; +using System.IO; +using MCPForUnity.Editor.Constants; +using MCPForUnity.Editor.Models; +using MCPForUnity.Editor.Services; +using UnityEditor; + +namespace MCPForUnity.Editor.Clients.Configurators +{ + public class ClaudeDesktopConfigurator : JsonFileMcpConfigurator + { + public const string ClientName = "Claude Desktop"; + + public ClaudeDesktopConfigurator() : base(new McpClient + { + name = ClientName, + windowsConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Claude", "claude_desktop_config.json"), + macConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Library", "Application Support", "Claude", "claude_desktop_config.json"), + linuxConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".config", "Claude", "claude_desktop_config.json"), + SupportsHttpTransport = false, + StripEnvWhenNotRequired = true + }) + { } + + public override IList GetInstallationSteps() => new List + { + "Open Claude Desktop", + "Go to Settings > Developer > Edit Config\nOR open the config path", + "Paste the configuration JSON", + "Save and restart Claude Desktop" + }; + + public override void Configure() + { + bool useHttp = EditorConfigurationCache.Instance.UseHttpTransport; + if (useHttp) + { + throw new InvalidOperationException("Claude Desktop does not support HTTP transport. Switch to stdio in settings before configuring."); + } + + base.Configure(); + } + + public override string GetManualSnippet() + { + bool useHttp = EditorConfigurationCache.Instance.UseHttpTransport; + if (useHttp) + { + return "# Claude Desktop does not support HTTP transport.\n" + + "# Open Advanced Settings and disable HTTP transport to use stdio, then regenerate."; + } + + return base.GetManualSnippet(); + } + } +} diff --git a/Packages/MCPForUnity/Editor/Clients/Configurators/ClaudeDesktopConfigurator.cs.meta b/Packages/MCPForUnity/Editor/Clients/Configurators/ClaudeDesktopConfigurator.cs.meta new file mode 100644 index 00000000..905c262d --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/Configurators/ClaudeDesktopConfigurator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d5e5d87c9db57495f842dc366f1ebd65 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Clients/Configurators/CodeBuddyCliConfigurator.cs b/Packages/MCPForUnity/Editor/Clients/Configurators/CodeBuddyCliConfigurator.cs new file mode 100644 index 00000000..4ef36243 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/Configurators/CodeBuddyCliConfigurator.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.IO; +using MCPForUnity.Editor.Models; + +namespace MCPForUnity.Editor.Clients.Configurators +{ + /// + /// Configures the CodeBuddy CLI (~/.codebuddy.json) MCP settings. + /// + public class CodeBuddyCliConfigurator : JsonFileMcpConfigurator + { + public CodeBuddyCliConfigurator() : base(new McpClient + { + name = "CodeBuddy CLI", + windowsConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".codebuddy.json"), + macConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".codebuddy.json"), + linuxConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".codebuddy.json"), + }) + { } + + public override IList GetInstallationSteps() => new List + { + "Install CodeBuddy CLI and ensure '~/.codebuddy.json' exists", + "Click Configure to add the UnityMCP entry (or manually edit the file above)", + "Restart your CLI session if needed" + }; + } +} diff --git a/Packages/MCPForUnity/Editor/Clients/Configurators/CodeBuddyCliConfigurator.cs.meta b/Packages/MCPForUnity/Editor/Clients/Configurators/CodeBuddyCliConfigurator.cs.meta new file mode 100644 index 00000000..255f740f --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/Configurators/CodeBuddyCliConfigurator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 923728a98c8c74cfaa6e9203c408f34e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Clients/Configurators/CodexConfigurator.cs b/Packages/MCPForUnity/Editor/Clients/Configurators/CodexConfigurator.cs new file mode 100644 index 00000000..9337d4cd --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/Configurators/CodexConfigurator.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.IO; +using MCPForUnity.Editor.Models; + +namespace MCPForUnity.Editor.Clients.Configurators +{ + public class CodexConfigurator : CodexMcpConfigurator + { + public CodexConfigurator() : base(new McpClient + { + name = "Codex", + windowsConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".codex", "config.toml"), + macConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".codex", "config.toml"), + linuxConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".codex", "config.toml") + }) + { } + + public override IList GetInstallationSteps() => new List + { + "Run 'codex config edit' in a terminal\nOR open the config file at the path above", + "Paste the configuration TOML", + "Save and restart Codex" + }; + } +} diff --git a/Packages/MCPForUnity/Editor/Clients/Configurators/CodexConfigurator.cs.meta b/Packages/MCPForUnity/Editor/Clients/Configurators/CodexConfigurator.cs.meta new file mode 100644 index 00000000..14bc60e4 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/Configurators/CodexConfigurator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c7037ef8b168e49f79247cb31c3be75a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Clients/Configurators/CopilotCliConfigurator.cs b/Packages/MCPForUnity/Editor/Clients/Configurators/CopilotCliConfigurator.cs new file mode 100644 index 00000000..84120a4f --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/Configurators/CopilotCliConfigurator.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.IO; +using MCPForUnity.Editor.Models; + +namespace MCPForUnity.Editor.Clients.Configurators +{ + public class CopilotCliConfigurator : JsonFileMcpConfigurator + { + public CopilotCliConfigurator() : base(new McpClient + { + name = "GitHub Copilot CLI", + windowsConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".copilot", "mcp-config.json"), + macConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".copilot", "mcp-config.json"), + linuxConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".copilot", "mcp-config.json") + }) + { } + + public override IList GetInstallationSteps() => new List + { + "Install GitHub Copilot CLI (https://docs.github.com/en/copilot/concepts/agents/about-copilot-cli)", + "Open or create mcp-config.json at the path above", + "Paste the configuration JSON (or use /mcp add in the CLI)", + "Restart your Copilot CLI session" + }; + } +} diff --git a/Packages/MCPForUnity/Editor/Clients/Configurators/CopilotCliConfigurator.cs.meta b/Packages/MCPForUnity/Editor/Clients/Configurators/CopilotCliConfigurator.cs.meta new file mode 100644 index 00000000..d6c740f3 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/Configurators/CopilotCliConfigurator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 14a4b9a7f749248d496466c2a3a53e56 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Clients/Configurators/CursorConfigurator.cs b/Packages/MCPForUnity/Editor/Clients/Configurators/CursorConfigurator.cs new file mode 100644 index 00000000..d63b2261 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/Configurators/CursorConfigurator.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.IO; +using MCPForUnity.Editor.Models; + +namespace MCPForUnity.Editor.Clients.Configurators +{ + public class CursorConfigurator : JsonFileMcpConfigurator + { + public CursorConfigurator() : base(new McpClient + { + name = "Cursor", + windowsConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".cursor", "mcp.json"), + macConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".cursor", "mcp.json"), + linuxConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".cursor", "mcp.json") + }) + { } + + public override IList GetInstallationSteps() => new List + { + "Open Cursor", + "Go to File > Preferences > Cursor Settings > MCP > Add new global MCP server\nOR open the config file at the path above", + "Paste the configuration JSON", + "Save and restart Cursor" + }; + } +} diff --git a/Packages/MCPForUnity/Editor/Clients/Configurators/CursorConfigurator.cs.meta b/Packages/MCPForUnity/Editor/Clients/Configurators/CursorConfigurator.cs.meta new file mode 100644 index 00000000..578eb0f6 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/Configurators/CursorConfigurator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b708eda314746481fb8f4a1fb0652b03 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Clients/Configurators/KiloCodeConfigurator.cs b/Packages/MCPForUnity/Editor/Clients/Configurators/KiloCodeConfigurator.cs new file mode 100644 index 00000000..e62b6456 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/Configurators/KiloCodeConfigurator.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.IO; +using MCPForUnity.Editor.Models; + +namespace MCPForUnity.Editor.Clients.Configurators +{ + public class KiloCodeConfigurator : JsonFileMcpConfigurator + { + public KiloCodeConfigurator() : base(new McpClient + { + name = "Kilo Code", + windowsConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Code", "User", "globalStorage", "kilocode.kilo-code", "settings", "mcp_settings.json"), + macConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Library", "Application Support", "Code", "User", "globalStorage", "kilocode.kilo-code", "settings", "mcp_settings.json"), + linuxConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".config", "Code", "User", "globalStorage", "kilocode.kilo-code", "settings", "mcp_settings.json"), + IsVsCodeLayout = true + }) + { } + + public override IList GetInstallationSteps() => new List + { + "Install Kilo Code extension in VS Code", + "Open Kilo Code settings (gear icon in sidebar)", + "Navigate to MCP Servers section and click 'Edit Global MCP Settings'\nOR open the config file at the path above", + "Paste the configuration JSON into the mcpServers object", + "Save and restart VS Code" + }; + } +} diff --git a/Packages/MCPForUnity/Editor/Clients/Configurators/KiloCodeConfigurator.cs.meta b/Packages/MCPForUnity/Editor/Clients/Configurators/KiloCodeConfigurator.cs.meta new file mode 100644 index 00000000..9e2bbfb0 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/Configurators/KiloCodeConfigurator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3286d62ffe5644f5ea60488fd7e6513d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Clients/Configurators/KiroConfigurator.cs b/Packages/MCPForUnity/Editor/Clients/Configurators/KiroConfigurator.cs new file mode 100644 index 00000000..445b6e59 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/Configurators/KiroConfigurator.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.IO; +using MCPForUnity.Editor.Models; + +namespace MCPForUnity.Editor.Clients.Configurators +{ + public class KiroConfigurator : JsonFileMcpConfigurator + { + public KiroConfigurator() : base(new McpClient + { + name = "Kiro", + windowsConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".kiro", "settings", "mcp.json"), + macConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".kiro", "settings", "mcp.json"), + linuxConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".kiro", "settings", "mcp.json"), + EnsureEnvObject = true, + DefaultUnityFields = { { "disabled", false } } + }) + { } + + public override IList GetInstallationSteps() => new List + { + "Open Kiro", + "Go to File > Settings > Settings > Search for \"MCP\" > Open Workspace MCP Config\nOR open the config file at the path above", + "Paste the configuration JSON", + "Save and restart Kiro" + }; + } +} diff --git a/Packages/MCPForUnity/Editor/Clients/Configurators/KiroConfigurator.cs.meta b/Packages/MCPForUnity/Editor/Clients/Configurators/KiroConfigurator.cs.meta new file mode 100644 index 00000000..dacb0435 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/Configurators/KiroConfigurator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e9b73ff071a6043dda1f2ec7d682ef71 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Clients/Configurators/OpenCodeConfigurator.cs b/Packages/MCPForUnity/Editor/Clients/Configurators/OpenCodeConfigurator.cs new file mode 100644 index 00000000..34ab535b --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/Configurators/OpenCodeConfigurator.cs @@ -0,0 +1,178 @@ +using System; +using System.Collections.Generic; +using System.IO; +using MCPForUnity.Editor.Helpers; +using MCPForUnity.Editor.Models; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; + +namespace MCPForUnity.Editor.Clients.Configurators +{ + /// + /// Configurator for OpenCode (opencode.ai) - a Go-based terminal AI coding assistant. + /// OpenCode uses ~/.config/opencode/opencode.json with a custom "mcp" format. + /// + public class OpenCodeConfigurator : McpClientConfiguratorBase + { + private const string ServerName = "unityMCP"; + private const string SchemaUrl = "https://opencode.ai/config.json"; + + public OpenCodeConfigurator() : base(new McpClient + { + name = "OpenCode", + windowsConfigPath = BuildConfigPath(), + macConfigPath = BuildConfigPath(), + linuxConfigPath = BuildConfigPath() + }) + { } + + private static string BuildConfigPath() + { + string xdgConfigHome = Environment.GetEnvironmentVariable("XDG_CONFIG_HOME"); + string configBase = !string.IsNullOrEmpty(xdgConfigHome) + ? xdgConfigHome + : Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".config"); + return Path.Combine(configBase, "opencode", "opencode.json"); + } + + public override string GetConfigPath() => CurrentOsPath(); + + /// + /// Attempts to load and parse the config file. + /// Returns null if file doesn't exist or cannot be read. + /// Returns parsed JObject if valid JSON found. + /// Logs warning if file exists but contains malformed JSON. + /// + private JObject TryLoadConfig(string path) + { + if (!File.Exists(path)) + return null; + + string content; + try + { + content = File.ReadAllText(path); + } + catch (Exception ex) + { + UnityEngine.Debug.LogWarning($"[OpenCodeConfigurator] Failed to read config file {path}: {ex.Message}"); + return null; + } + + try + { + return JsonConvert.DeserializeObject(content) ?? new JObject(); + } + catch (JsonException ex) + { + // Malformed JSON - log warning and return null. + // When Configure() receives null, it will do: TryLoadConfig(path) ?? new JObject() + // This creates a fresh empty JObject, which replaces the entire file with only the unityMCP section. + // Existing config sections are lost. To preserve sections, a different recovery strategy + // (e.g., line-by-line parsing, JSON repair, or manual user intervention) would be needed. + UnityEngine.Debug.LogWarning($"[OpenCodeConfigurator] Malformed JSON in {path}: {ex.Message}"); + return null; + } + } + + public override McpStatus CheckStatus(bool attemptAutoRewrite = true) + { + try + { + string path = GetConfigPath(); + var config = TryLoadConfig(path); + + if (config == null) + { + client.SetStatus(McpStatus.NotConfigured); + return client.status; + } + + var unityMcp = config["mcp"]?[ServerName] as JObject; + + if (unityMcp == null) + { + client.SetStatus(McpStatus.NotConfigured); + return client.status; + } + + string configuredUrl = unityMcp["url"]?.ToString(); + string expectedUrl = HttpEndpointUtility.GetMcpRpcUrl(); + + if (UrlsEqual(configuredUrl, expectedUrl)) + { + client.SetStatus(McpStatus.Configured); + } + else if (attemptAutoRewrite) + { + Configure(); + } + else + { + client.SetStatus(McpStatus.IncorrectPath); + } + } + catch (Exception ex) + { + client.SetStatus(McpStatus.Error, ex.Message); + } + + return client.status; + } + + public override void Configure() + { + try + { + string path = GetConfigPath(); + McpConfigurationHelper.EnsureConfigDirectoryExists(path); + + // Load existing config or start fresh, preserving all other properties and MCP servers + var config = TryLoadConfig(path) ?? new JObject(); + + // Only add $schema if creating a new file + if (!File.Exists(path)) + { + config["$schema"] = SchemaUrl; + } + + // Preserve existing mcp section and only update our server entry + var mcpSection = config["mcp"] as JObject ?? new JObject(); + config["mcp"] = mcpSection; + + mcpSection[ServerName] = BuildServerEntry(); + + McpConfigurationHelper.WriteAtomicFile(path, JsonConvert.SerializeObject(config, Formatting.Indented)); + client.SetStatus(McpStatus.Configured); + } + catch (Exception ex) + { + client.SetStatus(McpStatus.Error, ex.Message); + } + } + + public override string GetManualSnippet() + { + var snippet = new JObject + { + ["mcp"] = new JObject { [ServerName] = BuildServerEntry() } + }; + return JsonConvert.SerializeObject(snippet, Formatting.Indented); + } + + public override IList GetInstallationSteps() => new List + { + "Install OpenCode (https://opencode.ai)", + "Click Configure to add Unity MCP to ~/.config/opencode/opencode.json", + "Restart OpenCode", + "The Unity MCP server should be detected automatically" + }; + + private static JObject BuildServerEntry() => new JObject + { + ["type"] = "remote", + ["url"] = HttpEndpointUtility.GetMcpRpcUrl(), + ["enabled"] = true + }; + } +} diff --git a/Packages/MCPForUnity/Editor/Clients/Configurators/OpenCodeConfigurator.cs.meta b/Packages/MCPForUnity/Editor/Clients/Configurators/OpenCodeConfigurator.cs.meta new file mode 100644 index 00000000..c3b334d5 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/Configurators/OpenCodeConfigurator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 489f99ffb7e6743e88e3203552c8b37b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Clients/Configurators/RiderConfigurator.cs b/Packages/MCPForUnity/Editor/Clients/Configurators/RiderConfigurator.cs new file mode 100644 index 00000000..2558a426 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/Configurators/RiderConfigurator.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.IO; +using MCPForUnity.Editor.Models; + +namespace MCPForUnity.Editor.Clients.Configurators +{ + public class RiderConfigurator : JsonFileMcpConfigurator + { + public RiderConfigurator() : base(new McpClient + { + name = "Rider GitHub Copilot", + windowsConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "github-copilot", "intellij", "mcp.json"), + macConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Library", "Application Support", "github-copilot", "intellij", "mcp.json"), + linuxConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".config", "github-copilot", "intellij", "mcp.json"), + IsVsCodeLayout = true + }) + { } + + public override IList GetInstallationSteps() => new List + { + "Install GitHub Copilot plugin in Rider", + "Open or create mcp.json at the path above", + "Paste the configuration JSON", + "Save and restart Rider" + }; + } +} + diff --git a/Packages/MCPForUnity/Editor/Clients/Configurators/RiderConfigurator.cs.meta b/Packages/MCPForUnity/Editor/Clients/Configurators/RiderConfigurator.cs.meta new file mode 100644 index 00000000..8f76ac04 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/Configurators/RiderConfigurator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2511b0d05271d486bb61f8cc9fd11363 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Clients/Configurators/TraeConfigurator.cs b/Packages/MCPForUnity/Editor/Clients/Configurators/TraeConfigurator.cs new file mode 100644 index 00000000..f32b6886 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/Configurators/TraeConfigurator.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.IO; +using MCPForUnity.Editor.Models; + +namespace MCPForUnity.Editor.Clients.Configurators +{ + public class TraeConfigurator : JsonFileMcpConfigurator + { + public TraeConfigurator() : base(new McpClient + { + name = "Trae", + windowsConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Trae", "mcp.json"), + macConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Library", "Application Support", "Trae", "mcp.json"), + linuxConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".config", "Trae", "mcp.json"), + }) + { } + + public override IList GetInstallationSteps() => new List + { + "Open Trae and go to Settings > MCP", + "Select Add Server > Add Manually", + "Paste the JSON or point to the mcp.json file\n"+ + "Windows: %AppData%\\Trae\\mcp.json\n" + + "macOS: ~/Library/Application Support/Trae/mcp.json\n" + + "Linux: ~/.config/Trae/mcp.json\n", + "Save and restart Trae" + }; + } +} diff --git a/Packages/MCPForUnity/Editor/Clients/Configurators/TraeConfigurator.cs.meta b/Packages/MCPForUnity/Editor/Clients/Configurators/TraeConfigurator.cs.meta new file mode 100644 index 00000000..09e953c1 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/Configurators/TraeConfigurator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b3ab39e22ae0948ab94beae307f9902e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Clients/Configurators/VSCodeConfigurator.cs b/Packages/MCPForUnity/Editor/Clients/Configurators/VSCodeConfigurator.cs new file mode 100644 index 00000000..90579304 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/Configurators/VSCodeConfigurator.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.IO; +using MCPForUnity.Editor.Models; + +namespace MCPForUnity.Editor.Clients.Configurators +{ + public class VSCodeConfigurator : JsonFileMcpConfigurator + { + public VSCodeConfigurator() : base(new McpClient + { + name = "VSCode GitHub Copilot", + windowsConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Code", "User", "mcp.json"), + macConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Library", "Application Support", "Code", "User", "mcp.json"), + linuxConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".config", "Code", "User", "mcp.json"), + IsVsCodeLayout = true + }) + { } + + public override IList GetInstallationSteps() => new List + { + "Install GitHub Copilot extension", + "Open or create mcp.json at the path above", + "Paste the configuration JSON", + "Save and restart VSCode" + }; + } +} diff --git a/Packages/MCPForUnity/Editor/Clients/Configurators/VSCodeConfigurator.cs.meta b/Packages/MCPForUnity/Editor/Clients/Configurators/VSCodeConfigurator.cs.meta new file mode 100644 index 00000000..056d0d41 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/Configurators/VSCodeConfigurator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bcc7ead475a4d4ea2978151c217757b8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Clients/Configurators/VSCodeInsidersConfigurator.cs b/Packages/MCPForUnity/Editor/Clients/Configurators/VSCodeInsidersConfigurator.cs new file mode 100644 index 00000000..55adb28f --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/Configurators/VSCodeInsidersConfigurator.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.IO; +using MCPForUnity.Editor.Models; + +namespace MCPForUnity.Editor.Clients.Configurators +{ + public class VSCodeInsidersConfigurator : JsonFileMcpConfigurator + { + public VSCodeInsidersConfigurator() : base(new McpClient + { + name = "VSCode Insiders GitHub Copilot", + windowsConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Code - Insiders", "User", "mcp.json"), + macConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Library", "Application Support", "Code - Insiders", "User", "mcp.json"), + linuxConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".config", "Code - Insiders", "User", "mcp.json"), + IsVsCodeLayout = true + }) + { } + + public override IList GetInstallationSteps() => new List + { + "Install GitHub Copilot extension in VS Code Insiders", + "Open or create mcp.json at the path above", + "Paste the configuration JSON", + "Save and restart VS Code Insiders" + }; + } +} diff --git a/Packages/MCPForUnity/Editor/Clients/Configurators/VSCodeInsidersConfigurator.cs.meta b/Packages/MCPForUnity/Editor/Clients/Configurators/VSCodeInsidersConfigurator.cs.meta new file mode 100644 index 00000000..e751d6f3 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/Configurators/VSCodeInsidersConfigurator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2c4a1b0d3b34489cbf0f8c40c49c4f3b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Clients/Configurators/WindsurfConfigurator.cs b/Packages/MCPForUnity/Editor/Clients/Configurators/WindsurfConfigurator.cs new file mode 100644 index 00000000..4437170f --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/Configurators/WindsurfConfigurator.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.IO; +using MCPForUnity.Editor.Models; + +namespace MCPForUnity.Editor.Clients.Configurators +{ + public class WindsurfConfigurator : JsonFileMcpConfigurator + { + public WindsurfConfigurator() : base(new McpClient + { + name = "Windsurf", + windowsConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".codeium", "windsurf", "mcp_config.json"), + macConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".codeium", "windsurf", "mcp_config.json"), + linuxConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".codeium", "windsurf", "mcp_config.json"), + HttpUrlProperty = "serverUrl", + DefaultUnityFields = { { "disabled", false } }, + StripEnvWhenNotRequired = true + }) + { } + + public override IList GetInstallationSteps() => new List + { + "Open Windsurf", + "Go to File > Preferences > Windsurf Settings > MCP > Manage MCPs > View raw config\nOR open the config file at the path above", + "Paste the configuration JSON", + "Save and restart Windsurf" + }; + } +} diff --git a/Packages/MCPForUnity/Editor/Clients/Configurators/WindsurfConfigurator.cs.meta b/Packages/MCPForUnity/Editor/Clients/Configurators/WindsurfConfigurator.cs.meta new file mode 100644 index 00000000..1b951566 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/Configurators/WindsurfConfigurator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b528971e189f141d38db577f155bd222 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Clients/IMcpClientConfigurator.cs b/Packages/MCPForUnity/Editor/Clients/IMcpClientConfigurator.cs new file mode 100644 index 00000000..9fdea29c --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/IMcpClientConfigurator.cs @@ -0,0 +1,47 @@ +using MCPForUnity.Editor.Models; + +namespace MCPForUnity.Editor.Clients +{ + /// + /// Contract for MCP client configurators. Each client is responsible for + /// status detection, auto-configure, and manual snippet/steps. + /// + public interface IMcpClientConfigurator + { + /// Stable identifier (e.g., "cursor"). + string Id { get; } + + /// Display name shown in the UI. + string DisplayName { get; } + + /// Current status cached by the configurator. + McpStatus Status { get; } + + /// + /// The transport type the client is currently configured for. + /// Returns Unknown if the client is not configured or the transport cannot be determined. + /// + ConfiguredTransport ConfiguredTransport { get; } + + /// True if this client supports auto-configure. + bool SupportsAutoConfigure { get; } + + /// Label to show on the configure button for the current state. + string GetConfigureActionLabel(); + + /// Returns the platform-specific config path (or message for CLI-managed clients). + string GetConfigPath(); + + /// Checks and updates status; returns current status. + McpStatus CheckStatus(bool attemptAutoRewrite = true); + + /// Runs auto-configuration (register/write file/CLI etc.). + void Configure(); + + /// Returns the manual configuration snippet (JSON/TOML/commands). + string GetManualSnippet(); + + /// Returns ordered human-readable installation steps. + System.Collections.Generic.IList GetInstallationSteps(); + } +} diff --git a/Packages/MCPForUnity/Editor/Clients/IMcpClientConfigurator.cs.meta b/Packages/MCPForUnity/Editor/Clients/IMcpClientConfigurator.cs.meta new file mode 100644 index 00000000..fc573966 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/IMcpClientConfigurator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f5a5078d9e6e14027a1abfebf4018634 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Clients/McpClientConfiguratorBase.cs b/Packages/MCPForUnity/Editor/Clients/McpClientConfiguratorBase.cs new file mode 100644 index 00000000..0d69cafb --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/McpClientConfiguratorBase.cs @@ -0,0 +1,925 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Runtime.InteropServices; +using MCPForUnity.Editor.Constants; +using MCPForUnity.Editor.Helpers; +using MCPForUnity.Editor.Models; +using MCPForUnity.Editor.Services; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.Clients +{ + /// Shared base class for MCP configurators. + public abstract class McpClientConfiguratorBase : IMcpClientConfigurator + { + protected readonly McpClient client; + + protected McpClientConfiguratorBase(McpClient client) + { + this.client = client; + } + + internal McpClient Client => client; + + public string Id => client.name.Replace(" ", "").ToLowerInvariant(); + public virtual string DisplayName => client.name; + public McpStatus Status => client.status; + public ConfiguredTransport ConfiguredTransport => client.configuredTransport; + public virtual bool SupportsAutoConfigure => true; + public virtual string GetConfigureActionLabel() => "Configure"; + + public abstract string GetConfigPath(); + public abstract McpStatus CheckStatus(bool attemptAutoRewrite = true); + public abstract void Configure(); + public abstract string GetManualSnippet(); + public abstract IList GetInstallationSteps(); + + protected string GetUvxPathOrError() + { + string uvx = MCPServiceLocator.Paths.GetUvxPath(); + if (string.IsNullOrEmpty(uvx)) + { + throw new InvalidOperationException("uvx not found. Install uv/uvx or set the override in Advanced Settings."); + } + return uvx; + } + + protected string CurrentOsPath() + { + if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) + return client.windowsConfigPath; + if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) + return client.macConfigPath; + return client.linuxConfigPath; + } + + protected bool UrlsEqual(string a, string b) + { + if (string.IsNullOrWhiteSpace(a) || string.IsNullOrWhiteSpace(b)) + { + return false; + } + + if (Uri.TryCreate(a.Trim(), UriKind.Absolute, out var uriA) && + Uri.TryCreate(b.Trim(), UriKind.Absolute, out var uriB)) + { + return Uri.Compare( + uriA, + uriB, + UriComponents.HttpRequestUrl, + UriFormat.SafeUnescaped, + StringComparison.OrdinalIgnoreCase) == 0; + } + + string Normalize(string value) => value.Trim().TrimEnd('/'); + return string.Equals(Normalize(a), Normalize(b), StringComparison.OrdinalIgnoreCase); + } + } + + /// JSON-file based configurator (Cursor, Windsurf, VS Code, etc.). + public abstract class JsonFileMcpConfigurator : McpClientConfiguratorBase + { + public JsonFileMcpConfigurator(McpClient client) : base(client) { } + + public override string GetConfigPath() => CurrentOsPath(); + + public override McpStatus CheckStatus(bool attemptAutoRewrite = true) + { + try + { + string path = GetConfigPath(); + if (!File.Exists(path)) + { + client.SetStatus(McpStatus.NotConfigured); + client.configuredTransport = Models.ConfiguredTransport.Unknown; + return client.status; + } + + string configJson = File.ReadAllText(path); + string[] args = null; + string configuredUrl = null; + bool configExists = false; + + if (client.IsVsCodeLayout) + { + var vsConfig = JsonConvert.DeserializeObject(configJson) as JObject; + if (vsConfig != null) + { + var unityToken = + vsConfig["servers"]?["unityMCP"] + ?? vsConfig["mcp"]?["servers"]?["unityMCP"]; + + if (unityToken is JObject unityObj) + { + configExists = true; + + var argsToken = unityObj["args"]; + if (argsToken is JArray) + { + args = argsToken.ToObject(); + } + + var urlToken = unityObj["url"] ?? unityObj["serverUrl"]; + if (urlToken != null && urlToken.Type != JTokenType.Null) + { + configuredUrl = urlToken.ToString(); + } + } + } + } + else + { + McpConfig standardConfig = JsonConvert.DeserializeObject(configJson); + if (standardConfig?.mcpServers?.unityMCP != null) + { + args = standardConfig.mcpServers.unityMCP.args; + configuredUrl = standardConfig.mcpServers.unityMCP.url; + configExists = true; + } + } + + if (!configExists) + { + client.SetStatus(McpStatus.MissingConfig); + client.configuredTransport = Models.ConfiguredTransport.Unknown; + return client.status; + } + + // Determine and set the configured transport type + if (args != null && args.Length > 0) + { + client.configuredTransport = Models.ConfiguredTransport.Stdio; + } + else if (!string.IsNullOrEmpty(configuredUrl)) + { + // Distinguish HTTP Local from HTTP Remote by matching against both URLs + string localRpcUrl = HttpEndpointUtility.GetLocalMcpRpcUrl(); + string remoteRpcUrl = HttpEndpointUtility.GetRemoteMcpRpcUrl(); + if (!string.IsNullOrEmpty(remoteRpcUrl) && UrlsEqual(configuredUrl, remoteRpcUrl)) + { + client.configuredTransport = Models.ConfiguredTransport.HttpRemote; + } + else + { + client.configuredTransport = Models.ConfiguredTransport.Http; + } + } + else + { + client.configuredTransport = Models.ConfiguredTransport.Unknown; + } + + bool matches = false; + if (args != null && args.Length > 0) + { + string expectedUvxUrl = AssetPathUtility.GetMcpServerPackageSource(); + string configuredUvxUrl = McpConfigurationHelper.ExtractUvxUrl(args); + matches = !string.IsNullOrEmpty(configuredUvxUrl) && + McpConfigurationHelper.PathsEqual(configuredUvxUrl, expectedUvxUrl); + } + else if (!string.IsNullOrEmpty(configuredUrl)) + { + // Match against the active scope's URL + string expectedUrl = HttpEndpointUtility.GetMcpRpcUrl(); + matches = UrlsEqual(configuredUrl, expectedUrl); + } + + if (matches) + { + client.SetStatus(McpStatus.Configured); + return client.status; + } + + if (attemptAutoRewrite) + { + var result = McpConfigurationHelper.WriteMcpConfiguration(path, client); + if (result == "Configured successfully") + { + client.SetStatus(McpStatus.Configured); + client.configuredTransport = HttpEndpointUtility.GetCurrentServerTransport(); + } + else + { + client.SetStatus(McpStatus.IncorrectPath); + } + } + else + { + client.SetStatus(McpStatus.IncorrectPath); + } + } + catch (Exception ex) + { + client.SetStatus(McpStatus.Error, ex.Message); + client.configuredTransport = Models.ConfiguredTransport.Unknown; + } + + return client.status; + } + + public override void Configure() + { + string path = GetConfigPath(); + McpConfigurationHelper.EnsureConfigDirectoryExists(path); + string result = McpConfigurationHelper.WriteMcpConfiguration(path, client); + if (result == "Configured successfully") + { + client.SetStatus(McpStatus.Configured); + client.configuredTransport = HttpEndpointUtility.GetCurrentServerTransport(); + } + else + { + throw new InvalidOperationException(result); + } + } + + public override string GetManualSnippet() + { + try + { + string uvx = GetUvxPathOrError(); + return ConfigJsonBuilder.BuildManualConfigJson(uvx, client); + } + catch (Exception ex) + { + var errorObj = new { error = ex.Message }; + return JsonConvert.SerializeObject(errorObj); + } + } + + public override IList GetInstallationSteps() => new List { "Configuration steps not available for this client." }; + } + + /// Codex (TOML) configurator. + public abstract class CodexMcpConfigurator : McpClientConfiguratorBase + { + public CodexMcpConfigurator(McpClient client) : base(client) { } + + public override string GetConfigPath() => CurrentOsPath(); + + public override McpStatus CheckStatus(bool attemptAutoRewrite = true) + { + try + { + string path = GetConfigPath(); + if (!File.Exists(path)) + { + client.SetStatus(McpStatus.NotConfigured); + client.configuredTransport = Models.ConfiguredTransport.Unknown; + return client.status; + } + + string toml = File.ReadAllText(path); + if (CodexConfigHelper.TryParseCodexServer(toml, out _, out var args, out var url)) + { + // Determine and set the configured transport type + if (!string.IsNullOrEmpty(url)) + { + // Distinguish HTTP Local from HTTP Remote + string remoteRpcUrl = HttpEndpointUtility.GetRemoteMcpRpcUrl(); + if (!string.IsNullOrEmpty(remoteRpcUrl) && UrlsEqual(url, remoteRpcUrl)) + { + client.configuredTransport = Models.ConfiguredTransport.HttpRemote; + } + else + { + client.configuredTransport = Models.ConfiguredTransport.Http; + } + } + else if (args != null && args.Length > 0) + { + client.configuredTransport = Models.ConfiguredTransport.Stdio; + } + else + { + client.configuredTransport = Models.ConfiguredTransport.Unknown; + } + + bool matches = false; + if (!string.IsNullOrEmpty(url)) + { + // Match against the active scope's URL + matches = UrlsEqual(url, HttpEndpointUtility.GetMcpRpcUrl()); + } + else if (args != null && args.Length > 0) + { + string expected = AssetPathUtility.GetMcpServerPackageSource(); + string configured = McpConfigurationHelper.ExtractUvxUrl(args); + matches = !string.IsNullOrEmpty(configured) && + McpConfigurationHelper.PathsEqual(configured, expected); + } + + if (matches) + { + client.SetStatus(McpStatus.Configured); + return client.status; + } + } + else + { + client.configuredTransport = Models.ConfiguredTransport.Unknown; + } + + if (attemptAutoRewrite) + { + string result = McpConfigurationHelper.ConfigureCodexClient(path, client); + if (result == "Configured successfully") + { + client.SetStatus(McpStatus.Configured); + client.configuredTransport = HttpEndpointUtility.GetCurrentServerTransport(); + } + else + { + client.SetStatus(McpStatus.IncorrectPath); + } + } + else + { + client.SetStatus(McpStatus.IncorrectPath); + } + } + catch (Exception ex) + { + client.SetStatus(McpStatus.Error, ex.Message); + client.configuredTransport = Models.ConfiguredTransport.Unknown; + } + + return client.status; + } + + public override void Configure() + { + string path = GetConfigPath(); + McpConfigurationHelper.EnsureConfigDirectoryExists(path); + string result = McpConfigurationHelper.ConfigureCodexClient(path, client); + if (result == "Configured successfully") + { + client.SetStatus(McpStatus.Configured); + client.configuredTransport = HttpEndpointUtility.GetCurrentServerTransport(); + } + else + { + throw new InvalidOperationException(result); + } + } + + public override string GetManualSnippet() + { + try + { + string uvx = GetUvxPathOrError(); + return CodexConfigHelper.BuildCodexServerBlock(uvx); + } + catch (Exception ex) + { + return $"# error: {ex.Message}"; + } + } + + public override IList GetInstallationSteps() => new List + { + "Run 'codex config edit' or open the config path", + "Paste the TOML", + "Save and restart Codex" + }; + } + + /// CLI-based configurator (Claude Code). + public abstract class ClaudeCliMcpConfigurator : McpClientConfiguratorBase + { + public ClaudeCliMcpConfigurator(McpClient client) : base(client) { } + + public override bool SupportsAutoConfigure => true; + public override string GetConfigureActionLabel() => client.status == McpStatus.Configured ? "Unregister" : "Register"; + + public override string GetConfigPath() => "Managed via Claude CLI"; + + /// + /// Checks the Claude CLI registration status. + /// MUST be called from the main Unity thread due to EditorPrefs and Application.dataPath access. + /// + public override McpStatus CheckStatus(bool attemptAutoRewrite = true) + { + // Capture main-thread-only values before delegating to thread-safe method + string projectDir = Path.GetDirectoryName(Application.dataPath); + bool useHttpTransport = EditorConfigurationCache.Instance.UseHttpTransport; + // Resolve claudePath on the main thread (EditorPrefs access) + string claudePath = MCPServiceLocator.Paths.GetClaudeCliPath(); + return CheckStatusWithProjectDir(projectDir, useHttpTransport, claudePath, attemptAutoRewrite); + } + + /// + /// Internal thread-safe version of CheckStatus. + /// Can be called from background threads because all main-thread-only values are passed as parameters. + /// projectDir, useHttpTransport, and claudePath are REQUIRED (non-nullable) to enforce thread safety at compile time. + /// NOTE: attemptAutoRewrite is NOT fully thread-safe because Configure() requires the main thread. + /// When called from a background thread, pass attemptAutoRewrite=false and handle re-registration + /// on the main thread based on the returned status. + /// + internal McpStatus CheckStatusWithProjectDir(string projectDir, bool useHttpTransport, string claudePath, bool attemptAutoRewrite = false) + { + try + { + if (string.IsNullOrEmpty(claudePath)) + { + client.SetStatus(McpStatus.NotConfigured, "Claude CLI not found"); + client.configuredTransport = Models.ConfiguredTransport.Unknown; + return client.status; + } + + // projectDir is required - no fallback to Application.dataPath + if (string.IsNullOrEmpty(projectDir)) + { + throw new ArgumentNullException(nameof(projectDir), "Project directory must be provided for thread-safe execution"); + } + + string pathPrepend = null; + if (Application.platform == RuntimePlatform.OSXEditor) + { + pathPrepend = "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin"; + } + else if (Application.platform == RuntimePlatform.LinuxEditor) + { + pathPrepend = "/usr/local/bin:/usr/bin:/bin"; + } + + try + { + string claudeDir = Path.GetDirectoryName(claudePath); + if (!string.IsNullOrEmpty(claudeDir)) + { + pathPrepend = string.IsNullOrEmpty(pathPrepend) + ? claudeDir + : $"{claudeDir}:{pathPrepend}"; + } + } + catch { } + + // Check if UnityMCP exists (handles both "UnityMCP" and legacy "unityMCP") + if (ExecPath.TryRun(claudePath, "mcp list", projectDir, out var listStdout, out var listStderr, 10000, pathPrepend)) + { + if (!string.IsNullOrEmpty(listStdout) && listStdout.IndexOf("UnityMCP", StringComparison.OrdinalIgnoreCase) >= 0) + { + // UnityMCP is registered - now verify transport mode matches + // useHttpTransport parameter is required (non-nullable) to ensure thread safety + bool currentUseHttp = useHttpTransport; + + // Get detailed info about the registration to check transport type + // Try both "UnityMCP" and "unityMCP" (legacy naming) + string getStdout = null, getStderr = null; + bool gotInfo = ExecPath.TryRun(claudePath, "mcp get UnityMCP", projectDir, out getStdout, out getStderr, 7000, pathPrepend) + || ExecPath.TryRun(claudePath, "mcp get unityMCP", projectDir, out getStdout, out getStderr, 7000, pathPrepend); + if (gotInfo) + { + // Parse the output to determine registered transport mode + // The CLI output format contains "Type: http" or "Type: stdio" + bool registeredWithHttp = getStdout.Contains("Type: http", StringComparison.OrdinalIgnoreCase); + bool registeredWithStdio = getStdout.Contains("Type: stdio", StringComparison.OrdinalIgnoreCase); + + // Set the configured transport based on what we detected + // For HTTP, we can't distinguish local/remote from CLI output alone, + // so infer from the current scope setting when HTTP is detected. + if (registeredWithHttp) + { + client.configuredTransport = HttpEndpointUtility.IsRemoteScope() + ? Models.ConfiguredTransport.HttpRemote + : Models.ConfiguredTransport.Http; + } + else if (registeredWithStdio) + { + client.configuredTransport = Models.ConfiguredTransport.Stdio; + } + else + { + client.configuredTransport = Models.ConfiguredTransport.Unknown; + } + + // Check for transport mismatch (3-way: Stdio, Http, HttpRemote) + bool hasTransportMismatch = (currentUseHttp && registeredWithStdio) || (!currentUseHttp && registeredWithHttp); + + // For stdio transport, also check package version + bool hasVersionMismatch = false; + string configuredPackageSource = null; + string expectedPackageSource = null; + if (registeredWithStdio) + { + expectedPackageSource = AssetPathUtility.GetMcpServerPackageSource(); + configuredPackageSource = ExtractPackageSourceFromCliOutput(getStdout); + hasVersionMismatch = !string.IsNullOrEmpty(configuredPackageSource) && + !string.Equals(configuredPackageSource, expectedPackageSource, StringComparison.OrdinalIgnoreCase); + } + + // If there's any mismatch and auto-rewrite is enabled, re-register + if (hasTransportMismatch || hasVersionMismatch) + { + // Configure() requires main thread (accesses EditorPrefs, Application.dataPath) + // Only attempt auto-rewrite if we're on the main thread + bool isMainThread = System.Threading.Thread.CurrentThread.ManagedThreadId == 1; + if (attemptAutoRewrite && isMainThread) + { + string reason = hasTransportMismatch + ? $"Transport mismatch (registered: {(registeredWithHttp ? "HTTP" : "stdio")}, expected: {(currentUseHttp ? "HTTP" : "stdio")})" + : $"Package version mismatch (registered: {configuredPackageSource}, expected: {expectedPackageSource})"; + McpLog.Info($"{reason}. Re-registering..."); + try + { + // Force re-register by ensuring status is not Configured (which would toggle to Unregister) + client.SetStatus(McpStatus.IncorrectPath); + Configure(); + return client.status; + } + catch (Exception ex) + { + McpLog.Warn($"Auto-reregister failed: {ex.Message}"); + client.SetStatus(McpStatus.IncorrectPath, $"Configuration mismatch. Click Configure to re-register."); + return client.status; + } + } + else + { + if (hasTransportMismatch) + { + string errorMsg = $"Transport mismatch: Claude Code is registered with {(registeredWithHttp ? "HTTP" : "stdio")} but current setting is {(currentUseHttp ? "HTTP" : "stdio")}. Click Configure to re-register."; + client.SetStatus(McpStatus.Error, errorMsg); + McpLog.Warn(errorMsg); + } + else + { + client.SetStatus(McpStatus.IncorrectPath, $"Package version mismatch: registered with '{configuredPackageSource}' but current version is '{expectedPackageSource}'."); + } + return client.status; + } + } + } + + client.SetStatus(McpStatus.Configured); + return client.status; + } + } + + client.SetStatus(McpStatus.NotConfigured); + client.configuredTransport = Models.ConfiguredTransport.Unknown; + } + catch (Exception ex) + { + client.SetStatus(McpStatus.Error, ex.Message); + client.configuredTransport = Models.ConfiguredTransport.Unknown; + } + + return client.status; + } + + public override void Configure() + { + if (client.status == McpStatus.Configured) + { + Unregister(); + } + else + { + Register(); + } + } + + /// + /// Thread-safe version of Configure that uses pre-captured main-thread values. + /// All parameters must be captured on the main thread before calling this method. + /// + public void ConfigureWithCapturedValues( + string projectDir, string claudePath, string pathPrepend, + bool useHttpTransport, string httpUrl, + string uvxPath, string gitUrl, string packageName, bool shouldForceRefresh, + string apiKey, + Models.ConfiguredTransport serverTransport) + { + if (client.status == McpStatus.Configured) + { + UnregisterWithCapturedValues(projectDir, claudePath, pathPrepend); + } + else + { + RegisterWithCapturedValues(projectDir, claudePath, pathPrepend, + useHttpTransport, httpUrl, uvxPath, gitUrl, packageName, shouldForceRefresh, + apiKey, serverTransport); + } + } + + /// + /// Thread-safe registration using pre-captured values. + /// + private void RegisterWithCapturedValues( + string projectDir, string claudePath, string pathPrepend, + bool useHttpTransport, string httpUrl, + string uvxPath, string gitUrl, string packageName, bool shouldForceRefresh, + string apiKey, + Models.ConfiguredTransport serverTransport) + { + if (string.IsNullOrEmpty(claudePath)) + { + throw new InvalidOperationException("Claude CLI not found. Please install Claude Code first."); + } + + string args; + if (useHttpTransport) + { + // Only include API key header for remote-hosted mode + if (serverTransport == Models.ConfiguredTransport.HttpRemote && !string.IsNullOrEmpty(apiKey)) + { + string safeKey = SanitizeShellHeaderValue(apiKey); + args = $"mcp add --transport http UnityMCP {httpUrl} --header \"{AuthConstants.ApiKeyHeader}: {safeKey}\""; + } + else + { + args = $"mcp add --transport http UnityMCP {httpUrl}"; + } + } + else + { + // Note: --reinstall is not supported by uvx, use --no-cache --refresh instead + string devFlags = shouldForceRefresh ? "--no-cache --refresh " : string.Empty; + args = $"mcp add --transport stdio UnityMCP -- \"{uvxPath}\" {devFlags}--from \"{gitUrl}\" {packageName}"; + } + + // Remove any existing registrations - handle both "UnityMCP" and "unityMCP" (legacy) + McpLog.Info("Removing any existing UnityMCP registrations before adding..."); + ExecPath.TryRun(claudePath, "mcp remove UnityMCP", projectDir, out _, out _, 7000, pathPrepend); + ExecPath.TryRun(claudePath, "mcp remove unityMCP", projectDir, out _, out _, 7000, pathPrepend); + + // Now add the registration + if (!ExecPath.TryRun(claudePath, args, projectDir, out var stdout, out var stderr, 15000, pathPrepend)) + { + throw new InvalidOperationException($"Failed to register with Claude Code:\n{stderr}\n{stdout}"); + } + + McpLog.Info($"Successfully registered with Claude Code using {(useHttpTransport ? "HTTP" : "stdio")} transport."); + client.SetStatus(McpStatus.Configured); + client.configuredTransport = serverTransport; + } + + /// + /// Thread-safe unregistration using pre-captured values. + /// + private void UnregisterWithCapturedValues(string projectDir, string claudePath, string pathPrepend) + { + if (string.IsNullOrEmpty(claudePath)) + { + throw new InvalidOperationException("Claude CLI not found. Please install Claude Code first."); + } + + // Remove both "UnityMCP" and "unityMCP" (legacy naming) + McpLog.Info("Removing all UnityMCP registrations..."); + ExecPath.TryRun(claudePath, "mcp remove UnityMCP", projectDir, out _, out _, 7000, pathPrepend); + ExecPath.TryRun(claudePath, "mcp remove unityMCP", projectDir, out _, out _, 7000, pathPrepend); + + McpLog.Info("MCP server successfully unregistered from Claude Code."); + client.SetStatus(McpStatus.NotConfigured); + client.configuredTransport = Models.ConfiguredTransport.Unknown; + } + + private void Register() + { + var pathService = MCPServiceLocator.Paths; + string claudePath = pathService.GetClaudeCliPath(); + if (string.IsNullOrEmpty(claudePath)) + { + throw new InvalidOperationException("Claude CLI not found. Please install Claude Code first."); + } + + bool useHttpTransport = EditorConfigurationCache.Instance.UseHttpTransport; + + string args; + if (useHttpTransport) + { + string httpUrl = HttpEndpointUtility.GetMcpRpcUrl(); + // Only include API key header for remote-hosted mode + if (HttpEndpointUtility.IsRemoteScope()) + { + string apiKey = EditorPrefs.GetString(EditorPrefKeys.ApiKey, string.Empty); + if (!string.IsNullOrEmpty(apiKey)) + { + string safeKey = SanitizeShellHeaderValue(apiKey); + args = $"mcp add --transport http UnityMCP {httpUrl} --header \"{AuthConstants.ApiKeyHeader}: {safeKey}\""; + } + else + { + args = $"mcp add --transport http UnityMCP {httpUrl}"; + } + } + else + { + args = $"mcp add --transport http UnityMCP {httpUrl}"; + } + } + else + { + var (uvxPath, gitUrl, packageName) = AssetPathUtility.GetUvxCommandParts(); + // Use central helper that checks both DevModeForceServerRefresh AND local path detection. + // Note: --reinstall is not supported by uvx, use --no-cache --refresh instead + string devFlags = AssetPathUtility.ShouldForceUvxRefresh() ? "--no-cache --refresh " : string.Empty; + args = $"mcp add --transport stdio UnityMCP -- \"{uvxPath}\" {devFlags}--from \"{gitUrl}\" {packageName}"; + } + + string projectDir = Path.GetDirectoryName(Application.dataPath); + + string pathPrepend = null; + if (Application.platform == RuntimePlatform.OSXEditor) + { + pathPrepend = "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin"; + } + else if (Application.platform == RuntimePlatform.LinuxEditor) + { + pathPrepend = "/usr/local/bin:/usr/bin:/bin"; + } + + try + { + string claudeDir = Path.GetDirectoryName(claudePath); + if (!string.IsNullOrEmpty(claudeDir)) + { + pathPrepend = string.IsNullOrEmpty(pathPrepend) + ? claudeDir + : $"{claudeDir}:{pathPrepend}"; + } + } + catch { } + + // Remove any existing registrations - handle both "UnityMCP" and "unityMCP" (legacy) + McpLog.Info("Removing any existing UnityMCP registrations before adding..."); + ExecPath.TryRun(claudePath, "mcp remove UnityMCP", projectDir, out _, out _, 7000, pathPrepend); + ExecPath.TryRun(claudePath, "mcp remove unityMCP", projectDir, out _, out _, 7000, pathPrepend); + + // Now add the registration with the current transport mode + if (!ExecPath.TryRun(claudePath, args, projectDir, out var stdout, out var stderr, 15000, pathPrepend)) + { + throw new InvalidOperationException($"Failed to register with Claude Code:\n{stderr}\n{stdout}"); + } + + McpLog.Info($"Successfully registered with Claude Code using {(useHttpTransport ? "HTTP" : "stdio")} transport."); + + // Set status to Configured immediately after successful registration + // The UI will trigger an async verification check separately to avoid blocking + client.SetStatus(McpStatus.Configured); + client.configuredTransport = HttpEndpointUtility.GetCurrentServerTransport(); + } + + private void Unregister() + { + var pathService = MCPServiceLocator.Paths; + string claudePath = pathService.GetClaudeCliPath(); + + if (string.IsNullOrEmpty(claudePath)) + { + throw new InvalidOperationException("Claude CLI not found. Please install Claude Code first."); + } + + string projectDir = Path.GetDirectoryName(Application.dataPath); + string pathPrepend = null; + if (Application.platform == RuntimePlatform.OSXEditor) + { + pathPrepend = "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin"; + } + else if (Application.platform == RuntimePlatform.LinuxEditor) + { + pathPrepend = "/usr/local/bin:/usr/bin:/bin"; + } + + // Remove both "UnityMCP" and "unityMCP" (legacy naming) + McpLog.Info("Removing all UnityMCP registrations..."); + ExecPath.TryRun(claudePath, "mcp remove UnityMCP", projectDir, out _, out _, 7000, pathPrepend); + ExecPath.TryRun(claudePath, "mcp remove unityMCP", projectDir, out _, out _, 7000, pathPrepend); + + McpLog.Info("MCP server successfully unregistered from Claude Code."); + client.SetStatus(McpStatus.NotConfigured); + client.configuredTransport = Models.ConfiguredTransport.Unknown; + } + + public override string GetManualSnippet() + { + string uvxPath = MCPServiceLocator.Paths.GetUvxPath(); + bool useHttpTransport = EditorConfigurationCache.Instance.UseHttpTransport; + + if (useHttpTransport) + { + string httpUrl = HttpEndpointUtility.GetMcpRpcUrl(); + // Only include API key header for remote-hosted mode + string headerArg = ""; + if (HttpEndpointUtility.IsRemoteScope()) + { + string apiKey = EditorPrefs.GetString(EditorPrefKeys.ApiKey, string.Empty); + headerArg = !string.IsNullOrEmpty(apiKey) ? $" --header \"{AuthConstants.ApiKeyHeader}: {SanitizeShellHeaderValue(apiKey)}\"" : ""; + } + return "# Register the MCP server with Claude Code:\n" + + $"claude mcp add --transport http UnityMCP {httpUrl}{headerArg}\n\n" + + "# Unregister the MCP server:\n" + + "claude mcp remove UnityMCP\n\n" + + "# List registered servers:\n" + + "claude mcp list"; + } + + if (string.IsNullOrEmpty(uvxPath)) + { + return "# Error: Configuration not available - check paths in Advanced Settings"; + } + + string packageSource = AssetPathUtility.GetMcpServerPackageSource(); + // Use central helper that checks both DevModeForceServerRefresh AND local path detection. + // Note: --reinstall is not supported by uvx, use --no-cache --refresh instead + string devFlags = AssetPathUtility.ShouldForceUvxRefresh() ? "--no-cache --refresh " : string.Empty; + + return "# Register the MCP server with Claude Code:\n" + + $"claude mcp add --transport stdio UnityMCP -- \"{uvxPath}\" {devFlags}--from \"{packageSource}\" mcp-for-unity\n\n" + + "# Unregister the MCP server:\n" + + "claude mcp remove UnityMCP\n\n" + + "# List registered servers:\n" + + "claude mcp list"; + } + + public override IList GetInstallationSteps() => new List + { + "Ensure Claude CLI is installed", + "Use Register to add UnityMCP (or run claude mcp add UnityMCP)", + "Restart Claude Code" + }; + + /// + /// Sanitizes a value for safe inclusion inside a double-quoted shell argument. + /// Escapes characters that are special within double quotes (", \, `, $, !) + /// to prevent shell injection or argument splitting. + /// + private static string SanitizeShellHeaderValue(string value) + { + if (string.IsNullOrEmpty(value)) + return value; + + var sb = new System.Text.StringBuilder(value.Length); + foreach (char c in value) + { + switch (c) + { + case '"': + case '\\': + case '`': + case '$': + case '!': + sb.Append('\\'); + sb.Append(c); + break; + default: + sb.Append(c); + break; + } + } + return sb.ToString(); + } + + /// + /// Extracts the package source (--from argument value) from claude mcp get output. + /// The output format includes args like: --from "mcpforunityserver==9.0.1" + /// + private static string ExtractPackageSourceFromCliOutput(string cliOutput) + { + if (string.IsNullOrEmpty(cliOutput)) + return null; + + // Look for --from followed by the package source + // The CLI output may have it quoted or unquoted + int fromIndex = cliOutput.IndexOf("--from", StringComparison.OrdinalIgnoreCase); + if (fromIndex < 0) + return null; + + // Move past "--from" and any whitespace + int startIndex = fromIndex + 6; + while (startIndex < cliOutput.Length && char.IsWhiteSpace(cliOutput[startIndex])) + startIndex++; + + if (startIndex >= cliOutput.Length) + return null; + + // Check if value is quoted + char quoteChar = cliOutput[startIndex]; + if (quoteChar == '"' || quoteChar == '\'') + { + startIndex++; + int endIndex = cliOutput.IndexOf(quoteChar, startIndex); + if (endIndex > startIndex) + return cliOutput.Substring(startIndex, endIndex - startIndex); + } + else + { + // Unquoted - read until whitespace or end of line + int endIndex = startIndex; + while (endIndex < cliOutput.Length && !char.IsWhiteSpace(cliOutput[endIndex])) + endIndex++; + + if (endIndex > startIndex) + return cliOutput.Substring(startIndex, endIndex - startIndex); + } + + return null; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Clients/McpClientConfiguratorBase.cs.meta b/Packages/MCPForUnity/Editor/Clients/McpClientConfiguratorBase.cs.meta new file mode 100644 index 00000000..17709d19 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/McpClientConfiguratorBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8d408fd7733cb4a1eb80f785307db2ff +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Clients/McpClientRegistry.cs b/Packages/MCPForUnity/Editor/Clients/McpClientRegistry.cs new file mode 100644 index 00000000..57e4dc1c --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/McpClientRegistry.cs @@ -0,0 +1,60 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using MCPForUnity.Editor.Helpers; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.Clients +{ + /// + /// Central registry that auto-discovers configurators via TypeCache. + /// + public static class McpClientRegistry + { + private static List cached; + + public static IReadOnlyList All + { + get + { + if (cached == null) + { + cached = BuildRegistry(); + } + return cached; + } + } + + private static List BuildRegistry() + { + var configurators = new List(); + + foreach (var type in TypeCache.GetTypesDerivedFrom()) + { + if (type.IsAbstract || !type.IsClass || !type.IsPublic) + continue; + + // Require a public parameterless constructor + if (type.GetConstructor(Type.EmptyTypes) == null) + continue; + + try + { + if (Activator.CreateInstance(type) is IMcpClientConfigurator instance) + { + configurators.Add(instance); + } + } + catch (Exception ex) + { + McpLog.Warn($"UnityMCP: Failed to instantiate configurator {type.Name}: {ex.Message}"); + } + } + + // Alphabetical order by display name + configurators = configurators.OrderBy(c => c.DisplayName, StringComparer.OrdinalIgnoreCase).ToList(); + return configurators; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Clients/McpClientRegistry.cs.meta b/Packages/MCPForUnity/Editor/Clients/McpClientRegistry.cs.meta new file mode 100644 index 00000000..2e0400b5 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Clients/McpClientRegistry.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4ce08555f995e4e848a826c63f18cb35 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Constants.meta b/Packages/MCPForUnity/Editor/Constants.meta new file mode 100644 index 00000000..7c23235a --- /dev/null +++ b/Packages/MCPForUnity/Editor/Constants.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f7e009cbf3e74f6c987331c2b438ec59 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Constants/AuthConstants.cs b/Packages/MCPForUnity/Editor/Constants/AuthConstants.cs new file mode 100644 index 00000000..76579e64 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Constants/AuthConstants.cs @@ -0,0 +1,10 @@ +namespace MCPForUnity.Editor.Constants +{ + /// + /// Protocol-level constants for API key authentication. + /// + internal static class AuthConstants + { + internal const string ApiKeyHeader = "X-API-Key"; + } +} diff --git a/Packages/MCPForUnity/Editor/Constants/AuthConstants.cs.meta b/Packages/MCPForUnity/Editor/Constants/AuthConstants.cs.meta new file mode 100644 index 00000000..55af6d27 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Constants/AuthConstants.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 96844bc39e9a94cf18b18f8127f3854f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Constants/EditorPrefKeys.cs b/Packages/MCPForUnity/Editor/Constants/EditorPrefKeys.cs new file mode 100644 index 00000000..488bf39d --- /dev/null +++ b/Packages/MCPForUnity/Editor/Constants/EditorPrefKeys.cs @@ -0,0 +1,66 @@ +namespace MCPForUnity.Editor.Constants +{ + /// + /// Centralized list of EditorPrefs keys used by the MCP for Unity package. + /// Keeping them in one place avoids typos and simplifies migrations. + /// + internal static class EditorPrefKeys + { + internal const string UseHttpTransport = "MCPForUnity.UseHttpTransport"; + internal const string HttpTransportScope = "MCPForUnity.HttpTransportScope"; // "local" | "remote" + internal const string LastLocalHttpServerPid = "MCPForUnity.LocalHttpServer.LastPid"; + internal const string LastLocalHttpServerPort = "MCPForUnity.LocalHttpServer.LastPort"; + internal const string LastLocalHttpServerStartedUtc = "MCPForUnity.LocalHttpServer.LastStartedUtc"; + internal const string LastLocalHttpServerPidArgsHash = "MCPForUnity.LocalHttpServer.LastPidArgsHash"; + internal const string LastLocalHttpServerPidFilePath = "MCPForUnity.LocalHttpServer.LastPidFilePath"; + internal const string LastLocalHttpServerInstanceToken = "MCPForUnity.LocalHttpServer.LastInstanceToken"; + internal const string DebugLogs = "MCPForUnity.DebugLogs"; + internal const string ValidationLevel = "MCPForUnity.ValidationLevel"; + internal const string UnitySocketPort = "MCPForUnity.UnitySocketPort"; + internal const string ResumeHttpAfterReload = "MCPForUnity.ResumeHttpAfterReload"; + internal const string ResumeStdioAfterReload = "MCPForUnity.ResumeStdioAfterReload"; + + internal const string UvxPathOverride = "MCPForUnity.UvxPath"; + internal const string ClaudeCliPathOverride = "MCPForUnity.ClaudeCliPath"; + + internal const string HttpBaseUrl = "MCPForUnity.HttpUrl"; + internal const string HttpRemoteBaseUrl = "MCPForUnity.HttpRemoteUrl"; + internal const string SessionId = "MCPForUnity.SessionId"; + internal const string WebSocketUrlOverride = "MCPForUnity.WebSocketUrl"; + internal const string GitUrlOverride = "MCPForUnity.GitUrlOverride"; + internal const string DevModeForceServerRefresh = "MCPForUnity.DevModeForceServerRefresh"; + internal const string UseBetaServer = "MCPForUnity.UseBetaServer"; + internal const string ProjectScopedToolsLocalHttp = "MCPForUnity.ProjectScopedTools.LocalHttp"; + + internal const string PackageDeploySourcePath = "MCPForUnity.PackageDeploy.SourcePath"; + internal const string PackageDeployLastBackupPath = "MCPForUnity.PackageDeploy.LastBackupPath"; + internal const string PackageDeployLastTargetPath = "MCPForUnity.PackageDeploy.LastTargetPath"; + internal const string PackageDeployLastSourcePath = "MCPForUnity.PackageDeploy.LastSourcePath"; + + internal const string ServerSrc = "MCPForUnity.ServerSrc"; + internal const string UseEmbeddedServer = "MCPForUnity.UseEmbeddedServer"; + internal const string LockCursorConfig = "MCPForUnity.LockCursorConfig"; + internal const string AutoRegisterEnabled = "MCPForUnity.AutoRegisterEnabled"; + internal const string ToolEnabledPrefix = "MCPForUnity.ToolEnabled."; + internal const string ToolFoldoutStatePrefix = "MCPForUnity.ToolFoldout."; + internal const string ResourceEnabledPrefix = "MCPForUnity.ResourceEnabled."; + internal const string ResourceFoldoutStatePrefix = "MCPForUnity.ResourceFoldout."; + internal const string EditorWindowActivePanel = "MCPForUnity.EditorWindow.ActivePanel"; + + internal const string SetupCompleted = "MCPForUnity.SetupCompleted"; + internal const string SetupDismissed = "MCPForUnity.SetupDismissed"; + + internal const string CustomToolRegistrationEnabled = "MCPForUnity.CustomToolRegistrationEnabled"; + + internal const string LastUpdateCheck = "MCPForUnity.LastUpdateCheck"; + internal const string LatestKnownVersion = "MCPForUnity.LatestKnownVersion"; + internal const string LastAssetStoreUpdateCheck = "MCPForUnity.LastAssetStoreUpdateCheck"; + internal const string LatestKnownAssetStoreVersion = "MCPForUnity.LatestKnownAssetStoreVersion"; + internal const string LastStdIoUpgradeVersion = "MCPForUnity.LastStdIoUpgradeVersion"; + + internal const string TelemetryDisabled = "MCPForUnity.TelemetryDisabled"; + internal const string CustomerUuid = "MCPForUnity.CustomerUUID"; + + internal const string ApiKey = "MCPForUnity.ApiKey"; + } +} diff --git a/Packages/MCPForUnity/Editor/Constants/EditorPrefKeys.cs.meta b/Packages/MCPForUnity/Editor/Constants/EditorPrefKeys.cs.meta new file mode 100644 index 00000000..9c923daa --- /dev/null +++ b/Packages/MCPForUnity/Editor/Constants/EditorPrefKeys.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7317786cfb9304b0db20ca73a774b9fa +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Constants/HealthStatus.cs b/Packages/MCPForUnity/Editor/Constants/HealthStatus.cs new file mode 100644 index 00000000..7506caaa --- /dev/null +++ b/Packages/MCPForUnity/Editor/Constants/HealthStatus.cs @@ -0,0 +1,14 @@ +namespace MCPForUnity.Editor.Constants +{ + /// + /// Constants for health check status values. + /// Used for coordinating health state between Connection and Advanced sections. + /// + public static class HealthStatus + { + public const string Unknown = "Unknown"; + public const string Healthy = "Healthy"; + public const string PingFailed = "Ping Failed"; + public const string Unhealthy = "Unhealthy"; + } +} diff --git a/Packages/MCPForUnity/Editor/Constants/HealthStatus.cs.meta b/Packages/MCPForUnity/Editor/Constants/HealthStatus.cs.meta new file mode 100644 index 00000000..a08698ca --- /dev/null +++ b/Packages/MCPForUnity/Editor/Constants/HealthStatus.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c15ed2426f43860479f1b8a99a343d16 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Dependencies.meta b/Packages/MCPForUnity/Editor/Dependencies.meta new file mode 100644 index 00000000..77685d17 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Dependencies.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 221a4d6e595be6897a5b17b77aedd4d0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Dependencies/DependencyManager.cs b/Packages/MCPForUnity/Editor/Dependencies/DependencyManager.cs new file mode 100644 index 00000000..c3802c47 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Dependencies/DependencyManager.cs @@ -0,0 +1,143 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.InteropServices; +using MCPForUnity.Editor.Dependencies.Models; +using MCPForUnity.Editor.Dependencies.PlatformDetectors; +using MCPForUnity.Editor.Helpers; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.Dependencies +{ + /// + /// Main orchestrator for dependency validation and management + /// + public static class DependencyManager + { + private static readonly List _detectors = new List + { + new WindowsPlatformDetector(), + new MacOSPlatformDetector(), + new LinuxPlatformDetector() + }; + + private static IPlatformDetector _currentDetector; + + /// + /// Get the platform detector for the current operating system + /// + public static IPlatformDetector GetCurrentPlatformDetector() + { + if (_currentDetector == null) + { + _currentDetector = _detectors.FirstOrDefault(d => d.CanDetect); + if (_currentDetector == null) + { + throw new PlatformNotSupportedException($"No detector available for current platform: {RuntimeInformation.OSDescription}"); + } + } + return _currentDetector; + } + + /// + /// Perform a comprehensive dependency check + /// + public static DependencyCheckResult CheckAllDependencies() + { + var result = new DependencyCheckResult(); + + try + { + var detector = GetCurrentPlatformDetector(); + McpLog.Info($"Checking dependencies on {detector.PlatformName}...", always: false); + + // Check Python + var pythonStatus = detector.DetectPython(); + result.Dependencies.Add(pythonStatus); + + // Check uv + var uvStatus = detector.DetectUv(); + result.Dependencies.Add(uvStatus); + + // Generate summary and recommendations + result.GenerateSummary(); + GenerateRecommendations(result, detector); + + McpLog.Info($"Dependency check completed. System ready: {result.IsSystemReady}", always: false); + } + catch (Exception ex) + { + McpLog.Error($"Error during dependency check: {ex.Message}"); + result.Summary = $"Dependency check failed: {ex.Message}"; + result.IsSystemReady = false; + } + + return result; + } + + /// + /// Get installation recommendations for the current platform + /// + public static string GetInstallationRecommendations() + { + try + { + var detector = GetCurrentPlatformDetector(); + return detector.GetInstallationRecommendations(); + } + catch (Exception ex) + { + return $"Error getting installation recommendations: {ex.Message}"; + } + } + + /// + /// Get platform-specific installation URLs + /// + public static (string pythonUrl, string uvUrl) GetInstallationUrls() + { + try + { + var detector = GetCurrentPlatformDetector(); + return (detector.GetPythonInstallUrl(), detector.GetUvInstallUrl()); + } + catch + { + return ("https://python.org/downloads/", "https://docs.astral.sh/uv/getting-started/installation/"); + } + } + + private static void GenerateRecommendations(DependencyCheckResult result, IPlatformDetector detector) + { + var missing = result.GetMissingDependencies(); + + if (missing.Count == 0) + { + result.RecommendedActions.Add("All dependencies are available. You can start using MCP for Unity."); + return; + } + + foreach (var dep in missing) + { + if (dep.Name == "Python") + { + result.RecommendedActions.Add($"Install Python 3.10+ from: {detector.GetPythonInstallUrl()}"); + } + else if (dep.Name == "uv Package Manager") + { + result.RecommendedActions.Add($"Install uv package manager from: {detector.GetUvInstallUrl()}"); + } + else if (dep.Name == "MCP Server") + { + result.RecommendedActions.Add("MCP Server will be installed automatically when needed."); + } + } + + if (result.GetMissingRequired().Count > 0) + { + result.RecommendedActions.Add("Use the Setup Window (Window > MCP for Unity > Local Setup Window) for guided installation."); + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Dependencies/DependencyManager.cs.meta b/Packages/MCPForUnity/Editor/Dependencies/DependencyManager.cs.meta new file mode 100644 index 00000000..fc192c2b --- /dev/null +++ b/Packages/MCPForUnity/Editor/Dependencies/DependencyManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4a6d2236d370b4f1db4d0e3d3ce0dcac +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Models.meta b/Packages/MCPForUnity/Editor/Dependencies/Models.meta similarity index 77% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Models.meta rename to Packages/MCPForUnity/Editor/Dependencies/Models.meta index 03daa0ec..1e05b9d1 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Models.meta +++ b/Packages/MCPForUnity/Editor/Dependencies/Models.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: afa9af25bc870b04ebcb8d9f9b33703c +guid: 4c0f2e87395b4c6c9df8c21b6d0fae13 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Packages/MCPForUnity/Editor/Dependencies/Models/DependencyCheckResult.cs b/Packages/MCPForUnity/Editor/Dependencies/Models/DependencyCheckResult.cs new file mode 100644 index 00000000..5dd2edaf --- /dev/null +++ b/Packages/MCPForUnity/Editor/Dependencies/Models/DependencyCheckResult.cs @@ -0,0 +1,96 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace MCPForUnity.Editor.Dependencies.Models +{ + /// + /// Result of a comprehensive dependency check + /// + [Serializable] + public class DependencyCheckResult + { + /// + /// List of all dependency statuses checked + /// + public List Dependencies { get; set; } + + /// + /// Overall system readiness for MCP operations + /// + public bool IsSystemReady { get; set; } + + /// + /// Whether all required dependencies are available + /// + public bool AllRequiredAvailable => Dependencies?.Where(d => d.IsRequired).All(d => d.IsAvailable) ?? false; + + /// + /// Whether any optional dependencies are missing + /// + public bool HasMissingOptional => Dependencies?.Where(d => !d.IsRequired).Any(d => !d.IsAvailable) ?? false; + + /// + /// Summary message about the dependency state + /// + public string Summary { get; set; } + + /// + /// Recommended next steps for the user + /// + public List RecommendedActions { get; set; } + + /// + /// Timestamp when this check was performed + /// + public DateTime CheckedAt { get; set; } + + public DependencyCheckResult() + { + Dependencies = new List(); + RecommendedActions = new List(); + CheckedAt = DateTime.UtcNow; + } + + /// + /// Get dependencies by availability status + /// + public List GetMissingDependencies() + { + return Dependencies?.Where(d => !d.IsAvailable).ToList() ?? new List(); + } + + /// + /// Get missing required dependencies + /// + public List GetMissingRequired() + { + return Dependencies?.Where(d => d.IsRequired && !d.IsAvailable).ToList() ?? new List(); + } + + /// + /// Generate a user-friendly summary of the dependency state + /// + public void GenerateSummary() + { + var missing = GetMissingDependencies(); + var missingRequired = GetMissingRequired(); + + if (missing.Count == 0) + { + Summary = "All dependencies are available and ready."; + IsSystemReady = true; + } + else if (missingRequired.Count == 0) + { + Summary = $"System is ready. {missing.Count} optional dependencies are missing."; + IsSystemReady = true; + } + else + { + Summary = $"System is not ready. {missingRequired.Count} required dependencies are missing."; + IsSystemReady = false; + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Dependencies/Models/DependencyCheckResult.cs.meta b/Packages/MCPForUnity/Editor/Dependencies/Models/DependencyCheckResult.cs.meta new file mode 100644 index 00000000..4d70a111 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Dependencies/Models/DependencyCheckResult.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f6df82faa423f4e9ebb13a3dcee8ba19 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Dependencies/Models/DependencyStatus.cs b/Packages/MCPForUnity/Editor/Dependencies/Models/DependencyStatus.cs new file mode 100644 index 00000000..e755ecad --- /dev/null +++ b/Packages/MCPForUnity/Editor/Dependencies/Models/DependencyStatus.cs @@ -0,0 +1,65 @@ +using System; + +namespace MCPForUnity.Editor.Dependencies.Models +{ + /// + /// Represents the status of a dependency check + /// + [Serializable] + public class DependencyStatus + { + /// + /// Name of the dependency being checked + /// + public string Name { get; set; } + + /// + /// Whether the dependency is available and functional + /// + public bool IsAvailable { get; set; } + + /// + /// Version information if available + /// + public string Version { get; set; } + + /// + /// Path to the dependency executable/installation + /// + public string Path { get; set; } + + /// + /// Additional details about the dependency status + /// + public string Details { get; set; } + + /// + /// Error message if dependency check failed + /// + public string ErrorMessage { get; set; } + + /// + /// Whether this dependency is required for basic functionality + /// + public bool IsRequired { get; set; } + + /// + /// Suggested installation method or URL + /// + public string InstallationHint { get; set; } + + public DependencyStatus(string name, bool isRequired = true) + { + Name = name; + IsRequired = isRequired; + IsAvailable = false; + } + + public override string ToString() + { + var status = IsAvailable ? "✓" : "✗"; + var version = !string.IsNullOrEmpty(Version) ? $" ({Version})" : ""; + return $"{status} {Name}{version}"; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Dependencies/Models/DependencyStatus.cs.meta b/Packages/MCPForUnity/Editor/Dependencies/Models/DependencyStatus.cs.meta new file mode 100644 index 00000000..7e93ff49 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Dependencies/Models/DependencyStatus.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ddeeeca2f876f4083a84417404175199 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors.meta b/Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors.meta new file mode 100644 index 00000000..8c863075 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bdbaced669d14798a4ceeebfbff2b22c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/IPlatformDetector.cs b/Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/IPlatformDetector.cs new file mode 100644 index 00000000..3231105e --- /dev/null +++ b/Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/IPlatformDetector.cs @@ -0,0 +1,45 @@ +using MCPForUnity.Editor.Dependencies.Models; + +namespace MCPForUnity.Editor.Dependencies.PlatformDetectors +{ + /// + /// Interface for platform-specific dependency detection + /// + public interface IPlatformDetector + { + /// + /// Platform name this detector handles + /// + string PlatformName { get; } + + /// + /// Whether this detector can run on the current platform + /// + bool CanDetect { get; } + + /// + /// Detect Python installation on this platform + /// + DependencyStatus DetectPython(); + + /// + /// Detect uv package manager on this platform + /// + DependencyStatus DetectUv(); + + /// + /// Get platform-specific installation recommendations + /// + string GetInstallationRecommendations(); + + /// + /// Get platform-specific Python installation URL + /// + string GetPythonInstallUrl(); + + /// + /// Get platform-specific uv installation URL + /// + string GetUvInstallUrl(); + } +} diff --git a/Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/IPlatformDetector.cs.meta b/Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/IPlatformDetector.cs.meta new file mode 100644 index 00000000..1ec32f33 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/IPlatformDetector.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 67d73d0e8caef4e60942f4419c6b76bf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/LinuxPlatformDetector.cs b/Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/LinuxPlatformDetector.cs new file mode 100644 index 00000000..be9db17f --- /dev/null +++ b/Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/LinuxPlatformDetector.cs @@ -0,0 +1,207 @@ +using System; +using System.Diagnostics; +using System.IO; +using System.Runtime.InteropServices; +using MCPForUnity.Editor.Constants; +using MCPForUnity.Editor.Dependencies.Models; +using MCPForUnity.Editor.Helpers; +using MCPForUnity.Editor.Services; + +namespace MCPForUnity.Editor.Dependencies.PlatformDetectors +{ + /// + /// Linux-specific dependency detection + /// + public class LinuxPlatformDetector : PlatformDetectorBase + { + public override string PlatformName => "Linux"; + + public override bool CanDetect => RuntimeInformation.IsOSPlatform(OSPlatform.Linux); + + public override DependencyStatus DetectPython() + { + var status = new DependencyStatus("Python", isRequired: true) + { + InstallationHint = GetPythonInstallUrl() + }; + + try + { + // Try running python directly first + if (TryValidatePython("python3", out string version, out string fullPath) || + TryValidatePython("python", out version, out fullPath)) + { + status.IsAvailable = true; + status.Version = version; + status.Path = fullPath; + status.Details = $"Found Python {version} in PATH"; + return status; + } + + // Fallback: try 'which' command + if (TryFindInPath("python3", out string pathResult) || + TryFindInPath("python", out pathResult)) + { + if (TryValidatePython(pathResult, out version, out fullPath)) + { + status.IsAvailable = true; + status.Version = version; + status.Path = fullPath; + status.Details = $"Found Python {version} in PATH"; + return status; + } + } + + status.ErrorMessage = "Python not found in PATH"; + status.Details = "Install Python 3.10+ and ensure it's added to PATH."; + } + catch (Exception ex) + { + status.ErrorMessage = $"Error detecting Python: {ex.Message}"; + } + + return status; + } + + public override string GetPythonInstallUrl() + { + return "https://www.python.org/downloads/source/"; + } + + public override string GetUvInstallUrl() + { + return "https://docs.astral.sh/uv/getting-started/installation/#linux"; + } + + public override string GetInstallationRecommendations() + { + return @"Linux Installation Recommendations: + +1. Python: Install via package manager or pyenv + - Ubuntu/Debian: sudo apt install python3 python3-pip + - Fedora/RHEL: sudo dnf install python3 python3-pip + - Arch: sudo pacman -S python python-pip + - Or use pyenv: https://github.com/pyenv/pyenv + +2. uv Package Manager: Install via curl + - Run: curl -LsSf https://astral.sh/uv/install.sh | sh + - Or download from: https://github.com/astral-sh/uv/releases + +3. MCP Server: Will be installed automatically by MCP for Unity + +Note: Make sure ~/.local/bin is in your PATH for user-local installations."; + } + + public override DependencyStatus DetectUv() + { + // First, honor overrides and cross-platform resolution via the base implementation + var status = base.DetectUv(); + if (status.IsAvailable) + { + return status; + } + + // If the user configured an override path but fallback was not used, keep the base result + // (failure typically means the override path is invalid and no system fallback found) + if (MCPServiceLocator.Paths.HasUvxPathOverride && !MCPServiceLocator.Paths.HasUvxPathFallback) + { + return status; + } + + try + { + string augmentedPath = BuildAugmentedPath(); + + // Try uv first, then uvx, using ExecPath.TryRun for proper timeout handling + if (TryValidateUvWithPath("uv", augmentedPath, out string version, out string fullPath) || + TryValidateUvWithPath("uvx", augmentedPath, out version, out fullPath)) + { + status.IsAvailable = true; + status.Version = version; + status.Path = fullPath; + status.Details = $"Found uv {version} in PATH"; + status.ErrorMessage = null; + return status; + } + + status.ErrorMessage = "uv not found in PATH"; + status.Details = "Install uv package manager and ensure it's added to PATH."; + } + catch (Exception ex) + { + status.ErrorMessage = $"Error detecting uv: {ex.Message}"; + } + + return status; + } + + private bool TryValidatePython(string pythonPath, out string version, out string fullPath) + { + version = null; + fullPath = null; + + try + { + string augmentedPath = BuildAugmentedPath(); + + // First, try to resolve the absolute path for better UI/logging display + string commandToRun = pythonPath; + if (TryFindInPath(pythonPath, out string resolvedPath)) + { + commandToRun = resolvedPath; + } + + if (!ExecPath.TryRun(commandToRun, "--version", null, out string stdout, out string stderr, + 5000, augmentedPath)) + return false; + + // Check stdout first, then stderr (some Python distributions output to stderr) + string output = !string.IsNullOrWhiteSpace(stdout) ? stdout.Trim() : stderr.Trim(); + if (output.StartsWith("Python ")) + { + version = output.Substring(7); + fullPath = commandToRun; + + if (TryParseVersion(version, out var major, out var minor)) + { + return major > 3 || (major == 3 && minor >= 10); + } + } + } + catch + { + // Ignore validation errors + } + + return false; + } + + protected string BuildAugmentedPath() + { + var additions = GetPathAdditions(); + if (additions.Length == 0) return null; + + // Only return the additions - ExecPath.TryRun will prepend to existing PATH + return string.Join(Path.PathSeparator, additions); + } + + private string[] GetPathAdditions() + { + var homeDir = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile); + return new[] + { + "/usr/local/bin", + "/usr/bin", + "/bin", + "/snap/bin", + Path.Combine(homeDir, ".local", "bin") + }; + } + + protected override bool TryFindInPath(string executable, out string fullPath) + { + fullPath = ExecPath.FindInPath(executable, BuildAugmentedPath()); + return !string.IsNullOrEmpty(fullPath); + } + } +} diff --git a/Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/LinuxPlatformDetector.cs.meta b/Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/LinuxPlatformDetector.cs.meta new file mode 100644 index 00000000..96e1a43d --- /dev/null +++ b/Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/LinuxPlatformDetector.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b682b492eb80d4ed6834b76f72c9f0f3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/MacOSPlatformDetector.cs b/Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/MacOSPlatformDetector.cs new file mode 100644 index 00000000..b162f11a --- /dev/null +++ b/Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/MacOSPlatformDetector.cs @@ -0,0 +1,205 @@ +using System; +using System.Diagnostics; +using System.IO; +using System.Runtime.InteropServices; +using MCPForUnity.Editor.Constants; +using MCPForUnity.Editor.Dependencies.Models; +using MCPForUnity.Editor.Helpers; +using MCPForUnity.Editor.Services; + +namespace MCPForUnity.Editor.Dependencies.PlatformDetectors +{ + /// + /// macOS-specific dependency detection + /// + public class MacOSPlatformDetector : PlatformDetectorBase + { + public override string PlatformName => "macOS"; + + public override bool CanDetect => RuntimeInformation.IsOSPlatform(OSPlatform.OSX); + + public override DependencyStatus DetectPython() + { + var status = new DependencyStatus("Python", isRequired: true) + { + InstallationHint = GetPythonInstallUrl() + }; + + try + { + // 1. Try 'which' command with augmented PATH (prioritizing Homebrew) + if (TryFindInPath("python3", out string pathResult) || + TryFindInPath("python", out pathResult)) + { + if (TryValidatePython(pathResult, out string version, out string fullPath)) + { + status.IsAvailable = true; + status.Version = version; + status.Path = fullPath; + status.Details = $"Found Python {version} at {fullPath}"; + return status; + } + } + + // 2. Fallback: Try running python directly from PATH + if (TryValidatePython("python3", out string v, out string p) || + TryValidatePython("python", out v, out p)) + { + status.IsAvailable = true; + status.Version = v; + status.Path = p; + status.Details = $"Found Python {v} in PATH"; + return status; + } + + status.ErrorMessage = "Python not found in PATH or standard locations"; + status.Details = "Install Python 3.10+ via Homebrew ('brew install python3') and ensure it's in your PATH."; + } + catch (Exception ex) + { + status.ErrorMessage = $"Error detecting Python: {ex.Message}"; + } + + return status; + } + + public override string GetPythonInstallUrl() + { + return "https://www.python.org/downloads/macos/"; + } + + public override string GetUvInstallUrl() + { + return "https://docs.astral.sh/uv/getting-started/installation/#macos"; + } + + public override string GetInstallationRecommendations() + { + return @"macOS Installation Recommendations: + +1. Python: Install via Homebrew (recommended) or python.org + - Homebrew: brew install python3 + - Direct download: https://python.org/downloads/macos/ + +2. uv Package Manager: Install via curl or Homebrew + - Curl: curl -LsSf https://astral.sh/uv/install.sh | sh + - Homebrew: brew install uv + +3. MCP Server: Will be installed automatically by MCP for Unity Bridge + +Note: If using Homebrew, make sure /opt/homebrew/bin is in your PATH."; + } + + public override DependencyStatus DetectUv() + { + // First, honor overrides and cross-platform resolution via the base implementation + var status = base.DetectUv(); + if (status.IsAvailable) + { + return status; + } + + // If the user configured an override path but fallback was not used, keep the base result + // (failure typically means the override path is invalid and no system fallback found) + if (MCPServiceLocator.Paths.HasUvxPathOverride && !MCPServiceLocator.Paths.HasUvxPathFallback) + { + return status; + } + + try + { + string augmentedPath = BuildAugmentedPath(); + + // Try uv first, then uvx, using ExecPath.TryRun for proper timeout handling + if (TryValidateUvWithPath("uv", augmentedPath, out string version, out string fullPath) || + TryValidateUvWithPath("uvx", augmentedPath, out version, out fullPath)) + { + status.IsAvailable = true; + status.Version = version; + status.Path = fullPath; + status.Details = $"Found uv {version} in PATH"; + status.ErrorMessage = null; + return status; + } + + status.ErrorMessage = "uv not found in PATH"; + status.Details = "Install uv package manager and ensure it's added to PATH."; + } + catch (Exception ex) + { + status.ErrorMessage = $"Error detecting uv: {ex.Message}"; + } + + return status; + } + + private bool TryValidatePython(string pythonPath, out string version, out string fullPath) + { + version = null; + fullPath = null; + + try + { + string augmentedPath = BuildAugmentedPath(); + + // First, try to resolve the absolute path for better UI/logging display + string commandToRun = pythonPath; + if (TryFindInPath(pythonPath, out string resolvedPath)) + { + commandToRun = resolvedPath; + } + + if (!ExecPath.TryRun(commandToRun, "--version", null, out string stdout, out string stderr, + 5000, augmentedPath)) + return false; + + // Check stdout first, then stderr (some Python distributions output to stderr) + string output = !string.IsNullOrWhiteSpace(stdout) ? stdout.Trim() : stderr.Trim(); + if (output.StartsWith("Python ")) + { + version = output.Substring(7); + fullPath = commandToRun; + + if (TryParseVersion(version, out var major, out var minor)) + { + return major > 3 || (major == 3 && minor >= 10); + } + } + } + catch + { + // Ignore validation errors + } + + return false; + } + + protected string BuildAugmentedPath() + { + var additions = GetPathAdditions(); + if (additions.Length == 0) return null; + + // Only return the additions - ExecPath.TryRun will prepend to existing PATH + return string.Join(Path.PathSeparator, additions); + } + + private string[] GetPathAdditions() + { + var homeDir = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile); + return new[] + { + "/opt/homebrew/bin", + "/usr/local/bin", + "/usr/bin", + "/bin", + Path.Combine(homeDir, ".local", "bin") + }; + } + + protected override bool TryFindInPath(string executable, out string fullPath) + { + fullPath = ExecPath.FindInPath(executable, BuildAugmentedPath()); + return !string.IsNullOrEmpty(fullPath); + } + } +} diff --git a/Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/MacOSPlatformDetector.cs.meta b/Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/MacOSPlatformDetector.cs.meta new file mode 100644 index 00000000..57b516ba --- /dev/null +++ b/Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/MacOSPlatformDetector.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c6f602b0a8ca848859197f9a949a7a5d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/PlatformDetectorBase.cs b/Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/PlatformDetectorBase.cs new file mode 100644 index 00000000..c955381d --- /dev/null +++ b/Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/PlatformDetectorBase.cs @@ -0,0 +1,137 @@ +using System; +using MCPForUnity.Editor.Dependencies.Models; +using MCPForUnity.Editor.Helpers; +using MCPForUnity.Editor.Services; + +namespace MCPForUnity.Editor.Dependencies.PlatformDetectors +{ + /// + /// Base class for platform-specific dependency detection + /// + public abstract class PlatformDetectorBase : IPlatformDetector + { + public abstract string PlatformName { get; } + public abstract bool CanDetect { get; } + + public abstract DependencyStatus DetectPython(); + public abstract string GetPythonInstallUrl(); + public abstract string GetUvInstallUrl(); + public abstract string GetInstallationRecommendations(); + + public virtual DependencyStatus DetectUv() + { + var status = new DependencyStatus("uv Package Manager", isRequired: true) + { + InstallationHint = GetUvInstallUrl() + }; + + try + { + // Get uv path from PathResolverService (respects override) + string uvxPath = MCPServiceLocator.Paths.GetUvxPath(); + + // Verify uv executable and get version + if (MCPServiceLocator.Paths.TryValidateUvxExecutable(uvxPath, out string version)) + { + status.IsAvailable = true; + status.Version = version; + status.Path = uvxPath; + + // Check if we used fallback from override to system path + if (MCPServiceLocator.Paths.HasUvxPathFallback) + { + status.Details = $"Found uv {version} (fallback to system path)"; + status.ErrorMessage = "Override path not found, using system path"; + } + else + { + status.Details = MCPServiceLocator.Paths.HasUvxPathOverride + ? $"Found uv {version} (override path)" + : $"Found uv {version} in system path"; + } + return status; + } + + status.ErrorMessage = "uvx not found"; + status.Details = "Install uv package manager or configure path override in Advanced Settings."; + } + catch (Exception ex) + { + status.ErrorMessage = $"Error detecting uvx: {ex.Message}"; + } + + return status; + } + + + protected bool TryParseVersion(string version, out int major, out int minor) + { + major = 0; + minor = 0; + + try + { + var parts = version.Split('.'); + if (parts.Length >= 2) + { + return int.TryParse(parts[0], out major) && int.TryParse(parts[1], out minor); + } + } + catch + { + // Ignore parsing errors + } + + return false; + } + // In PlatformDetectorBase.cs + protected bool TryValidateUvWithPath(string command, string augmentedPath, out string version, out string fullPath) + { + version = null; + fullPath = null; + + try + { + string commandToRun = command; + if (TryFindInPath(command, out string resolvedPath)) + { + commandToRun = resolvedPath; + } + + if (!ExecPath.TryRun(commandToRun, "--version", null, out string stdout, out string stderr, + 5000, augmentedPath)) + return false; + + string output = string.IsNullOrWhiteSpace(stdout) ? stderr.Trim() : stdout.Trim(); + + if (output.StartsWith("uvx ") || output.StartsWith("uv ")) + { + int spaceIndex = output.IndexOf(' '); + if (spaceIndex >= 0) + { + var remainder = output.Substring(spaceIndex + 1).Trim(); + int nextSpace = remainder.IndexOf(' '); + int parenIndex = remainder.IndexOf('('); + int endIndex = Math.Min( + nextSpace >= 0 ? nextSpace : int.MaxValue, + parenIndex >= 0 ? parenIndex : int.MaxValue + ); + version = endIndex < int.MaxValue ? remainder.Substring(0, endIndex).Trim() : remainder; + fullPath = commandToRun; + return true; + } + } + } + catch + { + // Ignore validation errors + } + + return false; + } + + + // Add abstract method for subclasses to implement + protected abstract bool TryFindInPath(string executable, out string fullPath); + } +} diff --git a/Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/PlatformDetectorBase.cs.meta b/Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/PlatformDetectorBase.cs.meta new file mode 100644 index 00000000..4821e757 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/PlatformDetectorBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 44d715aedea2b8b41bf914433bbb2c49 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/WindowsPlatformDetector.cs b/Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/WindowsPlatformDetector.cs new file mode 100644 index 00000000..706e5030 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/WindowsPlatformDetector.cs @@ -0,0 +1,297 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices; +using MCPForUnity.Editor.Constants; +using MCPForUnity.Editor.Dependencies.Models; +using MCPForUnity.Editor.Helpers; +using MCPForUnity.Editor.Services; + +namespace MCPForUnity.Editor.Dependencies.PlatformDetectors +{ + /// + /// Windows-specific dependency detection + /// + public class WindowsPlatformDetector : PlatformDetectorBase + { + public override string PlatformName => "Windows"; + + public override bool CanDetect => RuntimeInformation.IsOSPlatform(OSPlatform.Windows); + + public override DependencyStatus DetectPython() + { + var status = new DependencyStatus("Python", isRequired: true) + { + InstallationHint = GetPythonInstallUrl() + }; + + try + { + // Try running python directly first (works with Windows App Execution Aliases) + if (TryValidatePython("python3.exe", out string version, out string fullPath) || + TryValidatePython("python.exe", out version, out fullPath)) + { + status.IsAvailable = true; + status.Version = version; + status.Path = fullPath; + status.Details = $"Found Python {version} in PATH"; + return status; + } + + // Fallback: try 'where' command + if (TryFindInPath("python3.exe", out string pathResult) || + TryFindInPath("python.exe", out pathResult)) + { + if (TryValidatePython(pathResult, out version, out fullPath)) + { + status.IsAvailable = true; + status.Version = version; + status.Path = fullPath; + status.Details = $"Found Python {version} in PATH"; + return status; + } + } + + // Fallback: try to find python via uv + if (TryFindPythonViaUv(out version, out fullPath)) + { + status.IsAvailable = true; + status.Version = version; + status.Path = fullPath; + status.Details = $"Found Python {version} via uv"; + return status; + } + + status.ErrorMessage = "Python not found in PATH"; + status.Details = "Install Python 3.10+ and ensure it's added to PATH."; + } + catch (Exception ex) + { + status.ErrorMessage = $"Error detecting Python: {ex.Message}"; + } + + return status; + } + + public override string GetPythonInstallUrl() + { + return "https://apps.microsoft.com/store/detail/python-313/9NCVDN91XZQP"; + } + + public override string GetUvInstallUrl() + { + return "https://docs.astral.sh/uv/getting-started/installation/#windows"; + } + + public override string GetInstallationRecommendations() + { + return @"Windows Installation Recommendations: + +1. Python: Install from Microsoft Store or python.org + - Microsoft Store: Search for 'Python 3.10' or higher + - Direct download: https://python.org/downloads/windows/ + +2. uv Package Manager: Install via PowerShell + - Run: powershell -ExecutionPolicy ByPass -c ""irm https://astral.sh/uv/install.ps1 | iex"" + - Or download from: https://github.com/astral-sh/uv/releases + +3. MCP Server: Will be installed automatically by MCP for Unity Bridge"; + } + + public override DependencyStatus DetectUv() + { + // First, honor overrides and cross-platform resolution via the base implementation + var status = base.DetectUv(); + if (status.IsAvailable) + { + return status; + } + + // If the user configured an override path but fallback was not used, keep the base result + // (failure typically means the override path is invalid and no system fallback found) + if (MCPServiceLocator.Paths.HasUvxPathOverride && !MCPServiceLocator.Paths.HasUvxPathFallback) + { + return status; + } + + try + { + string augmentedPath = BuildAugmentedPath(); + + // try to find uv + if (TryValidateUvWithPath("uv.exe", augmentedPath, out string uvVersion, out string uvPath)) + { + status.IsAvailable = true; + status.Version = uvVersion; + status.Path = uvPath; + status.Details = $"Found uv {uvVersion} at {uvPath}"; + return status; + } + + // try to find uvx + if (TryValidateUvWithPath("uvx.exe", augmentedPath, out string uvxVersion, out string uvxPath)) + { + status.IsAvailable = true; + status.Version = uvxVersion; + status.Path = uvxPath; + status.Details = $"Found uvx {uvxVersion} at {uvxPath} (fallback)"; + return status; + } + + status.ErrorMessage = "uv not found in PATH"; + status.Details = "Install uv package manager and ensure it's added to PATH."; + } + catch (Exception ex) + { + status.ErrorMessage = $"Error detecting uv: {ex.Message}"; + } + + return status; + } + + + private bool TryFindPythonViaUv(out string version, out string fullPath) + { + version = null; + fullPath = null; + + try + { + string augmentedPath = BuildAugmentedPath(); + // Try to list installed python versions via uvx + if (!ExecPath.TryRun("uv", "python list", null, out string stdout, out string stderr, 5000, augmentedPath)) + return false; + + var lines = stdout.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); + foreach (var line in lines) + { + if (line.Contains("")) continue; + + var parts = line.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); + if (parts.Length >= 2) + { + string potentialPath = parts[parts.Length - 1]; + if (File.Exists(potentialPath) && + (potentialPath.EndsWith("python.exe") || potentialPath.EndsWith("python3.exe"))) + { + if (TryValidatePython(potentialPath, out version, out fullPath)) + { + return true; + } + } + } + } + } + catch + { + // Ignore errors if uv is not installed or fails + } + + return false; + } + + private bool TryValidatePython(string pythonPath, out string version, out string fullPath) + { + version = null; + fullPath = null; + + try + { + string augmentedPath = BuildAugmentedPath(); + + // First, try to resolve the absolute path for better UI/logging display + string commandToRun = pythonPath; + if (TryFindInPath(pythonPath, out string resolvedPath)) + { + commandToRun = resolvedPath; + } + + // Run 'python --version' to get the version + if (!ExecPath.TryRun(commandToRun, "--version", null, out string stdout, out string stderr, 5000, augmentedPath)) + return false; + + // Check stdout first, then stderr (some Python distributions output to stderr) + string output = !string.IsNullOrWhiteSpace(stdout) ? stdout.Trim() : stderr.Trim(); + if (output.StartsWith("Python ")) + { + version = output.Substring(7); + fullPath = commandToRun; + + if (TryParseVersion(version, out var major, out var minor)) + { + return major > 3 || (major == 3 && minor >= 10); + } + } + } + catch + { + // Ignore validation errors + } + + return false; + } + + protected override bool TryFindInPath(string executable, out string fullPath) + { + fullPath = ExecPath.FindInPath(executable, BuildAugmentedPath()); + return !string.IsNullOrEmpty(fullPath); + } + + protected string BuildAugmentedPath() + { + var additions = GetPathAdditions(); + if (additions.Length == 0) return null; + + // Only return the additions - ExecPath.TryRun will prepend to existing PATH + return string.Join(Path.PathSeparator, additions); + } + + private string[] GetPathAdditions() + { + var localAppData = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); + var programFiles = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles); + var appData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); + var homeDir = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile); + + var additions = new List(); + + // uv common installation paths + if (!string.IsNullOrEmpty(localAppData)) + additions.Add(Path.Combine(localAppData, "Programs", "uv")); + if (!string.IsNullOrEmpty(programFiles)) + additions.Add(Path.Combine(programFiles, "uv")); + + // npm global paths + if (!string.IsNullOrEmpty(appData)) + additions.Add(Path.Combine(appData, "npm")); + if (!string.IsNullOrEmpty(localAppData)) + additions.Add(Path.Combine(localAppData, "npm")); + + // Python common paths + if (!string.IsNullOrEmpty(localAppData)) + additions.Add(Path.Combine(localAppData, "Programs", "Python")); + // Instead of hardcoded versions, enumerate existing directories + if (!string.IsNullOrEmpty(programFiles)) + { + try + { + var pythonDirs = Directory.GetDirectories(programFiles, "Python3*") + .OrderByDescending(d => d); // Newest first + foreach (var dir in pythonDirs) + { + additions.Add(dir); + } + } + catch { /* Ignore if directory doesn't exist */ } + } + + // User scripts + if (!string.IsNullOrEmpty(homeDir)) + additions.Add(Path.Combine(homeDir, ".local", "bin")); + + return additions.ToArray(); + } + } +} diff --git a/Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/WindowsPlatformDetector.cs.meta b/Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/WindowsPlatformDetector.cs.meta new file mode 100644 index 00000000..59cf1d9f --- /dev/null +++ b/Packages/MCPForUnity/Editor/Dependencies/PlatformDetectors/WindowsPlatformDetector.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1aedc29caa5704c07b487d20a27e9334 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/External.meta b/Packages/MCPForUnity/Editor/External.meta new file mode 100644 index 00000000..ce757b15 --- /dev/null +++ b/Packages/MCPForUnity/Editor/External.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c11944bcfb9ec4576bab52874b7df584 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/External/Tommy.cs b/Packages/MCPForUnity/Editor/External/Tommy.cs new file mode 100644 index 00000000..22e83b81 --- /dev/null +++ b/Packages/MCPForUnity/Editor/External/Tommy.cs @@ -0,0 +1,2138 @@ +#region LICENSE + +/* + * MIT License + * + * Copyright (c) 2020 Denis Zhidkikh + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#endregion + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; + +namespace MCPForUnity.External.Tommy +{ + #region TOML Nodes + + public abstract class TomlNode : IEnumerable + { + public virtual bool HasValue { get; } = false; + public virtual bool IsArray { get; } = false; + public virtual bool IsTable { get; } = false; + public virtual bool IsString { get; } = false; + public virtual bool IsInteger { get; } = false; + public virtual bool IsFloat { get; } = false; + public bool IsDateTime => IsDateTimeLocal || IsDateTimeOffset; + public virtual bool IsDateTimeLocal { get; } = false; + public virtual bool IsDateTimeOffset { get; } = false; + public virtual bool IsBoolean { get; } = false; + public virtual string Comment { get; set; } + public virtual int CollapseLevel { get; set; } + + public virtual TomlTable AsTable => this as TomlTable; + public virtual TomlString AsString => this as TomlString; + public virtual TomlInteger AsInteger => this as TomlInteger; + public virtual TomlFloat AsFloat => this as TomlFloat; + public virtual TomlBoolean AsBoolean => this as TomlBoolean; + public virtual TomlDateTimeLocal AsDateTimeLocal => this as TomlDateTimeLocal; + public virtual TomlDateTimeOffset AsDateTimeOffset => this as TomlDateTimeOffset; + public virtual TomlDateTime AsDateTime => this as TomlDateTime; + public virtual TomlArray AsArray => this as TomlArray; + + public virtual int ChildrenCount => 0; + + public virtual TomlNode this[string key] + { + get => null; + set { } + } + + public virtual TomlNode this[int index] + { + get => null; + set { } + } + + public virtual IEnumerable Children + { + get { yield break; } + } + + public virtual IEnumerable Keys + { + get { yield break; } + } + + public IEnumerator GetEnumerator() => Children.GetEnumerator(); + + public virtual bool TryGetNode(string key, out TomlNode node) + { + node = null; + return false; + } + + public virtual bool HasKey(string key) => false; + + public virtual bool HasItemAt(int index) => false; + + public virtual void Add(string key, TomlNode node) { } + + public virtual void Add(TomlNode node) { } + + public virtual void Delete(TomlNode node) { } + + public virtual void Delete(string key) { } + + public virtual void Delete(int index) { } + + public virtual void AddRange(IEnumerable nodes) + { + foreach (var tomlNode in nodes) Add(tomlNode); + } + + public virtual void WriteTo(TextWriter tw, string name = null) => tw.WriteLine(ToInlineToml()); + + public virtual string ToInlineToml() => ToString(); + + #region Native type to TOML cast + + public static implicit operator TomlNode(string value) => new TomlString { Value = value }; + + public static implicit operator TomlNode(bool value) => new TomlBoolean { Value = value }; + + public static implicit operator TomlNode(long value) => new TomlInteger { Value = value }; + + public static implicit operator TomlNode(float value) => new TomlFloat { Value = value }; + + public static implicit operator TomlNode(double value) => new TomlFloat { Value = value }; + + public static implicit operator TomlNode(DateTime value) => new TomlDateTimeLocal { Value = value }; + + public static implicit operator TomlNode(DateTimeOffset value) => new TomlDateTimeOffset { Value = value }; + + public static implicit operator TomlNode(TomlNode[] nodes) + { + var result = new TomlArray(); + result.AddRange(nodes); + return result; + } + + #endregion + + #region TOML to native type cast + + public static implicit operator string(TomlNode value) => value.ToString(); + + public static implicit operator int(TomlNode value) => (int)value.AsInteger.Value; + + public static implicit operator long(TomlNode value) => value.AsInteger.Value; + + public static implicit operator float(TomlNode value) => (float)value.AsFloat.Value; + + public static implicit operator double(TomlNode value) => value.AsFloat.Value; + + public static implicit operator bool(TomlNode value) => value.AsBoolean.Value; + + public static implicit operator DateTime(TomlNode value) => value.AsDateTimeLocal.Value; + + public static implicit operator DateTimeOffset(TomlNode value) => value.AsDateTimeOffset.Value; + + #endregion + } + + public class TomlString : TomlNode + { + public override bool HasValue { get; } = true; + public override bool IsString { get; } = true; + public bool IsMultiline { get; set; } + public bool MultilineTrimFirstLine { get; set; } + public bool PreferLiteral { get; set; } + + public string Value { get; set; } + + public override string ToString() => Value; + + public override string ToInlineToml() + { + // Automatically convert literal to non-literal if there are too many literal string symbols + if (Value.IndexOf(new string(TomlSyntax.LITERAL_STRING_SYMBOL, IsMultiline ? 3 : 1), StringComparison.Ordinal) != -1 && PreferLiteral) PreferLiteral = false; + var quotes = new string(PreferLiteral ? TomlSyntax.LITERAL_STRING_SYMBOL : TomlSyntax.BASIC_STRING_SYMBOL, + IsMultiline ? 3 : 1); + var result = PreferLiteral ? Value : Value.Escape(!IsMultiline); + if (IsMultiline) + result = result.Replace("\r\n", "\n").Replace("\n", Environment.NewLine); + if (IsMultiline && (MultilineTrimFirstLine || !MultilineTrimFirstLine && result.StartsWith(Environment.NewLine))) + result = $"{Environment.NewLine}{result}"; + return $"{quotes}{result}{quotes}"; + } + } + + public class TomlInteger : TomlNode + { + public enum Base + { + Binary = 2, + Octal = 8, + Decimal = 10, + Hexadecimal = 16 + } + + public override bool IsInteger { get; } = true; + public override bool HasValue { get; } = true; + public Base IntegerBase { get; set; } = Base.Decimal; + + public long Value { get; set; } + + public override string ToString() => Value.ToString(); + + public override string ToInlineToml() => + IntegerBase != Base.Decimal + ? $"0{TomlSyntax.BaseIdentifiers[(int)IntegerBase]}{Convert.ToString(Value, (int)IntegerBase)}" + : Value.ToString(CultureInfo.InvariantCulture); + } + + public class TomlFloat : TomlNode, IFormattable + { + public override bool IsFloat { get; } = true; + public override bool HasValue { get; } = true; + + public double Value { get; set; } + + public override string ToString() => Value.ToString(CultureInfo.InvariantCulture); + + public string ToString(string format, IFormatProvider formatProvider) => Value.ToString(format, formatProvider); + + public string ToString(IFormatProvider formatProvider) => Value.ToString(formatProvider); + + public override string ToInlineToml() => + Value switch + { + var v when double.IsNaN(v) => TomlSyntax.NAN_VALUE, + var v when double.IsPositiveInfinity(v) => TomlSyntax.INF_VALUE, + var v when double.IsNegativeInfinity(v) => TomlSyntax.NEG_INF_VALUE, + var v => v.ToString("G", CultureInfo.InvariantCulture).ToLowerInvariant() + }; + } + + public class TomlBoolean : TomlNode + { + public override bool IsBoolean { get; } = true; + public override bool HasValue { get; } = true; + + public bool Value { get; set; } + + public override string ToString() => Value.ToString(); + + public override string ToInlineToml() => Value ? TomlSyntax.TRUE_VALUE : TomlSyntax.FALSE_VALUE; + } + + public class TomlDateTime : TomlNode, IFormattable + { + public int SecondsPrecision { get; set; } + public override bool HasValue { get; } = true; + public virtual string ToString(string format, IFormatProvider formatProvider) => string.Empty; + public virtual string ToString(IFormatProvider formatProvider) => string.Empty; + protected virtual string ToInlineTomlInternal() => string.Empty; + + public override string ToInlineToml() => ToInlineTomlInternal() + .Replace(TomlSyntax.RFC3339EmptySeparator, TomlSyntax.ISO861Separator) + .Replace(TomlSyntax.ISO861ZeroZone, TomlSyntax.RFC3339ZeroZone); + } + + public class TomlDateTimeOffset : TomlDateTime + { + public override bool IsDateTimeOffset { get; } = true; + public DateTimeOffset Value { get; set; } + + public override string ToString() => Value.ToString(CultureInfo.CurrentCulture); + public override string ToString(IFormatProvider formatProvider) => Value.ToString(formatProvider); + + public override string ToString(string format, IFormatProvider formatProvider) => + Value.ToString(format, formatProvider); + + protected override string ToInlineTomlInternal() => Value.ToString(TomlSyntax.RFC3339Formats[SecondsPrecision]); + } + + public class TomlDateTimeLocal : TomlDateTime + { + public enum DateTimeStyle + { + Date, + Time, + DateTime + } + + public override bool IsDateTimeLocal { get; } = true; + public DateTimeStyle Style { get; set; } = DateTimeStyle.DateTime; + public DateTime Value { get; set; } + + public override string ToString() => Value.ToString(CultureInfo.CurrentCulture); + + public override string ToString(IFormatProvider formatProvider) => Value.ToString(formatProvider); + + public override string ToString(string format, IFormatProvider formatProvider) => + Value.ToString(format, formatProvider); + + public override string ToInlineToml() => + Style switch + { + DateTimeStyle.Date => Value.ToString(TomlSyntax.LocalDateFormat), + DateTimeStyle.Time => Value.ToString(TomlSyntax.RFC3339LocalTimeFormats[SecondsPrecision]), + var _ => Value.ToString(TomlSyntax.RFC3339LocalDateTimeFormats[SecondsPrecision]) + }; + } + + public class TomlArray : TomlNode + { + private List values; + + public override bool HasValue { get; } = true; + public override bool IsArray { get; } = true; + public bool IsMultiline { get; set; } + public bool IsTableArray { get; set; } + public List RawArray => values ??= new List(); + + public override TomlNode this[int index] + { + get + { + if (index < RawArray.Count) return RawArray[index]; + var lazy = new TomlLazy(this); + this[index] = lazy; + return lazy; + } + set + { + if (index == RawArray.Count) + RawArray.Add(value); + else + RawArray[index] = value; + } + } + + public override int ChildrenCount => RawArray.Count; + + public override IEnumerable Children => RawArray.AsEnumerable(); + + public override void Add(TomlNode node) => RawArray.Add(node); + + public override void AddRange(IEnumerable nodes) => RawArray.AddRange(nodes); + + public override void Delete(TomlNode node) => RawArray.Remove(node); + + public override void Delete(int index) => RawArray.RemoveAt(index); + + public override string ToString() => ToString(false); + + public string ToString(bool multiline) + { + var sb = new StringBuilder(); + sb.Append(TomlSyntax.ARRAY_START_SYMBOL); + if (ChildrenCount != 0) + { + var arrayStart = multiline ? $"{Environment.NewLine} " : " "; + var arraySeparator = multiline ? $"{TomlSyntax.ITEM_SEPARATOR}{Environment.NewLine} " : $"{TomlSyntax.ITEM_SEPARATOR} "; + var arrayEnd = multiline ? Environment.NewLine : " "; + sb.Append(arrayStart) + .Append(arraySeparator.Join(RawArray.Select(n => n.ToInlineToml()))) + .Append(arrayEnd); + } + sb.Append(TomlSyntax.ARRAY_END_SYMBOL); + return sb.ToString(); + } + + public override void WriteTo(TextWriter tw, string name = null) + { + // If it's a normal array, write it as usual + if (!IsTableArray) + { + tw.WriteLine(ToString(IsMultiline)); + return; + } + + if (!(Comment is null)) + { + tw.WriteLine(); + Comment.AsComment(tw); + } + tw.Write(TomlSyntax.ARRAY_START_SYMBOL); + tw.Write(TomlSyntax.ARRAY_START_SYMBOL); + tw.Write(name); + tw.Write(TomlSyntax.ARRAY_END_SYMBOL); + tw.Write(TomlSyntax.ARRAY_END_SYMBOL); + tw.WriteLine(); + + var first = true; + + foreach (var tomlNode in RawArray) + { + if (!(tomlNode is TomlTable tbl)) + throw new TomlFormatException("The array is marked as array table but contains non-table nodes!"); + + // Ensure it's parsed as a section + tbl.IsInline = false; + + if (!first) + { + tw.WriteLine(); + + Comment?.AsComment(tw); + tw.Write(TomlSyntax.ARRAY_START_SYMBOL); + tw.Write(TomlSyntax.ARRAY_START_SYMBOL); + tw.Write(name); + tw.Write(TomlSyntax.ARRAY_END_SYMBOL); + tw.Write(TomlSyntax.ARRAY_END_SYMBOL); + tw.WriteLine(); + } + + first = false; + + // Don't write section since it's already written here + tbl.WriteTo(tw, name, false); + } + } + } + + public class TomlTable : TomlNode + { + private Dictionary children; + internal bool isImplicit; + + public override bool HasValue { get; } = false; + public override bool IsTable { get; } = true; + public bool IsInline { get; set; } + public Dictionary RawTable => children ??= new Dictionary(); + + public override TomlNode this[string key] + { + get + { + if (RawTable.TryGetValue(key, out var result)) return result; + var lazy = new TomlLazy(this); + RawTable[key] = lazy; + return lazy; + } + set => RawTable[key] = value; + } + + public override int ChildrenCount => RawTable.Count; + public override IEnumerable Children => RawTable.Select(kv => kv.Value); + public override IEnumerable Keys => RawTable.Select(kv => kv.Key); + public override bool HasKey(string key) => RawTable.ContainsKey(key); + public override void Add(string key, TomlNode node) => RawTable.Add(key, node); + public override bool TryGetNode(string key, out TomlNode node) => RawTable.TryGetValue(key, out node); + public override void Delete(TomlNode node) => RawTable.Remove(RawTable.First(kv => kv.Value == node).Key); + public override void Delete(string key) => RawTable.Remove(key); + + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append(TomlSyntax.INLINE_TABLE_START_SYMBOL); + + if (ChildrenCount != 0) + { + var collapsed = CollectCollapsedItems(normalizeOrder: false); + + if (collapsed.Count != 0) + sb.Append(' ') + .Append($"{TomlSyntax.ITEM_SEPARATOR} ".Join(collapsed.Select(n => + $"{n.Key} {TomlSyntax.KEY_VALUE_SEPARATOR} {n.Value.ToInlineToml()}"))); + sb.Append(' '); + } + + sb.Append(TomlSyntax.INLINE_TABLE_END_SYMBOL); + return sb.ToString(); + } + + private LinkedList> CollectCollapsedItems(string prefix = "", int level = 0, bool normalizeOrder = true) + { + var nodes = new LinkedList>(); + var postNodes = normalizeOrder ? new LinkedList>() : nodes; + + foreach (var keyValuePair in RawTable) + { + var node = keyValuePair.Value; + var key = keyValuePair.Key.AsKey(); + + if (node is TomlTable tbl) + { + var subnodes = tbl.CollectCollapsedItems($"{prefix}{key}.", level + 1, normalizeOrder); + // Write main table first before writing collapsed items + if (subnodes.Count == 0 && node.CollapseLevel == level) + { + postNodes.AddLast(new KeyValuePair($"{prefix}{key}", node)); + } + foreach (var kv in subnodes) + postNodes.AddLast(kv); + } + else if (node.CollapseLevel == level) + nodes.AddLast(new KeyValuePair($"{prefix}{key}", node)); + } + + if (normalizeOrder) + foreach (var kv in postNodes) + nodes.AddLast(kv); + + return nodes; + } + + public override void WriteTo(TextWriter tw, string name = null) => WriteTo(tw, name, true); + + internal void WriteTo(TextWriter tw, string name, bool writeSectionName) + { + // The table is inline table + if (IsInline && name != null) + { + tw.WriteLine(ToInlineToml()); + return; + } + + var collapsedItems = CollectCollapsedItems(); + + if (collapsedItems.Count == 0) + return; + + var hasRealValues = !collapsedItems.All(n => n.Value is TomlTable { IsInline: false } or TomlArray { IsTableArray: true }); + + Comment?.AsComment(tw); + + if (name != null && (hasRealValues || Comment != null) && writeSectionName) + { + tw.Write(TomlSyntax.ARRAY_START_SYMBOL); + tw.Write(name); + tw.Write(TomlSyntax.ARRAY_END_SYMBOL); + tw.WriteLine(); + } + else if (Comment != null) // Add some spacing between the first node and the comment + { + tw.WriteLine(); + } + + var namePrefix = name == null ? "" : $"{name}."; + var first = true; + + foreach (var collapsedItem in collapsedItems) + { + var key = collapsedItem.Key; + if (collapsedItem.Value is TomlArray { IsTableArray: true } or TomlTable { IsInline: false }) + { + if (!first) tw.WriteLine(); + first = false; + collapsedItem.Value.WriteTo(tw, $"{namePrefix}{key}"); + continue; + } + first = false; + + collapsedItem.Value.Comment?.AsComment(tw); + tw.Write(key); + tw.Write(' '); + tw.Write(TomlSyntax.KEY_VALUE_SEPARATOR); + tw.Write(' '); + + collapsedItem.Value.WriteTo(tw, $"{namePrefix}{key}"); + } + } + } + + internal class TomlLazy : TomlNode + { + private readonly TomlNode parent; + private TomlNode replacement; + + public TomlLazy(TomlNode parent) => this.parent = parent; + + public override TomlNode this[int index] + { + get => Set()[index]; + set => Set()[index] = value; + } + + public override TomlNode this[string key] + { + get => Set()[key]; + set => Set()[key] = value; + } + + public override void Add(TomlNode node) => Set().Add(node); + + public override void Add(string key, TomlNode node) => Set().Add(key, node); + + public override void AddRange(IEnumerable nodes) => Set().AddRange(nodes); + + private TomlNode Set() where T : TomlNode, new() + { + if (replacement != null) return replacement; + + var newNode = new T + { + Comment = Comment + }; + + if (parent.IsTable) + { + var key = parent.Keys.FirstOrDefault(s => parent.TryGetNode(s, out var node) && node.Equals(this)); + if (key == null) return default(T); + + parent[key] = newNode; + } + else if (parent.IsArray) + { + var index = parent.Children.TakeWhile(child => child != this).Count(); + if (index == parent.ChildrenCount) return default(T); + parent[index] = newNode; + } + else + { + return default(T); + } + + replacement = newNode; + return newNode; + } + } + + #endregion + + #region Parser + + public class TOMLParser : IDisposable + { + public enum ParseState + { + None, + KeyValuePair, + SkipToNextLine, + Table + } + + private readonly TextReader reader; + private ParseState currentState; + private int line, col; + private List syntaxErrors; + + public TOMLParser(TextReader reader) + { + this.reader = reader; + line = col = 0; + } + + public bool ForceASCII { get; set; } + + public void Dispose() => reader?.Dispose(); + + public TomlTable Parse() + { + syntaxErrors = new List(); + line = col = 1; + var rootNode = new TomlTable(); + var currentNode = rootNode; + currentState = ParseState.None; + var keyParts = new List(); + var arrayTable = false; + StringBuilder latestComment = null; + var firstComment = true; + + int currentChar; + while ((currentChar = reader.Peek()) >= 0) + { + var c = (char)currentChar; + + if (currentState == ParseState.None) + { + // Skip white space + if (TomlSyntax.IsWhiteSpace(c)) goto consume_character; + + if (TomlSyntax.IsNewLine(c)) + { + // Check if there are any comments and so far no items being declared + if (latestComment != null && firstComment) + { + rootNode.Comment = latestComment.ToString().TrimEnd(); + latestComment = null; + firstComment = false; + } + + if (TomlSyntax.IsLineBreak(c)) + AdvanceLine(); + + goto consume_character; + } + + // Start of a comment; ignore until newline + if (c == TomlSyntax.COMMENT_SYMBOL) + { + latestComment ??= new StringBuilder(); + latestComment.AppendLine(ParseComment()); + AdvanceLine(1); + continue; + } + + // Encountered a non-comment value. The comment must belong to it (ignore possible newlines)! + firstComment = false; + + if (c == TomlSyntax.TABLE_START_SYMBOL) + { + currentState = ParseState.Table; + goto consume_character; + } + + if (TomlSyntax.IsBareKey(c) || TomlSyntax.IsQuoted(c)) + { + currentState = ParseState.KeyValuePair; + } + else + { + AddError($"Unexpected character \"{c}\""); + continue; + } + } + + if (currentState == ParseState.KeyValuePair) + { + var keyValuePair = ReadKeyValuePair(keyParts); + + if (keyValuePair == null) + { + latestComment = null; + keyParts.Clear(); + + if (currentState != ParseState.None) + AddError("Failed to parse key-value pair!"); + continue; + } + + keyValuePair.Comment = latestComment?.ToString()?.TrimEnd(); + var inserted = InsertNode(keyValuePair, currentNode, keyParts); + latestComment = null; + keyParts.Clear(); + if (inserted) + currentState = ParseState.SkipToNextLine; + continue; + } + + if (currentState == ParseState.Table) + { + if (keyParts.Count == 0) + { + // We have array table + if (c == TomlSyntax.TABLE_START_SYMBOL) + { + // Consume the character + ConsumeChar(); + arrayTable = true; + } + + if (!ReadKeyName(ref keyParts, TomlSyntax.TABLE_END_SYMBOL)) + { + keyParts.Clear(); + continue; + } + + if (keyParts.Count == 0) + { + AddError("Table name is emtpy."); + arrayTable = false; + latestComment = null; + keyParts.Clear(); + } + + continue; + } + + if (c == TomlSyntax.TABLE_END_SYMBOL) + { + if (arrayTable) + { + // Consume the ending bracket so we can peek the next character + ConsumeChar(); + var nextChar = reader.Peek(); + if (nextChar < 0 || (char)nextChar != TomlSyntax.TABLE_END_SYMBOL) + { + AddError($"Array table {".".Join(keyParts)} has only one closing bracket."); + keyParts.Clear(); + arrayTable = false; + latestComment = null; + continue; + } + } + + currentNode = CreateTable(rootNode, keyParts, arrayTable); + if (currentNode != null) + { + currentNode.IsInline = false; + currentNode.Comment = latestComment?.ToString()?.TrimEnd(); + } + + keyParts.Clear(); + arrayTable = false; + latestComment = null; + + if (currentNode == null) + { + if (currentState != ParseState.None) + AddError("Error creating table array!"); + // Reset a node to root in order to try and continue parsing + currentNode = rootNode; + continue; + } + + currentState = ParseState.SkipToNextLine; + goto consume_character; + } + + if (keyParts.Count != 0) + { + AddError($"Unexpected character \"{c}\""); + keyParts.Clear(); + arrayTable = false; + latestComment = null; + } + } + + if (currentState == ParseState.SkipToNextLine) + { + if (TomlSyntax.IsWhiteSpace(c) || c == TomlSyntax.NEWLINE_CARRIAGE_RETURN_CHARACTER) + goto consume_character; + + if (c is TomlSyntax.COMMENT_SYMBOL or TomlSyntax.NEWLINE_CHARACTER) + { + currentState = ParseState.None; + AdvanceLine(); + + if (c == TomlSyntax.COMMENT_SYMBOL) + { + col++; + ParseComment(); + continue; + } + + goto consume_character; + } + + AddError($"Unexpected character \"{c}\" at the end of the line."); + } + + consume_character: + reader.Read(); + col++; + } + + if (currentState != ParseState.None && currentState != ParseState.SkipToNextLine) + AddError("Unexpected end of file!"); + + if (syntaxErrors.Count > 0) + throw new TomlParseException(rootNode, syntaxErrors); + + return rootNode; + } + + private bool AddError(string message, bool skipLine = true) + { + syntaxErrors.Add(new TomlSyntaxException(message, currentState, line, col)); + // Skip the whole line in hope that it was only a single faulty value (and non-multiline one at that) + if (skipLine) + { + reader.ReadLine(); + AdvanceLine(1); + } + currentState = ParseState.None; + return false; + } + + private void AdvanceLine(int startCol = 0) + { + line++; + col = startCol; + } + + private int ConsumeChar() + { + col++; + return reader.Read(); + } + + #region Key-Value pair parsing + + /** + * Reads a single key-value pair. + * Assumes the cursor is at the first character that belong to the pair (including possible whitespace). + * Consumes all characters that belong to the key and the value (ignoring possible trailing whitespace at the end). + * + * Example: + * foo = "bar" ==> foo = "bar" + * ^ ^ + */ + private TomlNode ReadKeyValuePair(List keyParts) + { + int cur; + while ((cur = reader.Peek()) >= 0) + { + var c = (char)cur; + + if (TomlSyntax.IsQuoted(c) || TomlSyntax.IsBareKey(c)) + { + if (keyParts.Count != 0) + { + AddError("Encountered extra characters in key definition!"); + return null; + } + + if (!ReadKeyName(ref keyParts, TomlSyntax.KEY_VALUE_SEPARATOR)) + return null; + + continue; + } + + if (TomlSyntax.IsWhiteSpace(c)) + { + ConsumeChar(); + continue; + } + + if (c == TomlSyntax.KEY_VALUE_SEPARATOR) + { + ConsumeChar(); + return ReadValue(); + } + + AddError($"Unexpected character \"{c}\" in key name."); + return null; + } + + return null; + } + + /** + * Reads a single value. + * Assumes the cursor is at the first character that belongs to the value (including possible starting whitespace). + * Consumes all characters belonging to the value (ignoring possible trailing whitespace at the end). + * + * Example: + * "test" ==> "test" + * ^ ^ + */ + private TomlNode ReadValue(bool skipNewlines = false) + { + int cur; + while ((cur = reader.Peek()) >= 0) + { + var c = (char)cur; + + if (TomlSyntax.IsWhiteSpace(c)) + { + ConsumeChar(); + continue; + } + + if (c == TomlSyntax.COMMENT_SYMBOL) + { + AddError("No value found!"); + return null; + } + + if (TomlSyntax.IsNewLine(c)) + { + if (skipNewlines) + { + reader.Read(); + AdvanceLine(1); + continue; + } + + AddError("Encountered a newline when expecting a value!"); + return null; + } + + if (TomlSyntax.IsQuoted(c)) + { + var isMultiline = IsTripleQuote(c, out var excess); + + // Error occurred in triple quote parsing + if (currentState == ParseState.None) + return null; + + var value = isMultiline + ? ReadQuotedValueMultiLine(c) + : ReadQuotedValueSingleLine(c, excess); + + if (value is null) + return null; + + return new TomlString + { + Value = value, + IsMultiline = isMultiline, + PreferLiteral = c == TomlSyntax.LITERAL_STRING_SYMBOL + }; + } + + return c switch + { + TomlSyntax.INLINE_TABLE_START_SYMBOL => ReadInlineTable(), + TomlSyntax.ARRAY_START_SYMBOL => ReadArray(), + var _ => ReadTomlValue() + }; + } + + return null; + } + + /** + * Reads a single key name. + * Assumes the cursor is at the first character belonging to the key (with possible trailing whitespace if `skipWhitespace = true`). + * Consumes all the characters until the `until` character is met (but does not consume the character itself). + * + * Example 1: + * foo.bar ==> foo.bar (`skipWhitespace = false`, `until = ' '`) + * ^ ^ + * + * Example 2: + * [ foo . bar ] ==> [ foo . bar ] (`skipWhitespace = true`, `until = ']'`) + * ^ ^ + */ + private bool ReadKeyName(ref List parts, char until) + { + var buffer = new StringBuilder(); + var quoted = false; + var prevWasSpace = false; + int cur; + while ((cur = reader.Peek()) >= 0) + { + var c = (char)cur; + + // Reached the final character + if (c == until) break; + + if (TomlSyntax.IsWhiteSpace(c)) + { + prevWasSpace = true; + goto consume_character; + } + + if (buffer.Length == 0) prevWasSpace = false; + + if (c == TomlSyntax.SUBKEY_SEPARATOR) + { + if (buffer.Length == 0 && !quoted) + return AddError($"Found an extra subkey separator in {".".Join(parts)}..."); + + parts.Add(buffer.ToString()); + buffer.Length = 0; + quoted = false; + prevWasSpace = false; + goto consume_character; + } + + if (prevWasSpace) + return AddError("Invalid spacing in key name"); + + if (TomlSyntax.IsQuoted(c)) + { + if (quoted) + + return AddError("Expected a subkey separator but got extra data instead!"); + + if (buffer.Length != 0) + return AddError("Encountered a quote in the middle of subkey name!"); + + // Consume the quote character and read the key name + col++; + buffer.Append(ReadQuotedValueSingleLine((char)reader.Read())); + quoted = true; + continue; + } + + if (TomlSyntax.IsBareKey(c)) + { + buffer.Append(c); + goto consume_character; + } + + // If we see an invalid symbol, let the next parser handle it + break; + + consume_character: + reader.Read(); + col++; + } + + if (buffer.Length == 0 && !quoted) + return AddError($"Found an extra subkey separator in {".".Join(parts)}..."); + + parts.Add(buffer.ToString()); + + return true; + } + + #endregion + + #region Non-string value parsing + + /** + * Reads the whole raw value until the first non-value character is encountered. + * Assumes the cursor start position at the first value character and consumes all characters that may be related to the value. + * Example: + * + * 1_0_0_0 ==> 1_0_0_0 + * ^ ^ + */ + private string ReadRawValue() + { + var result = new StringBuilder(); + int cur; + while ((cur = reader.Peek()) >= 0) + { + var c = (char)cur; + if (c == TomlSyntax.COMMENT_SYMBOL || TomlSyntax.IsNewLine(c) || TomlSyntax.IsValueSeparator(c)) break; + result.Append(c); + ConsumeChar(); + } + + // Replace trim with manual space counting? + return result.ToString().Trim(); + } + + /** + * Reads and parses a non-string, non-composite TOML value. + * Assumes the cursor at the first character that is related to the value (with possible spaces). + * Consumes all the characters that are related to the value. + * + * Example + * 1_0_0_0 # This is a comment + * + * ==> 1_0_0_0 # This is a comment + * ^ ^ + */ + private TomlNode ReadTomlValue() + { + var value = ReadRawValue(); + TomlNode node = value switch + { + var v when TomlSyntax.IsBoolean(v) => bool.Parse(v), + var v when TomlSyntax.IsNaN(v) => double.NaN, + var v when TomlSyntax.IsPosInf(v) => double.PositiveInfinity, + var v when TomlSyntax.IsNegInf(v) => double.NegativeInfinity, + var v when TomlSyntax.IsInteger(v) => long.Parse(value.RemoveAll(TomlSyntax.INT_NUMBER_SEPARATOR), + CultureInfo.InvariantCulture), + var v when TomlSyntax.IsFloat(v) => double.Parse(value.RemoveAll(TomlSyntax.INT_NUMBER_SEPARATOR), + CultureInfo.InvariantCulture), + var v when TomlSyntax.IsIntegerWithBase(v, out var numberBase) => new TomlInteger + { + Value = Convert.ToInt64(value.Substring(2).RemoveAll(TomlSyntax.INT_NUMBER_SEPARATOR), numberBase), + IntegerBase = (TomlInteger.Base)numberBase + }, + var _ => null + }; + if (node != null) return node; + + // Normalize by removing space separator + value = value.Replace(TomlSyntax.RFC3339EmptySeparator, TomlSyntax.ISO861Separator); + if (StringUtils.TryParseDateTime(value, + TomlSyntax.RFC3339LocalDateTimeFormats, + DateTimeStyles.AssumeLocal, + DateTime.TryParseExact, + out var dateTimeResult, + out var precision)) + return new TomlDateTimeLocal + { + Value = dateTimeResult, + SecondsPrecision = precision + }; + + if (DateTime.TryParseExact(value, + TomlSyntax.LocalDateFormat, + CultureInfo.InvariantCulture, + DateTimeStyles.AssumeLocal, + out dateTimeResult)) + return new TomlDateTimeLocal + { + Value = dateTimeResult, + Style = TomlDateTimeLocal.DateTimeStyle.Date + }; + + if (StringUtils.TryParseDateTime(value, + TomlSyntax.RFC3339LocalTimeFormats, + DateTimeStyles.AssumeLocal, + DateTime.TryParseExact, + out dateTimeResult, + out precision)) + return new TomlDateTimeLocal + { + Value = dateTimeResult, + Style = TomlDateTimeLocal.DateTimeStyle.Time, + SecondsPrecision = precision + }; + + if (StringUtils.TryParseDateTime(value, + TomlSyntax.RFC3339Formats, + DateTimeStyles.None, + DateTimeOffset.TryParseExact, + out var dateTimeOffsetResult, + out precision)) + return new TomlDateTimeOffset + { + Value = dateTimeOffsetResult, + SecondsPrecision = precision + }; + + AddError($"Value \"{value}\" is not a valid TOML value!"); + return null; + } + + /** + * Reads an array value. + * Assumes the cursor is at the start of the array definition. Reads all character until the array closing bracket. + * + * Example: + * [1, 2, 3] ==> [1, 2, 3] + * ^ ^ + */ + private TomlArray ReadArray() + { + // Consume the start of array character + ConsumeChar(); + var result = new TomlArray(); + TomlNode currentValue = null; + var expectValue = true; + + int cur; + while ((cur = reader.Peek()) >= 0) + { + var c = (char)cur; + + if (c == TomlSyntax.ARRAY_END_SYMBOL) + { + ConsumeChar(); + break; + } + + if (c == TomlSyntax.COMMENT_SYMBOL) + { + reader.ReadLine(); + AdvanceLine(1); + continue; + } + + if (TomlSyntax.IsWhiteSpace(c) || TomlSyntax.IsNewLine(c)) + { + if (TomlSyntax.IsLineBreak(c)) + AdvanceLine(); + goto consume_character; + } + + if (c == TomlSyntax.ITEM_SEPARATOR) + { + if (currentValue == null) + { + AddError("Encountered multiple value separators"); + return null; + } + + result.Add(currentValue); + currentValue = null; + expectValue = true; + goto consume_character; + } + + if (!expectValue) + { + AddError("Missing separator between values"); + return null; + } + currentValue = ReadValue(true); + if (currentValue == null) + { + if (currentState != ParseState.None) + AddError("Failed to determine and parse a value!"); + return null; + } + expectValue = false; + + continue; + consume_character: + ConsumeChar(); + } + + if (currentValue != null) result.Add(currentValue); + return result; + } + + /** + * Reads an inline table. + * Assumes the cursor is at the start of the table definition. Reads all character until the table closing bracket. + * + * Example: + * { test = "foo", value = 1 } ==> { test = "foo", value = 1 } + * ^ ^ + */ + private TomlNode ReadInlineTable() + { + ConsumeChar(); + var result = new TomlTable { IsInline = true }; + TomlNode currentValue = null; + var separator = false; + var keyParts = new List(); + int cur; + while ((cur = reader.Peek()) >= 0) + { + var c = (char)cur; + + if (c == TomlSyntax.INLINE_TABLE_END_SYMBOL) + { + ConsumeChar(); + break; + } + + if (c == TomlSyntax.COMMENT_SYMBOL) + { + AddError("Incomplete inline table definition!"); + return null; + } + + if (TomlSyntax.IsNewLine(c)) + { + AddError("Inline tables are only allowed to be on single line"); + return null; + } + + if (TomlSyntax.IsWhiteSpace(c)) + goto consume_character; + + if (c == TomlSyntax.ITEM_SEPARATOR) + { + if (currentValue == null) + { + AddError("Encountered multiple value separators in inline table!"); + return null; + } + + if (!InsertNode(currentValue, result, keyParts)) + return null; + keyParts.Clear(); + currentValue = null; + separator = true; + goto consume_character; + } + + separator = false; + currentValue = ReadKeyValuePair(keyParts); + continue; + + consume_character: + ConsumeChar(); + } + + if (separator) + { + AddError("Trailing commas are not allowed in inline tables."); + return null; + } + + if (currentValue != null && !InsertNode(currentValue, result, keyParts)) + return null; + + return result; + } + + #endregion + + #region String parsing + + /** + * Checks if the string value a multiline string (i.e. a triple quoted string). + * Assumes the cursor is at the first quote character. Consumes the least amount of characters needed to determine if the string is multiline. + * + * If the result is false, returns the consumed character through the `excess` variable. + * + * Example 1: + * """test""" ==> """test""" + * ^ ^ + * + * Example 2: + * "test" ==> "test" (doesn't return the first quote) + * ^ ^ + * + * Example 3: + * "" ==> "" (returns the extra `"` through the `excess` variable) + * ^ ^ + */ + private bool IsTripleQuote(char quote, out char excess) + { + // Copypasta, but it's faster... + + int cur; + // Consume the first quote + ConsumeChar(); + if ((cur = reader.Peek()) < 0) + { + excess = '\0'; + return AddError("Unexpected end of file!"); + } + + if ((char)cur != quote) + { + excess = '\0'; + return false; + } + + // Consume the second quote + excess = (char)ConsumeChar(); + if ((cur = reader.Peek()) < 0 || (char)cur != quote) return false; + + // Consume the final quote + ConsumeChar(); + excess = '\0'; + return true; + } + + /** + * A convenience method to process a single character within a quote. + */ + private bool ProcessQuotedValueCharacter(char quote, + bool isNonLiteral, + char c, + StringBuilder sb, + ref bool escaped) + { + if (TomlSyntax.MustBeEscaped(c)) + return AddError($"The character U+{(int)c:X8} must be escaped in a string!"); + + if (escaped) + { + sb.Append(c); + escaped = false; + return false; + } + + if (c == quote) + { + if (!isNonLiteral && reader.Peek() == quote) + { + reader.Read(); + col++; + sb.Append(quote); + return false; + } + + return true; + } + if (isNonLiteral && c == TomlSyntax.ESCAPE_SYMBOL) + escaped = true; + if (c == TomlSyntax.NEWLINE_CHARACTER) + return AddError("Encountered newline in single line string!"); + + sb.Append(c); + return false; + } + + /** + * Reads a single-line string. + * Assumes the cursor is at the first character that belongs to the string. + * Consumes all characters that belong to the string (including the closing quote). + * + * Example: + * "test" ==> "test" + * ^ ^ + */ + private string ReadQuotedValueSingleLine(char quote, char initialData = '\0') + { + var isNonLiteral = quote == TomlSyntax.BASIC_STRING_SYMBOL; + var sb = new StringBuilder(); + var escaped = false; + + if (initialData != '\0') + { + var shouldReturn = + ProcessQuotedValueCharacter(quote, isNonLiteral, initialData, sb, ref escaped); + if (currentState == ParseState.None) return null; + if (shouldReturn) + if (isNonLiteral) + { + if (sb.ToString().TryUnescape(out var res, out var ex)) return res; + AddError(ex.Message); + return null; + } + else + return sb.ToString(); + } + + int cur; + var readDone = false; + while ((cur = reader.Read()) >= 0) + { + // Consume the character + col++; + var c = (char)cur; + readDone = ProcessQuotedValueCharacter(quote, isNonLiteral, c, sb, ref escaped); + if (readDone) + { + if (currentState == ParseState.None) return null; + break; + } + } + + if (!readDone) + { + AddError("Unclosed string."); + return null; + } + + if (!isNonLiteral) return sb.ToString(); + if (sb.ToString().TryUnescape(out var unescaped, out var unescapedEx)) return unescaped; + AddError(unescapedEx.Message); + return null; + } + + /** + * Reads a multiline string. + * Assumes the cursor is at the first character that belongs to the string. + * Consumes all characters that belong to the string and the three closing quotes. + * + * Example: + * """test""" ==> """test""" + * ^ ^ + */ + private string ReadQuotedValueMultiLine(char quote) + { + var isBasic = quote == TomlSyntax.BASIC_STRING_SYMBOL; + var sb = new StringBuilder(); + var escaped = false; + var skipWhitespace = false; + var skipWhitespaceLineSkipped = false; + var quotesEncountered = 0; + var first = true; + int cur; + while ((cur = ConsumeChar()) >= 0) + { + var c = (char)cur; + if (TomlSyntax.MustBeEscaped(c, true)) + { + AddError($"The character U+{(int)c:X8} must be escaped!"); + return null; + } + // Trim the first newline + if (first && TomlSyntax.IsNewLine(c)) + { + if (TomlSyntax.IsLineBreak(c)) + first = false; + else + AdvanceLine(); + continue; + } + + first = false; + //TODO: Reuse ProcessQuotedValueCharacter + // Skip the current character if it is going to be escaped later + if (escaped) + { + sb.Append(c); + escaped = false; + continue; + } + + // If we are currently skipping empty spaces, skip + if (skipWhitespace) + { + if (TomlSyntax.IsEmptySpace(c)) + { + if (TomlSyntax.IsLineBreak(c)) + { + skipWhitespaceLineSkipped = true; + AdvanceLine(); + } + continue; + } + + if (!skipWhitespaceLineSkipped) + { + AddError("Non-whitespace character after trim marker."); + return null; + } + + skipWhitespaceLineSkipped = false; + skipWhitespace = false; + } + + // If we encounter an escape sequence... + if (isBasic && c == TomlSyntax.ESCAPE_SYMBOL) + { + var next = reader.Peek(); + var nc = (char)next; + if (next >= 0) + { + // ...and the next char is empty space, we must skip all whitespaces + if (TomlSyntax.IsEmptySpace(nc)) + { + skipWhitespace = true; + continue; + } + + // ...and we have \" or \, skip the character + if (nc == quote || nc == TomlSyntax.ESCAPE_SYMBOL) escaped = true; + } + } + + // Count the consecutive quotes + if (c == quote) + quotesEncountered++; + else + quotesEncountered = 0; + + // If the are three quotes, count them as closing quotes + if (quotesEncountered == 3) break; + + sb.Append(c); + } + + // TOML actually allows to have five ending quotes like + // """"" => "" belong to the string + """ is the actual ending + quotesEncountered = 0; + while ((cur = reader.Peek()) >= 0) + { + var c = (char)cur; + if (c == quote && ++quotesEncountered < 3) + { + sb.Append(c); + ConsumeChar(); + } + else break; + } + + // Remove last two quotes (third one wasn't included by default) + sb.Length -= 2; + if (!isBasic) return sb.ToString(); + if (sb.ToString().TryUnescape(out var res, out var ex)) return res; + AddError(ex.Message); + return null; + } + + #endregion + + #region Node creation + + private bool InsertNode(TomlNode node, TomlNode root, IList path) + { + var latestNode = root; + if (path.Count > 1) + for (var index = 0; index < path.Count - 1; index++) + { + var subkey = path[index]; + if (latestNode.TryGetNode(subkey, out var currentNode)) + { + if (currentNode.HasValue) + return AddError($"The key {".".Join(path)} already has a value assigned to it!"); + } + else + { + currentNode = new TomlTable(); + latestNode[subkey] = currentNode; + } + + latestNode = currentNode; + if (latestNode is TomlTable { IsInline: true }) + return AddError($"Cannot assign {".".Join(path)} because it will edit an immutable table."); + } + + if (latestNode.HasKey(path[path.Count - 1])) + return AddError($"The key {".".Join(path)} is already defined!"); + latestNode[path[path.Count - 1]] = node; + node.CollapseLevel = path.Count - 1; + return true; + } + + private TomlTable CreateTable(TomlNode root, IList path, bool arrayTable) + { + if (path.Count == 0) return null; + var latestNode = root; + for (var index = 0; index < path.Count; index++) + { + var subkey = path[index]; + + if (latestNode.TryGetNode(subkey, out var node)) + { + if (node.IsArray && arrayTable) + { + var arr = (TomlArray)node; + + if (!arr.IsTableArray) + { + AddError($"The array {".".Join(path)} cannot be redefined as an array table!"); + return null; + } + + if (index == path.Count - 1) + { + latestNode = new TomlTable(); + arr.Add(latestNode); + break; + } + + latestNode = arr[arr.ChildrenCount - 1]; + continue; + } + + if (node is TomlTable { IsInline: true }) + { + AddError($"Cannot create table {".".Join(path)} because it will edit an immutable table."); + return null; + } + + if (node.HasValue) + { + if (!(node is TomlArray { IsTableArray: true } array)) + { + AddError($"The key {".".Join(path)} has a value assigned to it!"); + return null; + } + + latestNode = array[array.ChildrenCount - 1]; + continue; + } + + if (index == path.Count - 1) + { + if (arrayTable && !node.IsArray) + { + AddError($"The table {".".Join(path)} cannot be redefined as an array table!"); + return null; + } + + if (node is TomlTable { isImplicit: false }) + { + AddError($"The table {".".Join(path)} is defined multiple times!"); + return null; + } + } + } + else + { + if (index == path.Count - 1 && arrayTable) + { + var table = new TomlTable(); + var arr = new TomlArray + { + IsTableArray = true + }; + arr.Add(table); + latestNode[subkey] = arr; + latestNode = table; + break; + } + + node = new TomlTable { isImplicit = true }; + latestNode[subkey] = node; + } + + latestNode = node; + } + + var result = (TomlTable)latestNode; + result.isImplicit = false; + return result; + } + + #endregion + + #region Misc parsing + + private string ParseComment() + { + ConsumeChar(); + var commentLine = reader.ReadLine()?.Trim() ?? ""; + if (commentLine.Any(ch => TomlSyntax.MustBeEscaped(ch))) + AddError("Comment must not contain control characters other than tab.", false); + return commentLine; + } + #endregion + } + + #endregion + + public static class TOML + { + public static bool ForceASCII { get; set; } = false; + + public static TomlTable Parse(TextReader reader) + { + using var parser = new TOMLParser(reader) { ForceASCII = ForceASCII }; + return parser.Parse(); + } + } + + #region Exception Types + + public class TomlFormatException : Exception + { + public TomlFormatException(string message) : base(message) { } + } + + public class TomlParseException : Exception + { + public TomlParseException(TomlTable parsed, IEnumerable exceptions) : + base("TOML file contains format errors") + { + ParsedTable = parsed; + SyntaxErrors = exceptions; + } + + public TomlTable ParsedTable { get; } + + public IEnumerable SyntaxErrors { get; } + } + + public class TomlSyntaxException : Exception + { + public TomlSyntaxException(string message, TOMLParser.ParseState state, int line, int col) : base(message) + { + ParseState = state; + Line = line; + Column = col; + } + + public TOMLParser.ParseState ParseState { get; } + + public int Line { get; } + + public int Column { get; } + } + + #endregion + + #region Parse utilities + + internal static class TomlSyntax + { + #region Type Patterns + + public const string TRUE_VALUE = "true"; + public const string FALSE_VALUE = "false"; + public const string NAN_VALUE = "nan"; + public const string POS_NAN_VALUE = "+nan"; + public const string NEG_NAN_VALUE = "-nan"; + public const string INF_VALUE = "inf"; + public const string POS_INF_VALUE = "+inf"; + public const string NEG_INF_VALUE = "-inf"; + + public static bool IsBoolean(string s) => s is TRUE_VALUE or FALSE_VALUE; + + public static bool IsPosInf(string s) => s is INF_VALUE or POS_INF_VALUE; + + public static bool IsNegInf(string s) => s == NEG_INF_VALUE; + + public static bool IsNaN(string s) => s is NAN_VALUE or POS_NAN_VALUE or NEG_NAN_VALUE; + + public static bool IsInteger(string s) => IntegerPattern.IsMatch(s); + + public static bool IsFloat(string s) => FloatPattern.IsMatch(s); + + public static bool IsIntegerWithBase(string s, out int numberBase) + { + numberBase = 10; + var match = BasedIntegerPattern.Match(s); + if (!match.Success) return false; + IntegerBases.TryGetValue(match.Groups["base"].Value, out numberBase); + return true; + } + + /** + * A pattern to verify the integer value according to the TOML specification. + */ + public static readonly Regex IntegerPattern = + new(@"^(\+|-)?(?!_)(0|(?!0)(_?\d)*)$", RegexOptions.Compiled); + + /** + * A pattern to verify a special 0x, 0o and 0b forms of an integer according to the TOML specification. + */ + public static readonly Regex BasedIntegerPattern = + new(@"^0(?x|b|o)(?!_)(_?[0-9A-F])*$", RegexOptions.Compiled | RegexOptions.IgnoreCase); + + /** + * A pattern to verify the float value according to the TOML specification. + */ + public static readonly Regex FloatPattern = + new(@"^(\+|-)?(?!_)(0|(?!0)(_?\d)+)(((e(\+|-)?(?!_)(_?\d)+)?)|(\.(?!_)(_?\d)+(e(\+|-)?(?!_)(_?\d)+)?))$", + RegexOptions.Compiled | RegexOptions.IgnoreCase); + + /** + * A helper dictionary to map TOML base codes into the radii. + */ + public static readonly Dictionary IntegerBases = new() + { + ["x"] = 16, + ["o"] = 8, + ["b"] = 2 + }; + + /** + * A helper dictionary to map non-decimal bases to their TOML identifiers + */ + public static readonly Dictionary BaseIdentifiers = new() + { + [2] = "b", + [8] = "o", + [16] = "x" + }; + + public const string RFC3339EmptySeparator = " "; + public const string ISO861Separator = "T"; + public const string ISO861ZeroZone = "+00:00"; + public const string RFC3339ZeroZone = "Z"; + + /** + * Valid date formats with timezone as per RFC3339. + */ + public static readonly string[] RFC3339Formats = + { + "yyyy'-'MM-ddTHH':'mm':'ssK", "yyyy'-'MM-ddTHH':'mm':'ss'.'fK", "yyyy'-'MM-ddTHH':'mm':'ss'.'ffK", + "yyyy'-'MM-ddTHH':'mm':'ss'.'fffK", "yyyy'-'MM-ddTHH':'mm':'ss'.'ffffK", + "yyyy'-'MM-ddTHH':'mm':'ss'.'fffffK", "yyyy'-'MM-ddTHH':'mm':'ss'.'ffffffK", + "yyyy'-'MM-ddTHH':'mm':'ss'.'fffffffK" + }; + + /** + * Valid date formats without timezone (assumes local) as per RFC3339. + */ + public static readonly string[] RFC3339LocalDateTimeFormats = + { + "yyyy'-'MM-ddTHH':'mm':'ss", "yyyy'-'MM-ddTHH':'mm':'ss'.'f", "yyyy'-'MM-ddTHH':'mm':'ss'.'ff", + "yyyy'-'MM-ddTHH':'mm':'ss'.'fff", "yyyy'-'MM-ddTHH':'mm':'ss'.'ffff", + "yyyy'-'MM-ddTHH':'mm':'ss'.'fffff", "yyyy'-'MM-ddTHH':'mm':'ss'.'ffffff", + "yyyy'-'MM-ddTHH':'mm':'ss'.'fffffff" + }; + + /** + * Valid full date format as per TOML spec. + */ + public static readonly string LocalDateFormat = "yyyy'-'MM'-'dd"; + + /** + * Valid time formats as per TOML spec. + */ + public static readonly string[] RFC3339LocalTimeFormats = + { + "HH':'mm':'ss", "HH':'mm':'ss'.'f", "HH':'mm':'ss'.'ff", "HH':'mm':'ss'.'fff", "HH':'mm':'ss'.'ffff", + "HH':'mm':'ss'.'fffff", "HH':'mm':'ss'.'ffffff", "HH':'mm':'ss'.'fffffff" + }; + + #endregion + + #region Character definitions + + public const char ARRAY_END_SYMBOL = ']'; + public const char ITEM_SEPARATOR = ','; + public const char ARRAY_START_SYMBOL = '['; + public const char BASIC_STRING_SYMBOL = '\"'; + public const char COMMENT_SYMBOL = '#'; + public const char ESCAPE_SYMBOL = '\\'; + public const char KEY_VALUE_SEPARATOR = '='; + public const char NEWLINE_CARRIAGE_RETURN_CHARACTER = '\r'; + public const char NEWLINE_CHARACTER = '\n'; + public const char SUBKEY_SEPARATOR = '.'; + public const char TABLE_END_SYMBOL = ']'; + public const char TABLE_START_SYMBOL = '['; + public const char INLINE_TABLE_START_SYMBOL = '{'; + public const char INLINE_TABLE_END_SYMBOL = '}'; + public const char LITERAL_STRING_SYMBOL = '\''; + public const char INT_NUMBER_SEPARATOR = '_'; + + public static readonly char[] NewLineCharacters = { NEWLINE_CHARACTER, NEWLINE_CARRIAGE_RETURN_CHARACTER }; + + public static bool IsQuoted(char c) => c is BASIC_STRING_SYMBOL or LITERAL_STRING_SYMBOL; + + public static bool IsWhiteSpace(char c) => c is ' ' or '\t'; + + public static bool IsNewLine(char c) => c is NEWLINE_CHARACTER or NEWLINE_CARRIAGE_RETURN_CHARACTER; + + public static bool IsLineBreak(char c) => c == NEWLINE_CHARACTER; + + public static bool IsEmptySpace(char c) => IsWhiteSpace(c) || IsNewLine(c); + + public static bool IsBareKey(char c) => + c is >= 'A' and <= 'Z' or >= 'a' and <= 'z' or >= '0' and <= '9' or '_' or '-'; + + public static bool MustBeEscaped(char c, bool allowNewLines = false) + { + var result = c is (>= '\u0000' and <= '\u0008') or '\u000b' or '\u000c' or (>= '\u000e' and <= '\u001f') or '\u007f'; + if (!allowNewLines) + result |= c is >= '\u000a' and <= '\u000e'; + return result; + } + + public static bool IsValueSeparator(char c) => + c is ITEM_SEPARATOR or ARRAY_END_SYMBOL or INLINE_TABLE_END_SYMBOL; + + #endregion + } + + internal static class StringUtils + { + public static string AsKey(this string key) + { + var quote = key == string.Empty || key.Any(c => !TomlSyntax.IsBareKey(c)); + return !quote ? key : $"{TomlSyntax.BASIC_STRING_SYMBOL}{key.Escape()}{TomlSyntax.BASIC_STRING_SYMBOL}"; + } + + public static string Join(this string self, IEnumerable subItems) + { + var sb = new StringBuilder(); + var first = true; + + foreach (var subItem in subItems) + { + if (!first) sb.Append(self); + first = false; + sb.Append(subItem); + } + + return sb.ToString(); + } + + public delegate bool TryDateParseDelegate(string s, string format, IFormatProvider ci, DateTimeStyles dts, out T dt); + + public static bool TryParseDateTime(string s, + string[] formats, + DateTimeStyles styles, + TryDateParseDelegate parser, + out T dateTime, + out int parsedFormat) + { + parsedFormat = 0; + dateTime = default; + for (var i = 0; i < formats.Length; i++) + { + var format = formats[i]; + if (!parser(s, format, CultureInfo.InvariantCulture, styles, out dateTime)) continue; + parsedFormat = i; + return true; + } + + return false; + } + + public static void AsComment(this string self, TextWriter tw) + { + foreach (var line in self.Split(TomlSyntax.NEWLINE_CHARACTER)) + tw.WriteLine($"{TomlSyntax.COMMENT_SYMBOL} {line.Trim()}"); + } + + public static string RemoveAll(this string txt, char toRemove) + { + var sb = new StringBuilder(txt.Length); + foreach (var c in txt.Where(c => c != toRemove)) + sb.Append(c); + return sb.ToString(); + } + + public static string Escape(this string txt, bool escapeNewlines = true) + { + var stringBuilder = new StringBuilder(txt.Length + 2); + for (var i = 0; i < txt.Length; i++) + { + var c = txt[i]; + + static string CodePoint(string txt, ref int i, char c) => char.IsSurrogatePair(txt, i) + ? $"\\U{char.ConvertToUtf32(txt, i++):X8}" + : $"\\u{(ushort)c:X4}"; + + stringBuilder.Append(c switch + { + '\b' => @"\b", + '\t' => @"\t", + '\n' when escapeNewlines => @"\n", + '\f' => @"\f", + '\r' when escapeNewlines => @"\r", + '\\' => @"\\", + '\"' => @"\""", + var _ when TomlSyntax.MustBeEscaped(c, !escapeNewlines) || TOML.ForceASCII && c > sbyte.MaxValue => + CodePoint(txt, ref i, c), + var _ => c + }); + } + + return stringBuilder.ToString(); + } + + public static bool TryUnescape(this string txt, out string unescaped, out Exception exception) + { + try + { + exception = null; + unescaped = txt.Unescape(); + return true; + } + catch (Exception e) + { + exception = e; + unescaped = null; + return false; + } + } + + public static string Unescape(this string txt) + { + if (string.IsNullOrEmpty(txt)) return txt; + var stringBuilder = new StringBuilder(txt.Length); + for (var i = 0; i < txt.Length;) + { + var num = txt.IndexOf('\\', i); + var next = num + 1; + if (num < 0 || num == txt.Length - 1) num = txt.Length; + stringBuilder.Append(txt, i, num - i); + if (num >= txt.Length) break; + var c = txt[next]; + + static string CodePoint(int next, string txt, ref int num, int size) + { + if (next + size >= txt.Length) throw new Exception("Undefined escape sequence!"); + num += size; + return char.ConvertFromUtf32(Convert.ToInt32(txt.Substring(next + 1, size), 16)); + } + + stringBuilder.Append(c switch + { + 'b' => "\b", + 't' => "\t", + 'n' => "\n", + 'f' => "\f", + 'r' => "\r", + '\'' => "\'", + '\"' => "\"", + '\\' => "\\", + 'u' => CodePoint(next, txt, ref num, 4), + 'U' => CodePoint(next, txt, ref num, 8), + var _ => throw new Exception("Undefined escape sequence!") + }); + i = num + 2; + } + + return stringBuilder.ToString(); + } + } + + #endregion +} diff --git a/Packages/MCPForUnity/Editor/External/Tommy.cs.meta b/Packages/MCPForUnity/Editor/External/Tommy.cs.meta new file mode 100644 index 00000000..efcb8ff8 --- /dev/null +++ b/Packages/MCPForUnity/Editor/External/Tommy.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ea652131dcdaa44ca8cb35cd1191be3f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Helpers.meta b/Packages/MCPForUnity/Editor/Helpers.meta new file mode 100644 index 00000000..c57a3420 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 94cb070dc5e15024da86150b27699ca0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Helpers/AssetPathUtility.cs b/Packages/MCPForUnity/Editor/Helpers/AssetPathUtility.cs new file mode 100644 index 00000000..69c017ef --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/AssetPathUtility.cs @@ -0,0 +1,430 @@ +using System; +using System.IO; +using MCPForUnity.Editor.Constants; +using MCPForUnity.Editor.Services; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEngine; +using PackageInfo = UnityEditor.PackageManager.PackageInfo; + +namespace MCPForUnity.Editor.Helpers +{ + /// + /// Provides common utility methods for working with Unity asset paths. + /// + public static class AssetPathUtility + { + /// + /// Normalizes path separators to forward slashes without modifying the path structure. + /// Use this for non-asset paths (e.g., file system paths, relative directories). + /// + public static string NormalizeSeparators(string path) + { + if (string.IsNullOrEmpty(path)) + return path; + return path.Replace('\\', '/'); + } + + /// + /// Normalizes a Unity asset path by ensuring forward slashes are used and that it is rooted under "Assets/". + /// Also protects against path traversal attacks using "../" sequences. + /// + public static string SanitizeAssetPath(string path) + { + if (string.IsNullOrEmpty(path)) + { + return path; + } + + path = NormalizeSeparators(path); + + // Check for path traversal sequences + if (path.Contains("..")) + { + McpLog.Warn($"[AssetPathUtility] Path contains potential traversal sequence: '{path}'"); + return null; + } + + // Ensure path starts with Assets/ + if (!path.StartsWith("Assets/", StringComparison.OrdinalIgnoreCase)) + { + return "Assets/" + path.TrimStart('/'); + } + + return path; + } + + /// + /// Checks if a given asset path is valid and safe (no traversal, within Assets folder). + /// + /// True if the path is valid, false otherwise. + public static bool IsValidAssetPath(string path) + { + if (string.IsNullOrEmpty(path)) + { + return false; + } + + // Normalize for comparison + string normalized = NormalizeSeparators(path); + + // Must start with Assets/ + if (!normalized.StartsWith("Assets/", StringComparison.OrdinalIgnoreCase)) + { + return false; + } + + // Must not contain traversal sequences + if (normalized.Contains("..")) + { + return false; + } + + // Must not contain invalid path characters + char[] invalidChars = { ':', '*', '?', '"', '<', '>', '|' }; + foreach (char c in invalidChars) + { + if (normalized.IndexOf(c) >= 0) + { + return false; + } + } + + return true; + } + + /// + /// Gets the MCP for Unity package root path. + /// Works for registry Package Manager, local Package Manager, and Asset Store installations. + /// + /// The package root path (virtual for PM, absolute for Asset Store), or null if not found + public static string GetMcpPackageRootPath() + { + try + { + // Try Package Manager first (registry and local installs) + var packageInfo = PackageInfo.FindForAssembly(typeof(AssetPathUtility).Assembly); + if (packageInfo != null && !string.IsNullOrEmpty(packageInfo.assetPath)) + { + return packageInfo.assetPath; + } + + // Fallback to AssetDatabase for Asset Store installs (Assets/MCPForUnity) + string[] guids = AssetDatabase.FindAssets($"t:Script {nameof(AssetPathUtility)}"); + + if (guids.Length == 0) + { + McpLog.Warn("Could not find AssetPathUtility script in AssetDatabase"); + return null; + } + + string scriptPath = AssetDatabase.GUIDToAssetPath(guids[0]); + + // Script is at: {packageRoot}/Editor/Helpers/AssetPathUtility.cs + // Extract {packageRoot} + int editorIndex = scriptPath.IndexOf("/Editor/", StringComparison.Ordinal); + + if (editorIndex >= 0) + { + return scriptPath.Substring(0, editorIndex); + } + + McpLog.Warn($"Could not determine package root from script path: {scriptPath}"); + return null; + } + catch (Exception ex) + { + McpLog.Error($"Failed to get package root path: {ex.Message}"); + return null; + } + } + + /// + /// Reads and parses the package.json file for MCP for Unity. + /// Handles both Package Manager (registry/local) and Asset Store installations. + /// + /// JObject containing package.json data, or null if not found or parse failed + public static JObject GetPackageJson() + { + try + { + string packageRoot = GetMcpPackageRootPath(); + if (string.IsNullOrEmpty(packageRoot)) + { + return null; + } + + string packageJsonPath = Path.Combine(packageRoot, "package.json"); + + // Convert virtual asset path to file system path + if (packageRoot.StartsWith("Packages/", StringComparison.OrdinalIgnoreCase)) + { + // Package Manager install - must use PackageInfo.resolvedPath + // Virtual paths like "Packages/..." don't work with File.Exists() + // Registry packages live in Library/PackageCache/package@version/ + var packageInfo = PackageInfo.FindForAssembly(typeof(AssetPathUtility).Assembly); + if (packageInfo != null && !string.IsNullOrEmpty(packageInfo.resolvedPath)) + { + packageJsonPath = Path.Combine(packageInfo.resolvedPath, "package.json"); + } + else + { + McpLog.Warn("Could not resolve Package Manager path for package.json"); + return null; + } + } + else if (packageRoot.StartsWith("Assets/", StringComparison.OrdinalIgnoreCase)) + { + // Asset Store install - convert to absolute file system path + // Application.dataPath is the absolute path to the Assets folder + string relativePath = packageRoot.Substring("Assets/".Length); + packageJsonPath = Path.Combine(Application.dataPath, relativePath, "package.json"); + } + + if (!File.Exists(packageJsonPath)) + { + McpLog.Warn($"package.json not found at: {packageJsonPath}"); + return null; + } + + string json = File.ReadAllText(packageJsonPath); + return JObject.Parse(json); + } + catch (Exception ex) + { + McpLog.Warn($"Failed to read or parse package.json: {ex.Message}"); + return null; + } + } + + /// + /// Gets the package source for the MCP server (used with uvx --from). + /// Checks for EditorPrefs override first (supports git URLs, file:// paths, etc.), + /// then falls back to PyPI package reference. + /// + /// Package source string for uvx --from argument + public static string GetMcpServerPackageSource() + { + // Check for override first (supports git URLs, file:// paths, local paths) + string sourceOverride = EditorPrefs.GetString(EditorPrefKeys.GitUrlOverride, ""); + if (!string.IsNullOrEmpty(sourceOverride)) + { + return sourceOverride; + } + + // Default to PyPI package (avoids Windows long path issues with git clone) + string version = GetPackageVersion(); + if (version == "unknown") + { + // Fall back to latest PyPI version so configs remain valid in test scenarios + return "mcpforunityserver"; + } + + return $"mcpforunityserver=={version}"; + } + + /// + /// Deprecated: Use GetMcpServerPackageSource() instead. + /// Kept for backwards compatibility. + /// + [System.Obsolete("Use GetMcpServerPackageSource() instead")] + public static string GetMcpServerGitUrl() => GetMcpServerPackageSource(); + + /// + /// Gets structured uvx command parts for different client configurations + /// + /// Tuple containing (uvxPath, fromUrl, packageName) + public static (string uvxPath, string fromUrl, string packageName) GetUvxCommandParts() + { + string uvxPath = MCPServiceLocator.Paths.GetUvxPath(); + string fromUrl = GetMcpServerPackageSource(); + string packageName = "mcp-for-unity"; + + return (uvxPath, fromUrl, packageName); + } + + /// + /// Builds the uvx package source arguments for the MCP server. + /// Handles beta server mode (prerelease from PyPI) vs standard mode (pinned version or override). + /// Centralizes the prerelease logic to avoid duplication between HTTP and stdio transports. + /// Priority: explicit fromUrl override > beta server mode > default package. + /// + /// Whether to quote the --from path (needed for command-line strings, not for arg lists) + /// The package source arguments (e.g., "--prerelease explicit --from mcpforunityserver>=0.0.0a0") + public static string GetBetaServerFromArgs(bool quoteFromPath = false) + { + // Explicit override (local path, git URL, etc.) always wins + string fromUrl = GetMcpServerPackageSource(); + string overrideUrl = EditorPrefs.GetString(EditorPrefKeys.GitUrlOverride, ""); + if (!string.IsNullOrEmpty(overrideUrl)) + { + return $"--from {fromUrl}"; + } + + // Beta server mode: use prerelease from PyPI + bool useBetaServer = EditorPrefs.GetBool(EditorPrefKeys.UseBetaServer, true); + if (useBetaServer) + { + // Use --prerelease explicit with version specifier to only get prereleases of our package, + // not of dependencies (which can be broken on PyPI). + string fromValue = quoteFromPath ? "\"mcpforunityserver>=0.0.0a0\"" : "mcpforunityserver>=0.0.0a0"; + return $"--prerelease explicit --from {fromValue}"; + } + + // Standard mode: use pinned version from package.json + if (!string.IsNullOrEmpty(fromUrl)) + { + return $"--from {fromUrl}"; + } + + return string.Empty; + } + + /// + /// Builds the uvx package source arguments as a list (for JSON config builders). + /// Priority: explicit fromUrl override > beta server mode > default package. + /// + /// List of arguments to add to uvx command + public static System.Collections.Generic.IList GetBetaServerFromArgsList() + { + var args = new System.Collections.Generic.List(); + + // Explicit override (local path, git URL, etc.) always wins + string fromUrl = GetMcpServerPackageSource(); + string overrideUrl = EditorPrefs.GetString(EditorPrefKeys.GitUrlOverride, ""); + if (!string.IsNullOrEmpty(overrideUrl)) + { + args.Add("--from"); + args.Add(fromUrl); + return args; + } + + // Beta server mode: use prerelease from PyPI + bool useBetaServer = EditorPrefs.GetBool(EditorPrefKeys.UseBetaServer, true); + if (useBetaServer) + { + args.Add("--prerelease"); + args.Add("explicit"); + args.Add("--from"); + args.Add("mcpforunityserver>=0.0.0a0"); + return args; + } + + // Standard mode: use pinned version from package.json + if (!string.IsNullOrEmpty(fromUrl)) + { + args.Add("--from"); + args.Add(fromUrl); + } + + return args; + } + + /// + /// Determines whether uvx should use --no-cache --refresh flags. + /// Returns true if DevModeForceServerRefresh is enabled OR if the server URL is a local path. + /// Local paths (file:// or absolute) always need fresh builds to avoid stale uvx cache. + /// Note: --reinstall is not supported by uvx and will cause a warning. + /// + public static bool ShouldForceUvxRefresh() + { + bool devForceRefresh = false; + try { devForceRefresh = EditorPrefs.GetBool(EditorPrefKeys.DevModeForceServerRefresh, false); } catch { } + + if (devForceRefresh) + return true; + + // Auto-enable force refresh when using a local path override. + return IsLocalServerPath(); + } + + /// + /// Returns true if the server URL is a local path (file:// or absolute path). + /// + public static bool IsLocalServerPath() + { + string fromUrl = GetMcpServerPackageSource(); + if (string.IsNullOrEmpty(fromUrl)) + return false; + + // Check for file:// protocol or absolute local path + return fromUrl.StartsWith("file://", StringComparison.OrdinalIgnoreCase) || + System.IO.Path.IsPathRooted(fromUrl); + } + + /// + /// Gets the local server path if GitUrlOverride points to a local directory. + /// Returns null if not using a local path. + /// + public static string GetLocalServerPath() + { + if (!IsLocalServerPath()) + return null; + + string fromUrl = GetMcpServerPackageSource(); + if (fromUrl.StartsWith("file://", StringComparison.OrdinalIgnoreCase)) + { + // Strip file:// prefix + fromUrl = fromUrl.Substring(7); + } + + return fromUrl; + } + + /// + /// Cleans stale Python build artifacts from the local server path. + /// This is necessary because Python's build system doesn't remove deleted files from build/, + /// and the auto-discovery mechanism will pick up old .py files causing ghost resources/tools. + /// + /// True if cleaning was performed, false if not applicable or failed. + public static bool CleanLocalServerBuildArtifacts() + { + string localPath = GetLocalServerPath(); + if (string.IsNullOrEmpty(localPath)) + return false; + + // Clean the build/ directory which can contain stale .py files + string buildPath = System.IO.Path.Combine(localPath, "build"); + if (System.IO.Directory.Exists(buildPath)) + { + try + { + System.IO.Directory.Delete(buildPath, recursive: true); + McpLog.Info($"Cleaned stale build artifacts from: {buildPath}"); + return true; + } + catch (Exception ex) + { + McpLog.Warn($"Failed to clean build artifacts: {ex.Message}"); + return false; + } + } + + return false; + } + + /// + /// Gets the package version from package.json + /// + /// Version string, or "unknown" if not found + public static string GetPackageVersion() + { + try + { + var packageJson = GetPackageJson(); + if (packageJson == null) + { + return "unknown"; + } + + string version = packageJson["version"]?.ToString(); + return string.IsNullOrEmpty(version) ? "unknown" : version; + } + catch (Exception ex) + { + McpLog.Warn($"Failed to get package version: {ex.Message}"); + return "unknown"; + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Helpers/AssetPathUtility.cs.meta b/Packages/MCPForUnity/Editor/Helpers/AssetPathUtility.cs.meta new file mode 100644 index 00000000..bd6a0c70 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/AssetPathUtility.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1d42f5b5ea5d4d43ad1a771e14bda2a0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Helpers/CodexConfigHelper.cs b/Packages/MCPForUnity/Editor/Helpers/CodexConfigHelper.cs new file mode 100644 index 00000000..a68d47ed --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/CodexConfigHelper.cs @@ -0,0 +1,319 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using MCPForUnity.Editor.Constants; +using MCPForUnity.Editor.Services; +using MCPForUnity.External.Tommy; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.Helpers +{ + /// + /// Codex CLI specific configuration helpers. Handles TOML snippet + /// generation and lightweight parsing so Codex can join the auto-setup + /// flow alongside JSON-based clients. + /// + public static class CodexConfigHelper + { + private static void AddDevModeArgs(TomlArray args) + { + if (args == null) return; + // Use central helper that checks both DevModeForceServerRefresh AND local path detection. + // Note: --reinstall is not supported by uvx, use --no-cache --refresh instead + if (!AssetPathUtility.ShouldForceUvxRefresh()) return; + args.Add(new TomlString { Value = "--no-cache" }); + args.Add(new TomlString { Value = "--refresh" }); + } + + public static string BuildCodexServerBlock(string uvPath) + { + var table = new TomlTable(); + var mcpServers = new TomlTable(); + var unityMCP = new TomlTable(); + + // Check transport preference + bool useHttpTransport = EditorPrefs.GetBool(MCPForUnity.Editor.Constants.EditorPrefKeys.UseHttpTransport, true); + + if (useHttpTransport) + { + // HTTP mode: Use url field + string httpUrl = HttpEndpointUtility.GetMcpRpcUrl(); + unityMCP["url"] = new TomlString { Value = httpUrl }; + + // Enable Codex's Rust MCP client for HTTP/SSE transport + EnsureRmcpClientFeature(table); + } + else + { + // Stdio mode: Use command and args + var (uvxPath, _, packageName) = AssetPathUtility.GetUvxCommandParts(); + + unityMCP["command"] = uvxPath; + + var args = new TomlArray(); + AddDevModeArgs(args); + // Use centralized helper for beta server / prerelease args + foreach (var arg in AssetPathUtility.GetBetaServerFromArgsList()) + { + args.Add(new TomlString { Value = arg }); + } + args.Add(new TomlString { Value = packageName }); + args.Add(new TomlString { Value = "--transport" }); + args.Add(new TomlString { Value = "stdio" }); + + unityMCP["args"] = args; + + // Add Windows-specific environment configuration for stdio mode + var platformService = MCPServiceLocator.Platform; + if (platformService.IsWindows()) + { + var envTable = new TomlTable { IsInline = true }; + envTable["SystemRoot"] = new TomlString { Value = platformService.GetSystemRoot() }; + unityMCP["env"] = envTable; + } + + // Allow extra time for uvx to download packages on first run + unityMCP["startup_timeout_sec"] = new TomlInteger { Value = 60 }; + } + + mcpServers["unityMCP"] = unityMCP; + table["mcp_servers"] = mcpServers; + + using var writer = new StringWriter(); + table.WriteTo(writer); + return writer.ToString(); + } + + public static string UpsertCodexServerBlock(string existingToml, string uvPath) + { + // Parse existing TOML or create new root table + var root = TryParseToml(existingToml) ?? new TomlTable(); + + bool useHttpTransport = EditorPrefs.GetBool(MCPForUnity.Editor.Constants.EditorPrefKeys.UseHttpTransport, true); + + // Ensure mcp_servers table exists + if (!root.TryGetNode("mcp_servers", out var mcpServersNode) || !(mcpServersNode is TomlTable)) + { + root["mcp_servers"] = new TomlTable(); + } + var mcpServers = root["mcp_servers"] as TomlTable; + + // Create or update unityMCP table + mcpServers["unityMCP"] = CreateUnityMcpTable(uvPath); + + if (useHttpTransport) + { + EnsureRmcpClientFeature(root); + } + + // Serialize back to TOML + using var writer = new StringWriter(); + root.WriteTo(writer); + return writer.ToString(); + } + + public static bool TryParseCodexServer(string toml, out string command, out string[] args) + { + return TryParseCodexServer(toml, out command, out args, out _); + } + + public static bool TryParseCodexServer(string toml, out string command, out string[] args, out string url) + { + command = null; + args = null; + url = null; + + var root = TryParseToml(toml); + if (root == null) return false; + + if (!TryGetTable(root, "mcp_servers", out var servers) + && !TryGetTable(root, "mcpServers", out servers)) + { + return false; + } + + if (!TryGetTable(servers, "unityMCP", out var unity)) + { + return false; + } + + // Check for HTTP mode (url field) + url = GetTomlString(unity, "url"); + if (!string.IsNullOrEmpty(url)) + { + // HTTP mode detected - return true with url + return true; + } + + // Check for stdio mode (command + args) + command = GetTomlString(unity, "command"); + args = GetTomlStringArray(unity, "args"); + + return !string.IsNullOrEmpty(command) && args != null; + } + + /// + /// Safely parses TOML string, returning null on failure + /// + private static TomlTable TryParseToml(string toml) + { + if (string.IsNullOrWhiteSpace(toml)) return null; + + try + { + using var reader = new StringReader(toml); + return TOML.Parse(reader); + } + catch (TomlParseException) + { + return null; + } + catch (TomlSyntaxException) + { + return null; + } + catch (FormatException) + { + return null; + } + } + + /// + /// Creates a TomlTable for the unityMCP server configuration + /// + /// Path to uv executable (used as fallback if uvx is not available) + private static TomlTable CreateUnityMcpTable(string uvPath) + { + var unityMCP = new TomlTable(); + + // Check transport preference + bool useHttpTransport = EditorPrefs.GetBool(MCPForUnity.Editor.Constants.EditorPrefKeys.UseHttpTransport, true); + + if (useHttpTransport) + { + // HTTP mode: Use url field + string httpUrl = HttpEndpointUtility.GetMcpRpcUrl(); + unityMCP["url"] = new TomlString { Value = httpUrl }; + } + else + { + // Stdio mode: Use command and args + var (uvxPath, _, packageName) = AssetPathUtility.GetUvxCommandParts(); + + unityMCP["command"] = new TomlString { Value = uvxPath }; + + var argsArray = new TomlArray(); + AddDevModeArgs(argsArray); + // Use centralized helper for beta server / prerelease args + foreach (var arg in AssetPathUtility.GetBetaServerFromArgsList()) + { + argsArray.Add(new TomlString { Value = arg }); + } + argsArray.Add(new TomlString { Value = packageName }); + argsArray.Add(new TomlString { Value = "--transport" }); + argsArray.Add(new TomlString { Value = "stdio" }); + unityMCP["args"] = argsArray; + + // Add Windows-specific environment configuration for stdio mode + var platformService = MCPServiceLocator.Platform; + if (platformService.IsWindows()) + { + var envTable = new TomlTable { IsInline = true }; + envTable["SystemRoot"] = new TomlString { Value = platformService.GetSystemRoot() }; + unityMCP["env"] = envTable; + } + + // Allow extra time for uvx to download packages on first run + unityMCP["startup_timeout_sec"] = new TomlInteger { Value = 60 }; + } + + return unityMCP; + } + + /// + /// Ensures the features table contains the rmcp_client flag for HTTP/SSE transport. + /// + private static void EnsureRmcpClientFeature(TomlTable root) + { + if (root == null) return; + + if (!root.TryGetNode("features", out var featuresNode) || featuresNode is not TomlTable features) + { + features = new TomlTable(); + root["features"] = features; + } + + features["rmcp_client"] = new TomlBoolean { Value = true }; + } + + private static bool TryGetTable(TomlTable parent, string key, out TomlTable table) + { + table = null; + if (parent == null) return false; + + if (parent.TryGetNode(key, out var node)) + { + if (node is TomlTable tbl) + { + table = tbl; + return true; + } + + if (node is TomlArray array) + { + var firstTable = array.Children.OfType().FirstOrDefault(); + if (firstTable != null) + { + table = firstTable; + return true; + } + } + } + + return false; + } + + private static string GetTomlString(TomlTable table, string key) + { + if (table != null && table.TryGetNode(key, out var node)) + { + if (node is TomlString str) return str.Value; + if (node.HasValue) return node.ToString(); + } + return null; + } + + private static string[] GetTomlStringArray(TomlTable table, string key) + { + if (table == null) return null; + if (!table.TryGetNode(key, out var node)) return null; + + if (node is TomlArray array) + { + List values = new List(); + foreach (TomlNode element in array.Children) + { + if (element is TomlString str) + { + values.Add(str.Value); + } + else if (element.HasValue) + { + values.Add(element.ToString()); + } + } + + return values.Count > 0 ? values.ToArray() : Array.Empty(); + } + + if (node is TomlString single) + { + return new[] { single.Value }; + } + + return null; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Helpers/CodexConfigHelper.cs.meta b/Packages/MCPForUnity/Editor/Helpers/CodexConfigHelper.cs.meta new file mode 100644 index 00000000..581a4474 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/CodexConfigHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b3e68082ffc0b4cd39d3747673a4cc22 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Helpers/ComponentOps.cs b/Packages/MCPForUnity/Editor/Helpers/ComponentOps.cs new file mode 100644 index 00000000..90f1e7ad --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/ComponentOps.cs @@ -0,0 +1,349 @@ +using System; +using System.Collections.Generic; +using System.Reflection; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.Helpers +{ + /// + /// Low-level component operations extracted from ManageGameObject and ManageComponents. + /// Provides pure C# operations without JSON parsing or response formatting. + /// + public static class ComponentOps + { + /// + /// Adds a component to a GameObject with Undo support. + /// + /// The target GameObject + /// The type of component to add + /// Error message if operation fails + /// The added component, or null if failed + public static Component AddComponent(GameObject target, Type componentType, out string error) + { + error = null; + + if (target == null) + { + error = "Target GameObject is null."; + return null; + } + + if (componentType == null || !typeof(Component).IsAssignableFrom(componentType)) + { + error = $"Type '{componentType?.Name ?? "null"}' is not a valid Component type."; + return null; + } + + // Prevent adding duplicate Transform + if (componentType == typeof(Transform)) + { + error = "Cannot add another Transform component."; + return null; + } + + // Check for 2D/3D physics conflicts + string conflictError = CheckPhysicsConflict(target, componentType); + if (conflictError != null) + { + error = conflictError; + return null; + } + + try + { + Component newComponent = Undo.AddComponent(target, componentType); + if (newComponent == null) + { + error = $"Failed to add component '{componentType.Name}' to '{target.name}'. It might be disallowed."; + return null; + } + + // Apply default values for specific component types + ApplyDefaultValues(newComponent); + + return newComponent; + } + catch (Exception ex) + { + error = $"Error adding component '{componentType.Name}': {ex.Message}"; + return null; + } + } + + /// + /// Removes a component from a GameObject with Undo support. + /// + /// The target GameObject + /// The type of component to remove + /// Error message if operation fails + /// True if component was removed successfully + public static bool RemoveComponent(GameObject target, Type componentType, out string error) + { + error = null; + + if (target == null) + { + error = "Target GameObject is null."; + return false; + } + + if (componentType == null) + { + error = "Component type is null."; + return false; + } + + // Prevent removing Transform + if (componentType == typeof(Transform)) + { + error = "Cannot remove Transform component."; + return false; + } + + Component component = target.GetComponent(componentType); + if (component == null) + { + error = $"Component '{componentType.Name}' not found on '{target.name}'."; + return false; + } + + try + { + Undo.DestroyObjectImmediate(component); + return true; + } + catch (Exception ex) + { + error = $"Error removing component '{componentType.Name}': {ex.Message}"; + return false; + } + } + + /// + /// Sets a property value on a component using reflection. + /// + /// The target component + /// The property or field name + /// The value to set (JToken) + /// Error message if operation fails + /// True if property was set successfully + public static bool SetProperty(Component component, string propertyName, JToken value, out string error) + { + error = null; + + if (component == null) + { + error = "Component is null."; + return false; + } + + if (string.IsNullOrEmpty(propertyName)) + { + error = "Property name is null or empty."; + return false; + } + + Type type = component.GetType(); + BindingFlags flags = BindingFlags.Public | BindingFlags.Instance | BindingFlags.IgnoreCase; + string normalizedName = ParamCoercion.NormalizePropertyName(propertyName); + + // Try property first - check both original and normalized names for backwards compatibility + PropertyInfo propInfo = type.GetProperty(propertyName, flags) + ?? type.GetProperty(normalizedName, flags); + if (propInfo != null && propInfo.CanWrite) + { + try + { + object convertedValue = PropertyConversion.ConvertToType(value, propInfo.PropertyType); + // Detect conversion failure: null result when input wasn't null + if (convertedValue == null && value.Type != JTokenType.Null) + { + error = $"Failed to convert value for property '{propertyName}' to type '{propInfo.PropertyType.Name}'."; + return false; + } + propInfo.SetValue(component, convertedValue); + return true; + } + catch (Exception ex) + { + error = $"Failed to set property '{propertyName}': {ex.Message}"; + return false; + } + } + + // Try field - check both original and normalized names for backwards compatibility + FieldInfo fieldInfo = type.GetField(propertyName, flags) + ?? type.GetField(normalizedName, flags); + if (fieldInfo != null && !fieldInfo.IsInitOnly) + { + try + { + object convertedValue = PropertyConversion.ConvertToType(value, fieldInfo.FieldType); + // Detect conversion failure: null result when input wasn't null + if (convertedValue == null && value.Type != JTokenType.Null) + { + error = $"Failed to convert value for field '{propertyName}' to type '{fieldInfo.FieldType.Name}'."; + return false; + } + fieldInfo.SetValue(component, convertedValue); + return true; + } + catch (Exception ex) + { + error = $"Failed to set field '{propertyName}': {ex.Message}"; + return false; + } + } + + // Try non-public serialized fields - traverse inheritance hierarchy + // Type.GetField() with NonPublic only finds fields declared directly on that type, + // so we need to walk up the inheritance chain manually + fieldInfo = FindSerializedFieldInHierarchy(type, propertyName) + ?? FindSerializedFieldInHierarchy(type, normalizedName); + if (fieldInfo != null) + { + try + { + object convertedValue = PropertyConversion.ConvertToType(value, fieldInfo.FieldType); + // Detect conversion failure: null result when input wasn't null + if (convertedValue == null && value.Type != JTokenType.Null) + { + error = $"Failed to convert value for serialized field '{propertyName}' to type '{fieldInfo.FieldType.Name}'."; + return false; + } + fieldInfo.SetValue(component, convertedValue); + return true; + } + catch (Exception ex) + { + error = $"Failed to set serialized field '{propertyName}': {ex.Message}"; + return false; + } + } + + error = $"Property or field '{propertyName}' not found on component '{type.Name}'."; + return false; + } + + /// + /// Gets all public properties and fields from a component type. + /// + public static List GetAccessibleMembers(Type componentType) + { + var members = new List(); + if (componentType == null) return members; + + BindingFlags flags = BindingFlags.Public | BindingFlags.Instance; + + foreach (var prop in componentType.GetProperties(flags)) + { + if (prop.CanWrite && prop.GetSetMethod() != null) + { + members.Add(prop.Name); + } + } + + foreach (var field in componentType.GetFields(flags)) + { + if (!field.IsInitOnly) + { + members.Add(field.Name); + } + } + + // Include private [SerializeField] fields - traverse inheritance hierarchy + // Type.GetFields with NonPublic only returns fields declared directly on that type, + // so we need to walk up the chain to find inherited private serialized fields + var seenFieldNames = new HashSet(members); // Avoid duplicates with public fields + Type currentType = componentType; + while (currentType != null && currentType != typeof(object)) + { + foreach (var field in currentType.GetFields(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly)) + { + if (field.GetCustomAttribute() != null && !seenFieldNames.Contains(field.Name)) + { + members.Add(field.Name); + seenFieldNames.Add(field.Name); + } + } + currentType = currentType.BaseType; + } + + members.Sort(); + return members; + } + + // --- Private Helpers --- + + /// + /// Searches for a non-public [SerializeField] field through the entire inheritance hierarchy. + /// Type.GetField() with NonPublic only returns fields declared directly on that type, + /// so this method walks up the chain to find inherited private serialized fields. + /// + private static FieldInfo FindSerializedFieldInHierarchy(Type type, string fieldName) + { + if (type == null || string.IsNullOrEmpty(fieldName)) + return null; + + BindingFlags privateFlags = BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly; + Type currentType = type; + + // Walk up the inheritance chain + while (currentType != null && currentType != typeof(object)) + { + // Search for the field on this specific type (case-insensitive) + foreach (var field in currentType.GetFields(privateFlags)) + { + if (string.Equals(field.Name, fieldName, StringComparison.OrdinalIgnoreCase) && + field.GetCustomAttribute() != null) + { + return field; + } + } + currentType = currentType.BaseType; + } + + return null; + } + + private static string CheckPhysicsConflict(GameObject target, Type componentType) + { + bool isAdding2DPhysics = + typeof(Rigidbody2D).IsAssignableFrom(componentType) || + typeof(Collider2D).IsAssignableFrom(componentType); + + bool isAdding3DPhysics = + typeof(Rigidbody).IsAssignableFrom(componentType) || + typeof(Collider).IsAssignableFrom(componentType); + + if (isAdding2DPhysics) + { + if (target.GetComponent() != null || target.GetComponent() != null) + { + return $"Cannot add 2D physics component '{componentType.Name}' because the GameObject '{target.name}' already has a 3D Rigidbody or Collider."; + } + } + else if (isAdding3DPhysics) + { + if (target.GetComponent() != null || target.GetComponent() != null) + { + return $"Cannot add 3D physics component '{componentType.Name}' because the GameObject '{target.name}' already has a 2D Rigidbody or Collider."; + } + } + + return null; + } + + private static void ApplyDefaultValues(Component component) + { + // Default newly added Lights to Directional + if (component is Light light) + { + light.type = LightType.Directional; + } + } + } +} + diff --git a/Packages/MCPForUnity/Editor/Helpers/ComponentOps.cs.meta b/Packages/MCPForUnity/Editor/Helpers/ComponentOps.cs.meta new file mode 100644 index 00000000..e8872500 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/ComponentOps.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 13dead161bc4540eeb771961df437779 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Helpers/ConfigJsonBuilder.cs b/Packages/MCPForUnity/Editor/Helpers/ConfigJsonBuilder.cs new file mode 100644 index 00000000..938d33c2 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/ConfigJsonBuilder.cs @@ -0,0 +1,194 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using MCPForUnity.Editor.Constants; +using MCPForUnity.Editor.Services; +using MCPForUnity.Editor.Models; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.Helpers +{ + public static class ConfigJsonBuilder + { + public static string BuildManualConfigJson(string uvPath, McpClient client) + { + var root = new JObject(); + bool isVSCode = client?.IsVsCodeLayout == true; + JObject container = isVSCode ? EnsureObject(root, "servers") : EnsureObject(root, "mcpServers"); + + var unity = new JObject(); + PopulateUnityNode(unity, uvPath, client, isVSCode); + + container["unityMCP"] = unity; + + return root.ToString(Formatting.Indented); + } + + public static JObject ApplyUnityServerToExistingConfig(JObject root, string uvPath, McpClient client) + { + if (root == null) root = new JObject(); + bool isVSCode = client?.IsVsCodeLayout == true; + JObject container = isVSCode ? EnsureObject(root, "servers") : EnsureObject(root, "mcpServers"); + JObject unity = container["unityMCP"] as JObject ?? new JObject(); + PopulateUnityNode(unity, uvPath, client, isVSCode); + + container["unityMCP"] = unity; + return root; + } + + /// + /// Centralized builder that applies all caveats consistently. + /// - Sets command/args with uvx and package version + /// - Ensures env exists + /// - Adds transport configuration (HTTP or stdio) + /// - Adds disabled:false for Windsurf/Kiro only when missing + /// + private static void PopulateUnityNode(JObject unity, string uvPath, McpClient client, bool isVSCode) + { + // Get transport preference (default to HTTP) + bool prefValue = EditorConfigurationCache.Instance.UseHttpTransport; + bool clientSupportsHttp = client?.SupportsHttpTransport != false; + bool useHttpTransport = clientSupportsHttp && prefValue; + string httpProperty = string.IsNullOrEmpty(client?.HttpUrlProperty) ? "url" : client.HttpUrlProperty; + var urlPropsToRemove = new HashSet(StringComparer.OrdinalIgnoreCase) { "url", "serverUrl" }; + urlPropsToRemove.Remove(httpProperty); + + if (useHttpTransport) + { + // HTTP mode: Use URL, no command + string httpUrl = HttpEndpointUtility.GetMcpRpcUrl(); + unity[httpProperty] = httpUrl; + + foreach (var prop in urlPropsToRemove) + { + if (unity[prop] != null) unity.Remove(prop); + } + + // Remove command/args if they exist from previous config + if (unity["command"] != null) unity.Remove("command"); + if (unity["args"] != null) unity.Remove("args"); + + // Only include API key header for remote-hosted mode + if (HttpEndpointUtility.IsRemoteScope()) + { + string apiKey = EditorPrefs.GetString(EditorPrefKeys.ApiKey, string.Empty); + if (!string.IsNullOrEmpty(apiKey)) + { + var headers = new JObject { [AuthConstants.ApiKeyHeader] = apiKey }; + unity["headers"] = headers; + } + else + { + if (unity["headers"] != null) unity.Remove("headers"); + } + } + else + { + // Local HTTP doesn't use API keys; remove any stale headers + if (unity["headers"] != null) unity.Remove("headers"); + } + + if (isVSCode) + { + unity["type"] = "http"; + } + // Also add type for Claude Code (uses mcpServers layout but needs type field) + else if (client?.name == "Claude Code") + { + unity["type"] = "http"; + } + } + else + { + // Stdio mode: Use uvx command + var (uvxPath, fromUrl, packageName) = AssetPathUtility.GetUvxCommandParts(); + + var toolArgs = BuildUvxArgs(fromUrl, packageName); + + unity["command"] = uvxPath; + unity["args"] = JArray.FromObject(toolArgs.ToArray()); + + // Remove url/serverUrl if they exist from previous config + if (unity["url"] != null) unity.Remove("url"); + if (unity["serverUrl"] != null) unity.Remove("serverUrl"); + + if (isVSCode) + { + unity["type"] = "stdio"; + } + } + + // Remove type for non-VSCode clients (except Claude Code which needs it) + if (!isVSCode && client?.name != "Claude Code" && unity["type"] != null) + { + unity.Remove("type"); + } + + bool requiresEnv = client?.EnsureEnvObject == true; + bool stripEnv = client?.StripEnvWhenNotRequired == true; + + if (requiresEnv) + { + if (unity["env"] == null) + { + unity["env"] = new JObject(); + } + } + else if (stripEnv && unity["env"] != null) + { + unity.Remove("env"); + } + + if (client?.DefaultUnityFields != null) + { + foreach (var kvp in client.DefaultUnityFields) + { + if (unity[kvp.Key] == null) + { + unity[kvp.Key] = kvp.Value != null ? JToken.FromObject(kvp.Value) : JValue.CreateNull(); + } + } + } + } + + private static JObject EnsureObject(JObject parent, string name) + { + if (parent[name] is JObject o) return o; + var created = new JObject(); + parent[name] = created; + return created; + } + + private static IList BuildUvxArgs(string fromUrl, string packageName) + { + // Dev mode: force a fresh install/resolution (avoids stale cached builds while iterating). + // `--no-cache` avoids reading from cache; `--refresh` ensures metadata is revalidated. + // Note: --reinstall is not supported by uvx and will cause a warning. + // Keep ordering consistent with other uvx builders: dev flags first, then --from , then package name. + var args = new List(); + + // Use central helper that checks both DevModeForceServerRefresh AND local path detection. + if (AssetPathUtility.ShouldForceUvxRefresh()) + { + args.Add("--no-cache"); + args.Add("--refresh"); + } + + // Use centralized helper for beta server / prerelease args + foreach (var arg in AssetPathUtility.GetBetaServerFromArgsList()) + { + args.Add(arg); + } + args.Add(packageName); + + args.Add("--transport"); + args.Add("stdio"); + + return args; + } + + } +} diff --git a/Packages/MCPForUnity/Editor/Helpers/ConfigJsonBuilder.cs.meta b/Packages/MCPForUnity/Editor/Helpers/ConfigJsonBuilder.cs.meta new file mode 100644 index 00000000..f574fde7 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/ConfigJsonBuilder.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5c07c3369f73943919d9e086a81d1dcc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Helpers/ExecPath.cs b/Packages/MCPForUnity/Editor/Helpers/ExecPath.cs new file mode 100644 index 00000000..3801a03a --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/ExecPath.cs @@ -0,0 +1,324 @@ +using System; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using MCPForUnity.Editor.Constants; +using UnityEditor; + +namespace MCPForUnity.Editor.Helpers +{ + internal static class ExecPath + { + private const string PrefClaude = EditorPrefKeys.ClaudeCliPathOverride; + + // Resolve Claude CLI absolute path. Pref → env → common locations → PATH. + internal static string ResolveClaude() + { + try + { + string pref = EditorPrefs.GetString(PrefClaude, string.Empty); + if (!string.IsNullOrEmpty(pref) && File.Exists(pref)) return pref; + } + catch { } + + string env = Environment.GetEnvironmentVariable("CLAUDE_CLI"); + if (!string.IsNullOrEmpty(env) && File.Exists(env)) return env; + + if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) + { + string home = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) ?? string.Empty; + string[] candidates = + { + "/opt/homebrew/bin/claude", + "/usr/local/bin/claude", + Path.Combine(home, ".local", "bin", "claude"), + }; + foreach (string c in candidates) { if (File.Exists(c)) return c; } + // Try NVM-installed claude under ~/.nvm/versions/node/*/bin/claude + string nvmClaude = ResolveClaudeFromNvm(home); + if (!string.IsNullOrEmpty(nvmClaude)) return nvmClaude; +#if UNITY_EDITOR_OSX || UNITY_EDITOR_LINUX + return Which("claude", "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin"); +#else + return null; +#endif + } + + if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) + { +#if UNITY_EDITOR_WIN + // Common npm global locations + string appData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) ?? string.Empty; + string localAppData = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) ?? string.Empty; + string[] candidates = + { + // Prefer .cmd (most reliable from non-interactive processes) + Path.Combine(appData, "npm", "claude.cmd"), + Path.Combine(localAppData, "npm", "claude.cmd"), + // Fall back to PowerShell shim if only .ps1 is present + Path.Combine(appData, "npm", "claude.ps1"), + Path.Combine(localAppData, "npm", "claude.ps1"), + }; + foreach (string c in candidates) { if (File.Exists(c)) return c; } + string fromWhere = FindInPathWindows("claude.exe") ?? FindInPathWindows("claude.cmd") ?? FindInPathWindows("claude.ps1") ?? FindInPathWindows("claude"); + if (!string.IsNullOrEmpty(fromWhere)) return fromWhere; +#endif + return null; + } + + // Linux + { + string home = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) ?? string.Empty; + string[] candidates = + { + "/usr/local/bin/claude", + "/usr/bin/claude", + Path.Combine(home, ".local", "bin", "claude"), + }; + foreach (string c in candidates) { if (File.Exists(c)) return c; } + // Try NVM-installed claude under ~/.nvm/versions/node/*/bin/claude + string nvmClaude = ResolveClaudeFromNvm(home); + if (!string.IsNullOrEmpty(nvmClaude)) return nvmClaude; +#if UNITY_EDITOR_OSX || UNITY_EDITOR_LINUX + return Which("claude", "/usr/local/bin:/usr/bin:/bin"); +#else + return null; +#endif + } + } + + // Attempt to resolve claude from NVM-managed Node installations, choosing the newest version + private static string ResolveClaudeFromNvm(string home) + { + try + { + if (string.IsNullOrEmpty(home)) return null; + string nvmNodeDir = Path.Combine(home, ".nvm", "versions", "node"); + if (!Directory.Exists(nvmNodeDir)) return null; + + string bestPath = null; + Version bestVersion = null; + foreach (string versionDir in Directory.EnumerateDirectories(nvmNodeDir)) + { + string name = Path.GetFileName(versionDir); + if (string.IsNullOrEmpty(name)) continue; + if (name.StartsWith("v", StringComparison.OrdinalIgnoreCase)) + { + // Extract numeric portion: e.g., v18.19.0-nightly -> 18.19.0 + string versionStr = name.Substring(1); + int dashIndex = versionStr.IndexOf('-'); + if (dashIndex > 0) + { + versionStr = versionStr.Substring(0, dashIndex); + } + if (Version.TryParse(versionStr, out Version parsed)) + { + string candidate = Path.Combine(versionDir, "bin", "claude"); + if (File.Exists(candidate)) + { + if (bestVersion == null || parsed > bestVersion) + { + bestVersion = parsed; + bestPath = candidate; + } + } + } + } + } + return bestPath; + } + catch { return null; } + } + + // Explicitly set the Claude CLI absolute path override in EditorPrefs + internal static void SetClaudeCliPath(string absolutePath) + { + try + { + if (!string.IsNullOrEmpty(absolutePath) && File.Exists(absolutePath)) + { + EditorPrefs.SetString(PrefClaude, absolutePath); + } + } + catch { } + } + + // Clear any previously set Claude CLI override path + internal static void ClearClaudeCliPath() + { + try + { + if (EditorPrefs.HasKey(PrefClaude)) + { + EditorPrefs.DeleteKey(PrefClaude); + } + } + catch { } + } + + internal static bool TryRun( + string file, + string args, + string workingDir, + out string stdout, + out string stderr, + int timeoutMs = 15000, + string extraPathPrepend = null) + { + stdout = string.Empty; + stderr = string.Empty; + try + { + // Handle PowerShell scripts on Windows by invoking through powershell.exe + bool isPs1 = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) && + file.EndsWith(".ps1", StringComparison.OrdinalIgnoreCase); + + var psi = new ProcessStartInfo + { + FileName = isPs1 ? "powershell.exe" : file, + Arguments = isPs1 + ? $"-NoProfile -ExecutionPolicy Bypass -File \"{file}\" {args}".Trim() + : args, + WorkingDirectory = string.IsNullOrEmpty(workingDir) ? Environment.CurrentDirectory : workingDir, + UseShellExecute = false, + RedirectStandardOutput = true, + RedirectStandardError = true, + CreateNoWindow = true, + }; + if (!string.IsNullOrEmpty(extraPathPrepend)) + { + string currentPath = Environment.GetEnvironmentVariable("PATH") ?? string.Empty; + psi.EnvironmentVariables["PATH"] = string.IsNullOrEmpty(currentPath) + ? extraPathPrepend + : (extraPathPrepend + System.IO.Path.PathSeparator + currentPath); + } + + using var process = new Process { StartInfo = psi, EnableRaisingEvents = false }; + + var sb = new StringBuilder(); + var se = new StringBuilder(); + process.OutputDataReceived += (_, e) => { if (e.Data != null) sb.AppendLine(e.Data); }; + process.ErrorDataReceived += (_, e) => { if (e.Data != null) se.AppendLine(e.Data); }; + + if (!process.Start()) return false; + + process.BeginOutputReadLine(); + process.BeginErrorReadLine(); + + if (!process.WaitForExit(timeoutMs)) + { + try { process.Kill(); } catch { } + return false; + } + + // Ensure async buffers are flushed + process.WaitForExit(); + + stdout = sb.ToString(); + stderr = se.ToString(); + return process.ExitCode == 0; + } + catch + { + return false; + } + } + + /// + /// Cross-platform path lookup. Uses 'where' on Windows, 'which' on macOS/Linux. + /// Returns the full path if found, null otherwise. + /// + internal static string FindInPath(string executable, string extraPathPrepend = null) + { +#if UNITY_EDITOR_WIN + return FindInPathWindows(executable, extraPathPrepend); +#elif UNITY_EDITOR_OSX || UNITY_EDITOR_LINUX + return Which(executable, extraPathPrepend ?? string.Empty); +#else + return null; +#endif + } + +#if UNITY_EDITOR_OSX || UNITY_EDITOR_LINUX + private static string Which(string exe, string prependPath) + { + try + { + var psi = new ProcessStartInfo("/usr/bin/which", exe) + { + UseShellExecute = false, + RedirectStandardOutput = true, + CreateNoWindow = true, + }; + string path = Environment.GetEnvironmentVariable("PATH") ?? string.Empty; + psi.EnvironmentVariables["PATH"] = string.IsNullOrEmpty(path) ? prependPath : (prependPath + Path.PathSeparator + path); + + using var p = Process.Start(psi); + if (p == null) return null; + + var so = new StringBuilder(); + p.OutputDataReceived += (_, e) => { if (e.Data != null) so.AppendLine(e.Data); }; + p.BeginOutputReadLine(); + + if (!p.WaitForExit(1500)) + { + try { p.Kill(); } catch { } + return null; + } + + p.WaitForExit(); + string output = so.ToString().Trim(); + return (!string.IsNullOrEmpty(output) && File.Exists(output)) ? output : null; + } + catch { return null; } + } +#endif + +#if UNITY_EDITOR_WIN + private static string FindInPathWindows(string exe, string extraPathPrepend = null) + { + try + { + string currentPath = Environment.GetEnvironmentVariable("PATH") ?? string.Empty; + string effectivePath = string.IsNullOrEmpty(extraPathPrepend) + ? currentPath + : (string.IsNullOrEmpty(currentPath) ? extraPathPrepend : extraPathPrepend + Path.PathSeparator + currentPath); + + var psi = new ProcessStartInfo("where", exe) + { + UseShellExecute = false, + RedirectStandardOutput = true, + RedirectStandardError = true, + CreateNoWindow = true, + }; + if (!string.IsNullOrEmpty(effectivePath)) + { + psi.EnvironmentVariables["PATH"] = effectivePath; + } + + using var p = Process.Start(psi); + if (p == null) return null; + + var so = new StringBuilder(); + p.OutputDataReceived += (_, e) => { if (e.Data != null) so.AppendLine(e.Data); }; + p.BeginOutputReadLine(); + + if (!p.WaitForExit(1500)) + { + try { p.Kill(); } catch { } + return null; + } + + p.WaitForExit(); + string first = so.ToString() + .Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries) + .FirstOrDefault(); + return (!string.IsNullOrEmpty(first) && File.Exists(first)) ? first : null; + } + catch { return null; } + } +#endif + } +} diff --git a/Packages/MCPForUnity/Editor/Helpers/ExecPath.cs.meta b/Packages/MCPForUnity/Editor/Helpers/ExecPath.cs.meta new file mode 100644 index 00000000..9e64a152 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/ExecPath.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8f2b7b3e9c3e4a0f9b2a1d4c7e6f5a12 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Helpers/GameObjectLookup.cs b/Packages/MCPForUnity/Editor/Helpers/GameObjectLookup.cs new file mode 100644 index 00000000..bd23bbd7 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/GameObjectLookup.cs @@ -0,0 +1,370 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEditor.SceneManagement; +using UnityEngine; +using UnityEngine.SceneManagement; + +namespace MCPForUnity.Editor.Helpers +{ + /// + /// Utility class for finding and looking up GameObjects in the scene. + /// Provides search functionality by name, tag, layer, component, path, and instance ID. + /// + public static class GameObjectLookup + { + /// + /// Supported search methods for finding GameObjects. + /// + public enum SearchMethod + { + ByName, + ByTag, + ByLayer, + ByComponent, + ByPath, + ById + } + + /// + /// Parses a search method string into the enum value. + /// + public static SearchMethod ParseSearchMethod(string method) + { + if (string.IsNullOrEmpty(method)) + return SearchMethod.ByName; + + return method.ToLowerInvariant() switch + { + "by_name" => SearchMethod.ByName, + "by_tag" => SearchMethod.ByTag, + "by_layer" => SearchMethod.ByLayer, + "by_component" => SearchMethod.ByComponent, + "by_path" => SearchMethod.ByPath, + "by_id" => SearchMethod.ById, + _ => SearchMethod.ByName + }; + } + + /// + /// Finds a single GameObject based on the target and search method. + /// + /// The target identifier (name, ID, path, etc.) + /// The search method to use + /// Whether to include inactive objects + /// The found GameObject or null + public static GameObject FindByTarget(JToken target, string searchMethod, bool includeInactive = false) + { + if (target == null) + return null; + + var results = SearchGameObjects(searchMethod, target.ToString(), includeInactive, 1); + return results.Count > 0 ? FindById(results[0]) : null; + } + + /// + /// Finds a GameObject by its instance ID. + /// + public static GameObject FindById(int instanceId) + { +#pragma warning disable CS0618 // Type or member is obsolete + return EditorUtility.InstanceIDToObject(instanceId) as GameObject; +#pragma warning restore CS0618 + } + + /// + /// Searches for GameObjects and returns their instance IDs. + /// + /// The search method string (by_name, by_tag, etc.) + /// The term to search for + /// Whether to include inactive objects + /// Maximum number of results to return (0 = unlimited) + /// List of instance IDs + public static List SearchGameObjects(string searchMethod, string searchTerm, bool includeInactive = false, int maxResults = 0) + { + var method = ParseSearchMethod(searchMethod); + return SearchGameObjects(method, searchTerm, includeInactive, maxResults); + } + + /// + /// Searches for GameObjects and returns their instance IDs. + /// + /// The search method + /// The term to search for + /// Whether to include inactive objects + /// Maximum number of results to return (0 = unlimited) + /// List of instance IDs + public static List SearchGameObjects(SearchMethod method, string searchTerm, bool includeInactive = false, int maxResults = 0) + { + var results = new List(); + + switch (method) + { + case SearchMethod.ById: + if (int.TryParse(searchTerm, out int instanceId)) + { +#pragma warning disable CS0618 // Type or member is obsolete + var obj = EditorUtility.InstanceIDToObject(instanceId) as GameObject; +#pragma warning restore CS0618 + if (obj != null && (includeInactive || obj.activeInHierarchy)) + { + results.Add(instanceId); + } + } + break; + + case SearchMethod.ByName: + results.AddRange(SearchByName(searchTerm, includeInactive, maxResults)); + break; + + case SearchMethod.ByPath: + results.AddRange(SearchByPath(searchTerm, includeInactive)); + break; + + case SearchMethod.ByTag: + results.AddRange(SearchByTag(searchTerm, includeInactive, maxResults)); + break; + + case SearchMethod.ByLayer: + results.AddRange(SearchByLayer(searchTerm, includeInactive, maxResults)); + break; + + case SearchMethod.ByComponent: + results.AddRange(SearchByComponent(searchTerm, includeInactive, maxResults)); + break; + } + + return results; + } + + private static IEnumerable SearchByName(string name, bool includeInactive, int maxResults) + { + var allObjects = GetAllSceneObjects(includeInactive); + var matching = allObjects.Where(go => go.name == name); + + if (maxResults > 0) + matching = matching.Take(maxResults); + + return matching.Select(go => go.GetInstanceID()); + } + + private static IEnumerable SearchByPath(string path, bool includeInactive) + { + // Check Prefab Stage first - GameObject.Find() doesn't work in Prefab Stage + var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); + if (prefabStage != null) + { + // Use GetAllSceneObjects which already handles Prefab Stage + var allObjects = GetAllSceneObjects(includeInactive); + foreach (var go in allObjects) + { + if (MatchesPath(go, path)) + { + yield return go.GetInstanceID(); + } + } + yield break; + } + + // Normal scene mode + // NOTE: Unity's GameObject.Find(path) only finds ACTIVE GameObjects. + // If includeInactive=true, we need to search manually to find inactive objects. + if (includeInactive) + { + // Search manually to support inactive objects + var allObjects = GetAllSceneObjects(true); + foreach (var go in allObjects) + { + if (MatchesPath(go, path)) + { + yield return go.GetInstanceID(); + } + } + } + else + { + // Use GameObject.Find for active objects only (Unity API limitation) + var found = GameObject.Find(path); + if (found != null) + { + yield return found.GetInstanceID(); + } + } + } + + private static IEnumerable SearchByTag(string tag, bool includeInactive, int maxResults) + { + GameObject[] taggedObjects; + try + { + if (includeInactive) + { + // FindGameObjectsWithTag doesn't find inactive, so we need to iterate all + var allObjects = GetAllSceneObjects(true); + taggedObjects = allObjects.Where(go => go.CompareTag(tag)).ToArray(); + } + else + { + taggedObjects = GameObject.FindGameObjectsWithTag(tag); + } + } + catch (UnityException) + { + // Tag doesn't exist + yield break; + } + + var results = taggedObjects.AsEnumerable(); + if (maxResults > 0) + results = results.Take(maxResults); + + foreach (var go in results) + { + yield return go.GetInstanceID(); + } + } + + private static IEnumerable SearchByLayer(string layerName, bool includeInactive, int maxResults) + { + int layer = LayerMask.NameToLayer(layerName); + if (layer == -1) + { + // Try parsing as layer number + if (!int.TryParse(layerName, out layer) || layer < 0 || layer > 31) + { + yield break; + } + } + + var allObjects = GetAllSceneObjects(includeInactive); + var matching = allObjects.Where(go => go.layer == layer); + + if (maxResults > 0) + matching = matching.Take(maxResults); + + foreach (var go in matching) + { + yield return go.GetInstanceID(); + } + } + + private static IEnumerable SearchByComponent(string componentTypeName, bool includeInactive, int maxResults) + { + Type componentType = FindComponentType(componentTypeName); + if (componentType == null) + { + McpLog.Warn($"[GameObjectLookup] Component type '{componentTypeName}' not found."); + yield break; + } + + var allObjects = GetAllSceneObjects(includeInactive); + var count = 0; + + foreach (var go in allObjects) + { + if (go.GetComponent(componentType) != null) + { + yield return go.GetInstanceID(); + count++; + + if (maxResults > 0 && count >= maxResults) + yield break; + } + } + } + + /// + /// Gets all GameObjects in the current scene. + /// + public static IEnumerable GetAllSceneObjects(bool includeInactive) + { + // Check Prefab Stage first + var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); + if (prefabStage != null && prefabStage.prefabContentsRoot != null) + { + // Use Prefab Stage's prefabContentsRoot + foreach (var go in GetObjectAndDescendants(prefabStage.prefabContentsRoot, includeInactive)) + { + yield return go; + } + yield break; + } + + // Normal scene mode + var scene = SceneManager.GetActiveScene(); + if (!scene.IsValid()) + yield break; + + var rootObjects = scene.GetRootGameObjects(); + foreach (var root in rootObjects) + { + foreach (var go in GetObjectAndDescendants(root, includeInactive)) + { + yield return go; + } + } + } + + private static IEnumerable GetObjectAndDescendants(GameObject obj, bool includeInactive) + { + if (!includeInactive && !obj.activeInHierarchy) + yield break; + + yield return obj; + + foreach (Transform child in obj.transform) + { + foreach (var descendant in GetObjectAndDescendants(child.gameObject, includeInactive)) + { + yield return descendant; + } + } + } + + /// + /// Finds a component type by name, searching loaded assemblies. + /// + /// + /// Delegates to UnityTypeResolver.ResolveComponent() for unified type resolution. + /// + public static Type FindComponentType(string typeName) + { + return UnityTypeResolver.ResolveComponent(typeName); + } + + /// + /// Checks whether a GameObject matches a path or trailing path segment. + /// + internal static bool MatchesPath(GameObject go, string path) + { + if (go == null || string.IsNullOrEmpty(path)) + return false; + + var goPath = GetGameObjectPath(go); + return goPath == path || goPath.EndsWith("/" + path); + } + + /// + /// Gets the hierarchical path of a GameObject. + /// + public static string GetGameObjectPath(GameObject obj) + { + if (obj == null) + return string.Empty; + + var path = obj.name; + var parent = obj.transform.parent; + + while (parent != null) + { + path = parent.name + "/" + path; + parent = parent.parent; + } + + return path; + } + } +} + diff --git a/Packages/MCPForUnity/Editor/Helpers/GameObjectLookup.cs.meta b/Packages/MCPForUnity/Editor/Helpers/GameObjectLookup.cs.meta new file mode 100644 index 00000000..82fed7a1 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/GameObjectLookup.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4964205faa8dd4f8a960e58fd8c0d4f7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Helpers/GameObjectSerializer.cs b/Packages/MCPForUnity/Editor/Helpers/GameObjectSerializer.cs new file mode 100644 index 00000000..688546b7 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/GameObjectSerializer.cs @@ -0,0 +1,666 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using MCPForUnity.Runtime.Serialization; // For Converters +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.Helpers +{ + /// + /// Handles serialization of GameObjects and Components for MCP responses. + /// Includes reflection helpers and caching for performance. + /// + public static class GameObjectSerializer + { + // --- Data Serialization --- + + /// + /// Creates a serializable representation of a GameObject. + /// + public static object GetGameObjectData(GameObject go) + { + if (go == null) + return null; + return new + { + name = go.name, + instanceID = go.GetInstanceID(), + tag = go.tag, + layer = go.layer, + activeSelf = go.activeSelf, + activeInHierarchy = go.activeInHierarchy, + isStatic = go.isStatic, + scenePath = go.scene.path, // Identify which scene it belongs to + transform = new // Serialize transform components carefully to avoid JSON issues + { + // Serialize Vector3 components individually to prevent self-referencing loops. + // The default serializer can struggle with properties like Vector3.normalized. + position = new + { + x = go.transform.position.x, + y = go.transform.position.y, + z = go.transform.position.z, + }, + localPosition = new + { + x = go.transform.localPosition.x, + y = go.transform.localPosition.y, + z = go.transform.localPosition.z, + }, + rotation = new + { + x = go.transform.rotation.eulerAngles.x, + y = go.transform.rotation.eulerAngles.y, + z = go.transform.rotation.eulerAngles.z, + }, + localRotation = new + { + x = go.transform.localRotation.eulerAngles.x, + y = go.transform.localRotation.eulerAngles.y, + z = go.transform.localRotation.eulerAngles.z, + }, + scale = new + { + x = go.transform.localScale.x, + y = go.transform.localScale.y, + z = go.transform.localScale.z, + }, + forward = new + { + x = go.transform.forward.x, + y = go.transform.forward.y, + z = go.transform.forward.z, + }, + up = new + { + x = go.transform.up.x, + y = go.transform.up.y, + z = go.transform.up.z, + }, + right = new + { + x = go.transform.right.x, + y = go.transform.right.y, + z = go.transform.right.z, + }, + }, + parentInstanceID = go.transform.parent?.gameObject.GetInstanceID() ?? 0, // 0 if no parent + // Optionally include components, but can be large + // components = go.GetComponents().Select(c => GetComponentData(c)).ToList() + // Or just component names: + componentNames = go.GetComponents() + .Select(c => c.GetType().FullName) + .ToList(), + }; + } + + // --- Metadata Caching for Reflection --- + private class CachedMetadata + { + public readonly List SerializableProperties; + public readonly List SerializableFields; + + public CachedMetadata(List properties, List fields) + { + SerializableProperties = properties; + SerializableFields = fields; + } + } + // Key becomes Tuple + private static readonly Dictionary, CachedMetadata> _metadataCache = new Dictionary, CachedMetadata>(); + // --- End Metadata Caching --- + + /// + /// Checks if a type is or derives from a type with the specified full name. + /// Used to detect special-case components including their subclasses. + /// + private static bool IsOrDerivedFrom(Type type, string baseTypeFullName) + { + Type current = type; + while (current != null) + { + if (current.FullName == baseTypeFullName) + return true; + current = current.BaseType; + } + return false; + } + + /// + /// Serializes a UnityEngine.Object reference to a dictionary with name, instanceID, and assetPath. + /// Used for consistent serialization of asset references in special-case component handlers. + /// + /// The Unity object to serialize + /// Whether to include the asset path (default true) + /// A dictionary with the object's reference info, or null if obj is null + private static Dictionary SerializeAssetReference(UnityEngine.Object obj, bool includeAssetPath = true) + { + if (obj == null) return null; + + var result = new Dictionary + { + { "name", obj.name }, + { "instanceID", obj.GetInstanceID() } + }; + + if (includeAssetPath) + { + var assetPath = AssetDatabase.GetAssetPath(obj); + result["assetPath"] = string.IsNullOrEmpty(assetPath) ? null : assetPath; + } + + return result; + } + + /// + /// Creates a serializable representation of a Component, attempting to serialize + /// public properties and fields using reflection, with caching and control over non-public fields. + /// + // Add the flag parameter here + public static object GetComponentData(Component c, bool includeNonPublicSerializedFields = true) + { + // --- Add Early Logging --- + // McpLog.Info($"[GetComponentData] Starting for component: {c?.GetType()?.FullName ?? "null"} (ID: {c?.GetInstanceID() ?? 0})"); + // --- End Early Logging --- + + if (c == null) return null; + Type componentType = c.GetType(); + + // --- Special handling for Transform to avoid reflection crashes and problematic properties --- + if (componentType == typeof(Transform)) + { + Transform tr = c as Transform; + // McpLog.Info($"[GetComponentData] Manually serializing Transform (ID: {tr.GetInstanceID()})"); + return new Dictionary + { + { "typeName", componentType.FullName }, + { "instanceID", tr.GetInstanceID() }, + // Manually extract known-safe properties. Avoid Quaternion 'rotation' and 'lossyScale'. + { "position", CreateTokenFromValue(tr.position, typeof(Vector3))?.ToObject() ?? new JObject() }, + { "localPosition", CreateTokenFromValue(tr.localPosition, typeof(Vector3))?.ToObject() ?? new JObject() }, + { "eulerAngles", CreateTokenFromValue(tr.eulerAngles, typeof(Vector3))?.ToObject() ?? new JObject() }, // Use Euler angles + { "localEulerAngles", CreateTokenFromValue(tr.localEulerAngles, typeof(Vector3))?.ToObject() ?? new JObject() }, + { "localScale", CreateTokenFromValue(tr.localScale, typeof(Vector3))?.ToObject() ?? new JObject() }, + { "right", CreateTokenFromValue(tr.right, typeof(Vector3))?.ToObject() ?? new JObject() }, + { "up", CreateTokenFromValue(tr.up, typeof(Vector3))?.ToObject() ?? new JObject() }, + { "forward", CreateTokenFromValue(tr.forward, typeof(Vector3))?.ToObject() ?? new JObject() }, + { "parentInstanceID", tr.parent?.gameObject.GetInstanceID() ?? 0 }, + { "rootInstanceID", tr.root?.gameObject.GetInstanceID() ?? 0 }, + { "childCount", tr.childCount }, + // Include standard Object/Component properties + { "name", tr.name }, + { "tag", tr.tag }, + { "gameObjectInstanceID", tr.gameObject?.GetInstanceID() ?? 0 } + }; + } + // --- End Special handling for Transform --- + + // --- Special handling for Camera to avoid matrix-related crashes --- + if (componentType == typeof(Camera)) + { + Camera cam = c as Camera; + var cameraProperties = new Dictionary(); + + // List of safe properties to serialize + var safeProperties = new Dictionary> + { + { "nearClipPlane", () => cam.nearClipPlane }, + { "farClipPlane", () => cam.farClipPlane }, + { "fieldOfView", () => cam.fieldOfView }, + { "renderingPath", () => (int)cam.renderingPath }, + { "actualRenderingPath", () => (int)cam.actualRenderingPath }, + { "allowHDR", () => cam.allowHDR }, + { "allowMSAA", () => cam.allowMSAA }, + { "allowDynamicResolution", () => cam.allowDynamicResolution }, + { "forceIntoRenderTexture", () => cam.forceIntoRenderTexture }, + { "orthographicSize", () => cam.orthographicSize }, + { "orthographic", () => cam.orthographic }, + { "opaqueSortMode", () => (int)cam.opaqueSortMode }, + { "transparencySortMode", () => (int)cam.transparencySortMode }, + { "depth", () => cam.depth }, + { "aspect", () => cam.aspect }, + { "cullingMask", () => cam.cullingMask }, + { "eventMask", () => cam.eventMask }, + { "backgroundColor", () => cam.backgroundColor }, + { "clearFlags", () => (int)cam.clearFlags }, + { "stereoEnabled", () => cam.stereoEnabled }, + { "stereoSeparation", () => cam.stereoSeparation }, + { "stereoConvergence", () => cam.stereoConvergence }, + { "enabled", () => cam.enabled }, + { "name", () => cam.name }, + { "tag", () => cam.tag }, + { "gameObject", () => new { name = cam.gameObject.name, instanceID = cam.gameObject.GetInstanceID() } } + }; + + foreach (var prop in safeProperties) + { + try + { + var value = prop.Value(); + if (value != null) + { + AddSerializableValue(cameraProperties, prop.Key, value.GetType(), value); + } + } + catch (Exception) + { + // Silently skip any property that fails + continue; + } + } + + return new Dictionary + { + { "typeName", componentType.FullName }, + { "instanceID", cam.GetInstanceID() }, + { "properties", cameraProperties } + }; + } + // --- End Special handling for Camera --- + + // --- Special handling for UIDocument to avoid infinite loops from VisualElement hierarchy (Issue #585) --- + // UIDocument.rootVisualElement contains circular parent/child references that cause infinite serialization loops. + // Use IsOrDerivedFrom to also catch subclasses of UIDocument. + if (IsOrDerivedFrom(componentType, "UnityEngine.UIElements.UIDocument")) + { + var uiDocProperties = new Dictionary(); + + try + { + // Get panelSettings reference safely + var panelSettingsProp = componentType.GetProperty("panelSettings"); + if (panelSettingsProp != null) + { + var panelSettings = panelSettingsProp.GetValue(c) as UnityEngine.Object; + uiDocProperties["panelSettings"] = SerializeAssetReference(panelSettings); + } + + // Get visualTreeAsset reference safely (the UXML file) + var visualTreeAssetProp = componentType.GetProperty("visualTreeAsset"); + if (visualTreeAssetProp != null) + { + var visualTreeAsset = visualTreeAssetProp.GetValue(c) as UnityEngine.Object; + uiDocProperties["visualTreeAsset"] = SerializeAssetReference(visualTreeAsset); + } + + // Get sortingOrder safely + var sortingOrderProp = componentType.GetProperty("sortingOrder"); + if (sortingOrderProp != null) + { + uiDocProperties["sortingOrder"] = sortingOrderProp.GetValue(c); + } + + // Get enabled state (from Behaviour base class) + var enabledProp = componentType.GetProperty("enabled"); + if (enabledProp != null) + { + uiDocProperties["enabled"] = enabledProp.GetValue(c); + } + + // Get parentUI reference safely (no asset path needed - it's a scene reference) + var parentUIProp = componentType.GetProperty("parentUI"); + if (parentUIProp != null) + { + var parentUI = parentUIProp.GetValue(c) as UnityEngine.Object; + uiDocProperties["parentUI"] = SerializeAssetReference(parentUI, includeAssetPath: false); + } + + // NOTE: rootVisualElement is intentionally skipped - it contains circular + // parent/child references that cause infinite serialization loops + uiDocProperties["_note"] = "rootVisualElement skipped to prevent circular reference loops"; + } + catch (Exception e) + { + McpLog.Warn($"[GetComponentData] Error reading UIDocument properties: {e.Message}"); + } + + // Return structure matches Camera special handling (typeName, instanceID, properties) + return new Dictionary + { + { "typeName", componentType.FullName }, + { "instanceID", c.GetInstanceID() }, + { "properties", uiDocProperties } + }; + } + // --- End Special handling for UIDocument --- + + var data = new Dictionary + { + { "typeName", componentType.FullName }, + { "instanceID", c.GetInstanceID() } + }; + + // --- Get Cached or Generate Metadata (using new cache key) --- + Tuple cacheKey = new Tuple(componentType, includeNonPublicSerializedFields); + if (!_metadataCache.TryGetValue(cacheKey, out CachedMetadata cachedData)) + { + var propertiesToCache = new List(); + var fieldsToCache = new List(); + + // Traverse the hierarchy from the component type up to MonoBehaviour + Type currentType = componentType; + while (currentType != null && currentType != typeof(MonoBehaviour) && currentType != typeof(object)) + { + // Get properties declared only at the current type level + BindingFlags propFlags = BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly; + foreach (var propInfo in currentType.GetProperties(propFlags)) + { + // Basic filtering (readable, not indexer, not transform which is handled elsewhere) + if (!propInfo.CanRead || propInfo.GetIndexParameters().Length > 0 || propInfo.Name == "transform") continue; + // Add if not already added (handles overrides - keep the most derived version) + if (!propertiesToCache.Any(p => p.Name == propInfo.Name)) + { + propertiesToCache.Add(propInfo); + } + } + + // Get fields declared only at the current type level (both public and non-public) + BindingFlags fieldFlags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly; + var declaredFields = currentType.GetFields(fieldFlags); + + // Process the declared Fields for caching + foreach (var fieldInfo in declaredFields) + { + if (fieldInfo.Name.EndsWith("k__BackingField")) continue; // Skip backing fields + + // Add if not already added (handles hiding - keep the most derived version) + if (fieldsToCache.Any(f => f.Name == fieldInfo.Name)) continue; + + bool shouldInclude = false; + if (includeNonPublicSerializedFields) + { + // If TRUE, include Public OR any NonPublic with [SerializeField] (private/protected/internal) + var hasSerializeField = fieldInfo.IsDefined(typeof(SerializeField), inherit: true); + shouldInclude = fieldInfo.IsPublic || (!fieldInfo.IsPublic && hasSerializeField); + } + else // includeNonPublicSerializedFields is FALSE + { + // If FALSE, include ONLY if it is explicitly Public. + shouldInclude = fieldInfo.IsPublic; + } + + if (shouldInclude) + { + fieldsToCache.Add(fieldInfo); + } + } + + // Move to the base type + currentType = currentType.BaseType; + } + // --- End Hierarchy Traversal --- + + cachedData = new CachedMetadata(propertiesToCache, fieldsToCache); + _metadataCache[cacheKey] = cachedData; // Add to cache with combined key + } + // --- End Get Cached or Generate Metadata --- + + // --- Use cached metadata --- + var serializablePropertiesOutput = new Dictionary(); + + // --- Add Logging Before Property Loop --- + // McpLog.Info($"[GetComponentData] Starting property loop for {componentType.Name}..."); + // --- End Logging Before Property Loop --- + + // Use cached properties + foreach (var propInfo in cachedData.SerializableProperties) + { + string propName = propInfo.Name; + + // --- Skip known obsolete/problematic Component shortcut properties --- + bool skipProperty = false; + if (propName == "rigidbody" || propName == "rigidbody2D" || propName == "camera" || + propName == "light" || propName == "animation" || propName == "constantForce" || + propName == "renderer" || propName == "audio" || propName == "networkView" || + propName == "collider" || propName == "collider2D" || propName == "hingeJoint" || + propName == "particleSystem" || + // Also skip potentially problematic Matrix properties prone to cycles/errors + propName == "worldToLocalMatrix" || propName == "localToWorldMatrix") + { + // McpLog.Info($"[GetComponentData] Explicitly skipping generic property: {propName}"); // Optional log + skipProperty = true; + } + // --- End Skip Generic Properties --- + + // --- Skip specific potentially problematic Camera properties --- + if (componentType == typeof(Camera) && + (propName == "pixelRect" || + propName == "rect" || + propName == "cullingMatrix" || + propName == "useOcclusionCulling" || + propName == "worldToCameraMatrix" || + propName == "projectionMatrix" || + propName == "nonJitteredProjectionMatrix" || + propName == "previousViewProjectionMatrix" || + propName == "cameraToWorldMatrix")) + { + // McpLog.Info($"[GetComponentData] Explicitly skipping Camera property: {propName}"); + skipProperty = true; + } + // --- End Skip Camera Properties --- + + // --- Skip specific potentially problematic Transform properties --- + if (componentType == typeof(Transform) && + (propName == "lossyScale" || + propName == "rotation" || + propName == "worldToLocalMatrix" || + propName == "localToWorldMatrix")) + { + // McpLog.Info($"[GetComponentData] Explicitly skipping Transform property: {propName}"); + skipProperty = true; + } + // --- End Skip Transform Properties --- + + // Skip if flagged + if (skipProperty) + { + continue; + } + + try + { + // --- Add detailed logging --- + // McpLog.Info($"[GetComponentData] Accessing: {componentType.Name}.{propName}"); + // --- End detailed logging --- + + // --- Special handling for material/mesh properties in edit mode --- + object value; + if (!Application.isPlaying && (propName == "material" || propName == "materials" || propName == "mesh")) + { + // In edit mode, use sharedMaterial/sharedMesh to avoid instantiation warnings + if ((propName == "material" || propName == "materials") && c is Renderer renderer) + { + if (propName == "material") + value = renderer.sharedMaterial; + else // materials + value = renderer.sharedMaterials; + } + else if (propName == "mesh" && c is MeshFilter meshFilter) + { + value = meshFilter.sharedMesh; + } + else + { + // Fallback to normal property access if type doesn't match + value = propInfo.GetValue(c); + } + } + else + { + value = propInfo.GetValue(c); + } + // --- End special handling --- + + Type propType = propInfo.PropertyType; + AddSerializableValue(serializablePropertiesOutput, propName, propType, value); + } + catch (Exception) + { + // McpLog.Warn($"Could not read property {propName} on {componentType.Name}"); + } + } + + // --- Add Logging Before Field Loop --- + // McpLog.Info($"[GetComponentData] Starting field loop for {componentType.Name}..."); + // --- End Logging Before Field Loop --- + + // Use cached fields + foreach (var fieldInfo in cachedData.SerializableFields) + { + try + { + // --- Add detailed logging for fields --- + // McpLog.Info($"[GetComponentData] Accessing Field: {componentType.Name}.{fieldInfo.Name}"); + // --- End detailed logging for fields --- + object value = fieldInfo.GetValue(c); + string fieldName = fieldInfo.Name; + Type fieldType = fieldInfo.FieldType; + AddSerializableValue(serializablePropertiesOutput, fieldName, fieldType, value); + } + catch (Exception) + { + // McpLog.Warn($"Could not read field {fieldInfo.Name} on {componentType.Name}"); + } + } + // --- End Use cached metadata --- + + if (serializablePropertiesOutput.Count > 0) + { + data["properties"] = serializablePropertiesOutput; + } + + return data; + } + + // Helper function to decide how to serialize different types + private static void AddSerializableValue(Dictionary dict, string name, Type type, object value) + { + // Simplified: Directly use CreateTokenFromValue which uses the serializer + if (value == null) + { + dict[name] = null; + return; + } + + try + { + // Use the helper that employs our custom serializer settings + JToken token = CreateTokenFromValue(value, type); + if (token != null) // Check if serialization succeeded in the helper + { + // Convert JToken back to a basic object structure for the dictionary + dict[name] = ConvertJTokenToPlainObject(token); + } + // If token is null, it means serialization failed and a warning was logged. + } + catch (Exception e) + { + // Catch potential errors during JToken conversion or addition to dictionary + McpLog.Warn($"[AddSerializableValue] Error processing value for '{name}' (Type: {type.FullName}): {e.Message}. Skipping."); + } + } + + // Helper to convert JToken back to basic object structure + private static object ConvertJTokenToPlainObject(JToken token) + { + if (token == null) return null; + + switch (token.Type) + { + case JTokenType.Object: + var objDict = new Dictionary(); + foreach (var prop in ((JObject)token).Properties()) + { + objDict[prop.Name] = ConvertJTokenToPlainObject(prop.Value); + } + return objDict; + + case JTokenType.Array: + var list = new List(); + foreach (var item in (JArray)token) + { + list.Add(ConvertJTokenToPlainObject(item)); + } + return list; + + case JTokenType.Integer: + return token.ToObject(); // Use long for safety + case JTokenType.Float: + return token.ToObject(); // Use double for safety + case JTokenType.String: + return token.ToObject(); + case JTokenType.Boolean: + return token.ToObject(); + case JTokenType.Date: + return token.ToObject(); + case JTokenType.Guid: + return token.ToObject(); + case JTokenType.Uri: + return token.ToObject(); + case JTokenType.TimeSpan: + return token.ToObject(); + case JTokenType.Bytes: + return token.ToObject(); + case JTokenType.Null: + return null; + case JTokenType.Undefined: + return null; // Treat undefined as null + + default: + // Fallback for simple value types not explicitly listed + if (token is JValue jValue && jValue.Value != null) + { + return jValue.Value; + } + // McpLog.Warn($"Unsupported JTokenType encountered: {token.Type}. Returning null."); + return null; + } + } + + // --- Define custom JsonSerializerSettings for OUTPUT --- + private static readonly JsonSerializerSettings _outputSerializerSettings = new JsonSerializerSettings + { + Converters = new List + { + new Vector3Converter(), + new Vector2Converter(), + new QuaternionConverter(), + new ColorConverter(), + new RectConverter(), + new BoundsConverter(), + new Matrix4x4Converter(), // Fix #478: Safe Matrix4x4 serialization for Cinemachine + new UnityEngineObjectConverter() // Handles serialization of references + }, + ReferenceLoopHandling = ReferenceLoopHandling.Ignore, + // ContractResolver = new DefaultContractResolver { NamingStrategy = new CamelCaseNamingStrategy() } // Example if needed + }; + private static readonly JsonSerializer _outputSerializer = JsonSerializer.Create(_outputSerializerSettings); + // --- End Define custom JsonSerializerSettings --- + + // Helper to create JToken using the output serializer + private static JToken CreateTokenFromValue(object value, Type type) + { + if (value == null) return JValue.CreateNull(); + + try + { + // Use the pre-configured OUTPUT serializer instance + return JToken.FromObject(value, _outputSerializer); + } + catch (JsonSerializationException e) + { + McpLog.Warn($"[GameObjectSerializer] Newtonsoft.Json Error serializing value of type {type.FullName}: {e.Message}. Skipping property/field."); + return null; // Indicate serialization failure + } + catch (Exception e) // Catch other unexpected errors + { + McpLog.Warn($"[GameObjectSerializer] Unexpected error serializing value of type {type.FullName}: {e}. Skipping property/field."); + return null; // Indicate serialization failure + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Helpers/GameObjectSerializer.cs.meta b/Packages/MCPForUnity/Editor/Helpers/GameObjectSerializer.cs.meta new file mode 100644 index 00000000..9eb69d04 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/GameObjectSerializer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 64b8ff807bc9a401c82015cbafccffac +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Helpers/HttpEndpointUtility.cs b/Packages/MCPForUnity/Editor/Helpers/HttpEndpointUtility.cs new file mode 100644 index 00000000..76b7aef1 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/HttpEndpointUtility.cs @@ -0,0 +1,184 @@ +using System; +using MCPForUnity.Editor.Constants; +using MCPForUnity.Editor.Models; +using MCPForUnity.Editor.Services; +using UnityEditor; + +namespace MCPForUnity.Editor.Helpers +{ + /// + /// Helper methods for managing HTTP endpoint URLs used by the MCP bridge. + /// Ensures the stored value is always the base URL (without trailing path), + /// and provides convenience accessors for specific endpoints. + /// + /// HTTP Local and HTTP Remote use separate EditorPrefs keys so that switching + /// between scopes does not overwrite the other scope's URL. + /// + public static class HttpEndpointUtility + { + private const string LocalPrefKey = EditorPrefKeys.HttpBaseUrl; + private const string RemotePrefKey = EditorPrefKeys.HttpRemoteBaseUrl; + private const string DefaultLocalBaseUrl = "http://localhost:8080"; + private const string DefaultRemoteBaseUrl = ""; + + /// + /// Returns the normalized base URL for the currently active HTTP scope. + /// If the scope is "remote", returns the remote URL; otherwise returns the local URL. + /// + public static string GetBaseUrl() + { + return IsRemoteScope() ? GetRemoteBaseUrl() : GetLocalBaseUrl(); + } + + /// + /// Saves a user-provided URL to the currently active HTTP scope's pref. + /// + public static void SaveBaseUrl(string userValue) + { + if (IsRemoteScope()) + { + SaveRemoteBaseUrl(userValue); + } + else + { + SaveLocalBaseUrl(userValue); + } + } + + /// + /// Returns the normalized local HTTP base URL (always reads local pref). + /// + public static string GetLocalBaseUrl() + { + string stored = EditorPrefs.GetString(LocalPrefKey, DefaultLocalBaseUrl); + return NormalizeBaseUrl(stored, DefaultLocalBaseUrl); + } + + /// + /// Saves a user-provided URL to the local HTTP pref. + /// + public static void SaveLocalBaseUrl(string userValue) + { + string normalized = NormalizeBaseUrl(userValue, DefaultLocalBaseUrl); + EditorPrefs.SetString(LocalPrefKey, normalized); + } + + /// + /// Returns the normalized remote HTTP base URL (always reads remote pref). + /// Returns empty string if no remote URL is configured. + /// + public static string GetRemoteBaseUrl() + { + string stored = EditorPrefs.GetString(RemotePrefKey, DefaultRemoteBaseUrl); + if (string.IsNullOrWhiteSpace(stored)) + { + return DefaultRemoteBaseUrl; + } + return NormalizeBaseUrl(stored, DefaultRemoteBaseUrl); + } + + /// + /// Saves a user-provided URL to the remote HTTP pref. + /// + public static void SaveRemoteBaseUrl(string userValue) + { + if (string.IsNullOrWhiteSpace(userValue)) + { + EditorPrefs.SetString(RemotePrefKey, DefaultRemoteBaseUrl); + return; + } + string normalized = NormalizeBaseUrl(userValue, DefaultRemoteBaseUrl); + EditorPrefs.SetString(RemotePrefKey, normalized); + } + + /// + /// Builds the JSON-RPC endpoint for the currently active scope (base + /mcp). + /// + public static string GetMcpRpcUrl() + { + return AppendPathSegment(GetBaseUrl(), "mcp"); + } + + /// + /// Builds the local JSON-RPC endpoint (local base + /mcp). + /// + public static string GetLocalMcpRpcUrl() + { + return AppendPathSegment(GetLocalBaseUrl(), "mcp"); + } + + /// + /// Builds the remote JSON-RPC endpoint (remote base + /mcp). + /// Returns empty string if no remote URL is configured. + /// + public static string GetRemoteMcpRpcUrl() + { + string remoteBase = GetRemoteBaseUrl(); + return string.IsNullOrEmpty(remoteBase) ? string.Empty : AppendPathSegment(remoteBase, "mcp"); + } + + /// + /// Builds the endpoint used when POSTing custom-tool registration payloads. + /// + public static string GetRegisterToolsUrl() + { + return AppendPathSegment(GetBaseUrl(), "register-tools"); + } + + /// + /// Returns true if the active HTTP transport scope is "remote". + /// + public static bool IsRemoteScope() + { + string scope = EditorConfigurationCache.Instance.HttpTransportScope; + return string.Equals(scope, "remote", StringComparison.OrdinalIgnoreCase); + } + + /// + /// Returns the that matches the current server-side + /// transport selection (Stdio, Http, or HttpRemote). + /// Centralises the 3-way determination so callers avoid duplicated logic. + /// + public static ConfiguredTransport GetCurrentServerTransport() + { + bool useHttp = EditorConfigurationCache.Instance.UseHttpTransport; + if (!useHttp) return ConfiguredTransport.Stdio; + return IsRemoteScope() ? ConfiguredTransport.HttpRemote : ConfiguredTransport.Http; + } + + /// + /// Normalizes a URL so that we consistently store just the base (no trailing slash/path). + /// + private static string NormalizeBaseUrl(string value, string defaultUrl) + { + if (string.IsNullOrWhiteSpace(value)) + { + return defaultUrl; + } + + string trimmed = value.Trim(); + + // Ensure scheme exists; default to http:// if user omitted it. + if (!trimmed.Contains("://")) + { + trimmed = $"http://{trimmed}"; + } + + // Remove trailing slash segments. + trimmed = trimmed.TrimEnd('/'); + + // Strip trailing "/mcp" (case-insensitive) if provided. + if (trimmed.EndsWith("/mcp", StringComparison.OrdinalIgnoreCase)) + { + trimmed = trimmed[..^4]; + } + + return trimmed; + } + + private static string AppendPathSegment(string baseUrl, string segment) + { + return $"{baseUrl.TrimEnd('/')}/{segment}"; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Helpers/HttpEndpointUtility.cs.meta b/Packages/MCPForUnity/Editor/Helpers/HttpEndpointUtility.cs.meta new file mode 100644 index 00000000..55d67cbf --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/HttpEndpointUtility.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2051d90316ea345c09240c80c7138e3b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Helpers/MaterialOps.cs b/Packages/MCPForUnity/Editor/Helpers/MaterialOps.cs new file mode 100644 index 00000000..19f50288 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/MaterialOps.cs @@ -0,0 +1,397 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using MCPForUnity.Editor.Tools; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.Helpers +{ + public static class MaterialOps + { + /// + /// Applies a set of properties (JObject) to a material, handling aliases and structured formats. + /// + public static bool ApplyProperties(Material mat, JObject properties, JsonSerializer serializer) + { + if (mat == null || properties == null) + return false; + bool modified = false; + + // Helper for case-insensitive lookup + JToken GetValue(string key) + { + return properties.Properties() + .FirstOrDefault(p => string.Equals(p.Name, key, StringComparison.OrdinalIgnoreCase))?.Value; + } + + // --- Structured / Legacy Format Handling --- + // Example: Set shader + var shaderToken = GetValue("shader"); + if (shaderToken?.Type == JTokenType.String) + { + string shaderRequest = shaderToken.ToString(); + // Set shader + Shader newShader = RenderPipelineUtility.ResolveShader(shaderRequest); + if (newShader != null && mat.shader != newShader) + { + mat.shader = newShader; + modified = true; + } + } + + // Example: Set color property (structured) + var colorToken = GetValue("color"); + if (colorToken is JObject colorProps) + { + string propName = colorProps["name"]?.ToString() ?? GetMainColorPropertyName(mat); + if (colorProps["value"] is JArray colArr && colArr.Count >= 3) + { + try + { + Color newColor = ParseColor(colArr, serializer); + if (mat.HasProperty(propName)) + { + if (mat.GetColor(propName) != newColor) + { + mat.SetColor(propName, newColor); + modified = true; + } + } + } + catch (Exception ex) + { + McpLog.Warn($"[MaterialOps] Failed to parse color for property '{propName}': {ex.Message}"); + } + } + } + else if (colorToken is JArray colorArr) // Structured shorthand + { + string propName = GetMainColorPropertyName(mat); + try + { + Color newColor = ParseColor(colorArr, serializer); + if (mat.HasProperty(propName) && mat.GetColor(propName) != newColor) + { + mat.SetColor(propName, newColor); + modified = true; + } + } + catch (Exception ex) + { + McpLog.Warn($"[MaterialOps] Failed to parse color array: {ex.Message}"); + } + } + + // Example: Set float property (structured) + var floatToken = GetValue("float"); + if (floatToken is JObject floatProps) + { + string propName = floatProps["name"]?.ToString(); + if (!string.IsNullOrEmpty(propName) && + (floatProps["value"]?.Type == JTokenType.Float || floatProps["value"]?.Type == JTokenType.Integer)) + { + try + { + float newVal = floatProps["value"].ToObject(); + if (mat.HasProperty(propName) && mat.GetFloat(propName) != newVal) + { + mat.SetFloat(propName, newVal); + modified = true; + } + } + catch (Exception ex) + { + McpLog.Warn($"[MaterialOps] Failed to set float property '{propName}': {ex.Message}"); + } + } + } + + // Example: Set texture property (structured) + { + var texToken = GetValue("texture"); + if (texToken is JObject texProps) + { + string rawName = (texProps["name"] ?? texProps["Name"])?.ToString(); + string texPath = (texProps["path"] ?? texProps["Path"])?.ToString(); + if (!string.IsNullOrEmpty(texPath)) + { + var sanitizedPath = AssetPathUtility.SanitizeAssetPath(texPath); + var newTex = AssetDatabase.LoadAssetAtPath(sanitizedPath); + // Use ResolvePropertyName to handle aliases even for structured texture names + string candidateName = string.IsNullOrEmpty(rawName) ? "_BaseMap" : rawName; + string targetProp = ResolvePropertyName(mat, candidateName); + + if (!string.IsNullOrEmpty(targetProp) && mat.HasProperty(targetProp)) + { + if (mat.GetTexture(targetProp) != newTex) + { + mat.SetTexture(targetProp, newTex); + modified = true; + } + } + } + } + } + + // --- Direct Property Assignment (Flexible) --- + var reservedKeys = new HashSet(StringComparer.OrdinalIgnoreCase) { "shader", "color", "float", "texture" }; + + foreach (var prop in properties.Properties()) + { + if (reservedKeys.Contains(prop.Name)) continue; + string shaderProp = ResolvePropertyName(mat, prop.Name); + JToken v = prop.Value; + + if (TrySetShaderProperty(mat, shaderProp, v, serializer)) + { + modified = true; + } + } + + return modified; + } + + /// + /// Resolves common property aliases (e.g. "metallic" -> "_Metallic"). + /// + public static string ResolvePropertyName(Material mat, string name) + { + if (mat == null || string.IsNullOrEmpty(name)) return name; + string[] candidates; + var lower = name.ToLowerInvariant(); + switch (lower) + { + case "_color": candidates = new[] { "_Color", "_BaseColor" }; break; + case "_basecolor": candidates = new[] { "_BaseColor", "_Color" }; break; + case "_maintex": candidates = new[] { "_MainTex", "_BaseMap" }; break; + case "_basemap": candidates = new[] { "_BaseMap", "_MainTex" }; break; + case "_glossiness": candidates = new[] { "_Glossiness", "_Smoothness" }; break; + case "_smoothness": candidates = new[] { "_Smoothness", "_Glossiness" }; break; + // Friendly names → shader property names + case "metallic": candidates = new[] { "_Metallic" }; break; + case "smoothness": candidates = new[] { "_Smoothness", "_Glossiness" }; break; + case "albedo": candidates = new[] { "_BaseMap", "_MainTex" }; break; + default: candidates = new[] { name }; break; // keep original as-is + } + foreach (var candidate in candidates) + { + if (mat.HasProperty(candidate)) return candidate; + } + return name; + } + + /// + /// Auto-detects the main color property name for a material's shader. + /// + public static string GetMainColorPropertyName(Material mat) + { + if (mat == null || mat.shader == null) + return "_Color"; + + string[] commonColorProps = { "_BaseColor", "_Color", "_MainColor", "_Tint", "_TintColor" }; + foreach (var prop in commonColorProps) + { + if (mat.HasProperty(prop)) + return prop; + } + return "_Color"; + } + + /// + /// Tries to set a shader property on a material based on a JToken value. + /// Handles Colors, Vectors, Floats, Ints, Booleans, and Textures. + /// + public static bool TrySetShaderProperty(Material material, string propertyName, JToken value, JsonSerializer serializer) + { + if (material == null || string.IsNullOrEmpty(propertyName) || value == null) + return false; + + // Handle stringified JSON + if (value.Type == JTokenType.String) + { + string s = value.ToString(); + if (s.TrimStart().StartsWith("[") || s.TrimStart().StartsWith("{")) + { + try + { + JToken parsed = JToken.Parse(s); + return TrySetShaderProperty(material, propertyName, parsed, serializer); + } + catch { } + } + } + + // Use the serializer to convert the JToken value first + if (value is JArray jArray) + { + if (jArray.Count == 4) + { + if (material.HasProperty(propertyName)) + { + try { material.SetColor(propertyName, ParseColor(value, serializer)); return true; } + catch (Exception ex) + { + // Log at Debug level since we'll try other conversions + McpLog.Info($"[MaterialOps] SetColor attempt for '{propertyName}' failed: {ex.Message}"); + } + + try { Vector4 vec = value.ToObject(serializer); material.SetVector(propertyName, vec); return true; } + catch (Exception ex) + { + McpLog.Info($"[MaterialOps] SetVector (Vec4) attempt for '{propertyName}' failed: {ex.Message}"); + } + } + } + else if (jArray.Count == 3) + { + if (material.HasProperty(propertyName)) + { + try { material.SetColor(propertyName, ParseColor(value, serializer)); return true; } + catch (Exception ex) + { + McpLog.Info($"[MaterialOps] SetColor (Vec3) attempt for '{propertyName}' failed: {ex.Message}"); + } + } + } + else if (jArray.Count == 2) + { + if (material.HasProperty(propertyName)) + { + try { Vector2 vec = value.ToObject(serializer); material.SetVector(propertyName, vec); return true; } + catch (Exception ex) + { + McpLog.Info($"[MaterialOps] SetVector (Vec2) attempt for '{propertyName}' failed: {ex.Message}"); + } + } + } + } + else if (value.Type == JTokenType.Float || value.Type == JTokenType.Integer) + { + if (!material.HasProperty(propertyName)) + return false; + + try { material.SetFloat(propertyName, value.ToObject(serializer)); return true; } + catch (Exception ex) + { + McpLog.Info($"[MaterialOps] SetFloat attempt for '{propertyName}' failed: {ex.Message}"); + } + } + else if (value.Type == JTokenType.Boolean) + { + if (!material.HasProperty(propertyName)) + return false; + + try { material.SetFloat(propertyName, value.ToObject(serializer) ? 1f : 0f); return true; } + catch (Exception ex) + { + McpLog.Info($"[MaterialOps] SetFloat (bool) attempt for '{propertyName}' failed: {ex.Message}"); + } + } + else if (value.Type == JTokenType.String) + { + try + { + // Try loading as asset path first (most common case for strings in this context) + string path = value.ToString(); + if (!string.IsNullOrEmpty(path) && path.Contains("/")) // Heuristic: paths usually have slashes + { + // We need to handle texture assignment here. + // Since we don't have easy access to AssetDatabase here directly without using UnityEditor namespace (which is imported), + // we can try to load it. + var sanitizedPath = AssetPathUtility.SanitizeAssetPath(path); + Texture tex = AssetDatabase.LoadAssetAtPath(sanitizedPath); + if (tex != null && material.HasProperty(propertyName)) + { + material.SetTexture(propertyName, tex); + return true; + } + } + } + catch (Exception ex) + { + McpLog.Warn($"SetTexture (string path) for '{propertyName}' failed: {ex.Message}"); + } + } + + if (value.Type == JTokenType.Object) + { + try + { + Texture texture = value.ToObject(serializer); + if (texture != null && material.HasProperty(propertyName)) + { + material.SetTexture(propertyName, texture); + return true; + } + } + catch (Exception ex) + { + McpLog.Warn($"SetTexture (object) for '{propertyName}' failed: {ex.Message}"); + } + } + + McpLog.Warn( + $"[MaterialOps] Unsupported or failed conversion for material property '{propertyName}' from value: {value.ToString(Formatting.None)}" + ); + return false; + } + + /// + /// Helper to parse color from JToken (array or object). + /// + public static Color ParseColor(JToken token, JsonSerializer serializer) + { + if (token.Type == JTokenType.String) + { + string s = token.ToString(); + if (s.TrimStart().StartsWith("[") || s.TrimStart().StartsWith("{")) + { + try + { + return ParseColor(JToken.Parse(s), serializer); + } + catch { } + } + } + + if (token is JArray jArray) + { + if (jArray.Count == 4) + { + return new Color( + (float)jArray[0], + (float)jArray[1], + (float)jArray[2], + (float)jArray[3] + ); + } + else if (jArray.Count == 3) + { + return new Color( + (float)jArray[0], + (float)jArray[1], + (float)jArray[2], + 1f + ); + } + else + { + throw new ArgumentException("Color array must have 3 or 4 elements."); + } + } + + try + { + return token.ToObject(serializer); + } + catch (Exception ex) + { + McpLog.Warn($"[MaterialOps] Failed to parse color from token: {ex.Message}"); + throw; + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Helpers/MaterialOps.cs.meta b/Packages/MCPForUnity/Editor/Helpers/MaterialOps.cs.meta new file mode 100644 index 00000000..9296369a --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/MaterialOps.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a59e8545e32664dae9a696d449f82c3d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Helpers/McpConfigurationHelper.cs b/Packages/MCPForUnity/Editor/Helpers/McpConfigurationHelper.cs new file mode 100644 index 00000000..61eccb13 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/McpConfigurationHelper.cs @@ -0,0 +1,283 @@ +using System; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using MCPForUnity.Editor.Constants; +using MCPForUnity.Editor.Dependencies; +using MCPForUnity.Editor.Helpers; +using MCPForUnity.Editor.Models; +using MCPForUnity.Editor.Services; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.Helpers +{ + /// + /// Shared helper for MCP client configuration management with sophisticated + /// logic for preserving existing configs and handling different client types + /// + public static class McpConfigurationHelper + { + private const string LOCK_CONFIG_KEY = EditorPrefKeys.LockCursorConfig; + + /// + /// Writes MCP configuration to the specified path using sophisticated logic + /// that preserves existing configuration and only writes when necessary + /// + public static string WriteMcpConfiguration(string configPath, McpClient mcpClient = null) + { + // 0) Respect explicit lock (hidden pref or UI toggle) + try + { + if (EditorPrefs.GetBool(LOCK_CONFIG_KEY, false)) + return "Skipped (locked)"; + } + catch { } + + JsonSerializerSettings jsonSettings = new() { Formatting = Formatting.Indented }; + + // Read existing config if it exists + string existingJson = "{}"; + if (File.Exists(configPath)) + { + try + { + existingJson = File.ReadAllText(configPath); + } + catch (Exception e) + { + McpLog.Warn($"Error reading existing config: {e.Message}."); + } + } + + // Parse the existing JSON while preserving all properties + dynamic existingConfig; + try + { + if (string.IsNullOrWhiteSpace(existingJson)) + { + existingConfig = new JObject(); + } + else + { + existingConfig = JsonConvert.DeserializeObject(existingJson) ?? new JObject(); + } + } + catch + { + // If user has partial/invalid JSON (e.g., mid-edit), start from a fresh object + if (!string.IsNullOrWhiteSpace(existingJson)) + { + McpLog.Warn("UnityMCP: Configuration file could not be parsed; rewriting server block."); + } + existingConfig = new JObject(); + } + + // Determine existing entry references (command/args) + string existingCommand = null; + string[] existingArgs = null; + bool isVSCode = (mcpClient?.IsVsCodeLayout == true); + try + { + if (isVSCode) + { + existingCommand = existingConfig?.servers?.unityMCP?.command?.ToString(); + existingArgs = existingConfig?.servers?.unityMCP?.args?.ToObject(); + } + else + { + existingCommand = existingConfig?.mcpServers?.unityMCP?.command?.ToString(); + existingArgs = existingConfig?.mcpServers?.unityMCP?.args?.ToObject(); + } + } + catch { } + + // 1) Start from existing, only fill gaps (prefer trusted resolver) + string uvxPath = MCPServiceLocator.Paths.GetUvxPath(); + if (uvxPath == null) return "uv package manager not found. Please install uv first."; + + // Ensure containers exist and write back configuration + JObject existingRoot; + if (existingConfig is JObject eo) + existingRoot = eo; + else + existingRoot = JObject.FromObject(existingConfig); + + existingRoot = ConfigJsonBuilder.ApplyUnityServerToExistingConfig(existingRoot, uvxPath, mcpClient); + + string mergedJson = JsonConvert.SerializeObject(existingRoot, jsonSettings); + + EnsureConfigDirectoryExists(configPath); + WriteAtomicFile(configPath, mergedJson); + + return "Configured successfully"; + } + + /// + /// Configures a Codex client with sophisticated TOML handling + /// + public static string ConfigureCodexClient(string configPath, McpClient mcpClient) + { + try + { + if (EditorPrefs.GetBool(LOCK_CONFIG_KEY, false)) + return "Skipped (locked)"; + } + catch { } + + string existingToml = string.Empty; + if (File.Exists(configPath)) + { + try + { + existingToml = File.ReadAllText(configPath); + } + catch (Exception e) + { + McpLog.Warn($"UnityMCP: Failed to read Codex config '{configPath}': {e.Message}"); + existingToml = string.Empty; + } + } + + string existingCommand = null; + string[] existingArgs = null; + if (!string.IsNullOrWhiteSpace(existingToml)) + { + CodexConfigHelper.TryParseCodexServer(existingToml, out existingCommand, out existingArgs); + } + + string uvxPath = MCPServiceLocator.Paths.GetUvxPath(); + if (uvxPath == null) + { + return "uv package manager not found. Please install uv first."; + } + + string updatedToml = CodexConfigHelper.UpsertCodexServerBlock(existingToml, uvxPath); + + EnsureConfigDirectoryExists(configPath); + WriteAtomicFile(configPath, updatedToml); + + return "Configured successfully"; + } + + /// + /// Gets the appropriate config file path for the given MCP client based on OS + /// + public static string GetClientConfigPath(McpClient mcpClient) + { + if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) + { + return mcpClient.windowsConfigPath; + } + else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) + { + return string.IsNullOrEmpty(mcpClient.macConfigPath) + ? mcpClient.linuxConfigPath + : mcpClient.macConfigPath; + } + else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) + { + return mcpClient.linuxConfigPath; + } + else + { + return mcpClient.linuxConfigPath; // fallback + } + } + + /// + /// Creates the directory for the config file if it doesn't exist + /// + public static void EnsureConfigDirectoryExists(string configPath) + { + Directory.CreateDirectory(Path.GetDirectoryName(configPath)); + } + + public static string ExtractUvxUrl(string[] args) + { + if (args == null) return null; + for (int i = 0; i < args.Length - 1; i++) + { + if (string.Equals(args[i], "--from", StringComparison.OrdinalIgnoreCase)) + { + return args[i + 1]; + } + } + return null; + } + + public static bool PathsEqual(string a, string b) + { + if (string.IsNullOrEmpty(a) || string.IsNullOrEmpty(b)) return false; + try + { + string na = Path.GetFullPath(a.Trim()); + string nb = Path.GetFullPath(b.Trim()); + if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) + { + return string.Equals(na, nb, StringComparison.OrdinalIgnoreCase); + } + return string.Equals(na, nb, StringComparison.Ordinal); + } + catch + { + return false; + } + } + + public static void WriteAtomicFile(string path, string contents) + { + string tmp = path + ".tmp"; + string backup = path + ".backup"; + bool writeDone = false; + try + { + File.WriteAllText(tmp, contents, new UTF8Encoding(false)); + try + { + File.Replace(tmp, path, backup); + writeDone = true; + } + catch (FileNotFoundException) + { + File.Move(tmp, path); + writeDone = true; + } + catch (PlatformNotSupportedException) + { + if (File.Exists(path)) + { + try + { + if (File.Exists(backup)) File.Delete(backup); + } + catch { } + File.Move(path, backup); + } + File.Move(tmp, path); + writeDone = true; + } + } + catch (Exception ex) + { + try + { + if (!writeDone && File.Exists(backup)) + { + try { File.Copy(backup, path, true); } catch { } + } + } + catch { } + throw new Exception($"Failed to write config file '{path}': {ex.Message}", ex); + } + finally + { + try { if (File.Exists(tmp)) File.Delete(tmp); } catch { } + try { if (writeDone && File.Exists(backup)) File.Delete(backup); } catch { } + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Helpers/McpConfigurationHelper.cs.meta b/Packages/MCPForUnity/Editor/Helpers/McpConfigurationHelper.cs.meta new file mode 100644 index 00000000..17de56c8 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/McpConfigurationHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e45ac2a13b4c1ba468b8e3aa67b292ca +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Helpers/McpJobStateStore.cs b/Packages/MCPForUnity/Editor/Helpers/McpJobStateStore.cs new file mode 100644 index 00000000..5db093b3 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/McpJobStateStore.cs @@ -0,0 +1,62 @@ +using System; +using System.IO; +using Newtonsoft.Json; +using UnityEngine; + +namespace MCPForUnity.Editor.Helpers +{ + /// + /// Utility for persisting tool state across domain reloads. State is stored in + /// Library so it stays local to the project and is cleared by Unity as needed. + /// + public static class McpJobStateStore + { + private static string GetStatePath(string toolName) + { + if (string.IsNullOrEmpty(toolName)) + { + throw new ArgumentException("toolName cannot be null or empty", nameof(toolName)); + } + + var libraryPath = Path.Combine(Application.dataPath, "..", "Library"); + var fileName = $"McpState_{toolName}.json"; + return Path.GetFullPath(Path.Combine(libraryPath, fileName)); + } + + public static void SaveState(string toolName, T state) + { + var path = GetStatePath(toolName); + Directory.CreateDirectory(Path.GetDirectoryName(path)); + var json = JsonConvert.SerializeObject(state ?? Activator.CreateInstance()); + File.WriteAllText(path, json); + } + + public static T LoadState(string toolName) + { + var path = GetStatePath(toolName); + if (!File.Exists(path)) + { + return default; + } + + try + { + var json = File.ReadAllText(path); + return JsonConvert.DeserializeObject(json); + } + catch (Exception) + { + return default; + } + } + + public static void ClearState(string toolName) + { + var path = GetStatePath(toolName); + if (File.Exists(path)) + { + File.Delete(path); + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Helpers/McpJobStateStore.cs.meta b/Packages/MCPForUnity/Editor/Helpers/McpJobStateStore.cs.meta new file mode 100644 index 00000000..df45ef51 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/McpJobStateStore.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 28912085dd68342f8a9fda8a43c83a59 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Helpers/McpLog.cs b/Packages/MCPForUnity/Editor/Helpers/McpLog.cs new file mode 100644 index 00000000..ca9f7713 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/McpLog.cs @@ -0,0 +1,53 @@ +using MCPForUnity.Editor.Constants; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.Helpers +{ + internal static class McpLog + { + private const string InfoPrefix = "MCP-FOR-UNITY:"; + private const string DebugPrefix = "MCP-FOR-UNITY:"; + private const string WarnPrefix = "MCP-FOR-UNITY:"; + private const string ErrorPrefix = "MCP-FOR-UNITY:"; + + private static volatile bool _debugEnabled = ReadDebugPreference(); + + private static bool IsDebugEnabled() => _debugEnabled; + + private static bool ReadDebugPreference() + { + try { return EditorPrefs.GetBool(EditorPrefKeys.DebugLogs, false); } + catch { return false; } + } + + public static void SetDebugLoggingEnabled(bool enabled) + { + _debugEnabled = enabled; + try { EditorPrefs.SetBool(EditorPrefKeys.DebugLogs, enabled); } + catch { } + } + + public static void Debug(string message) + { + if (!IsDebugEnabled()) return; + UnityEngine.Debug.Log($"{DebugPrefix} {message}"); + } + + public static void Info(string message, bool always = true) + { + if (!always && !IsDebugEnabled()) return; + UnityEngine.Debug.Log($"{InfoPrefix} {message}"); + } + + public static void Warn(string message) + { + UnityEngine.Debug.LogWarning($"{WarnPrefix} {message}"); + } + + public static void Error(string message) + { + UnityEngine.Debug.LogError($"{ErrorPrefix} {message}"); + } + } +} diff --git a/Packages/MCPForUnity/Editor/Helpers/McpLog.cs.meta b/Packages/MCPForUnity/Editor/Helpers/McpLog.cs.meta new file mode 100644 index 00000000..bbc0a775 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/McpLog.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9e2c3f8a4f4f48d8a4c1b7b8e3f5a1c2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Helpers/ObjectResolver.cs b/Packages/MCPForUnity/Editor/Helpers/ObjectResolver.cs new file mode 100644 index 00000000..ee351705 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/ObjectResolver.cs @@ -0,0 +1,202 @@ +using System; +using MCPForUnity.Editor.Helpers; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.Helpers +{ + /// + /// Resolves Unity Objects by instruction (handles GameObjects, Components, Assets). + /// Extracted from ManageGameObject to eliminate cross-tool dependencies. + /// + public static class ObjectResolver + { + /// + /// Resolves any Unity Object by instruction. + /// + /// The type of Unity Object to resolve + /// JObject with "find" (required), "method" (optional), "component" (optional) + /// The resolved object, or null if not found + public static T Resolve(JObject instruction) where T : UnityEngine.Object + { + return Resolve(instruction, typeof(T)) as T; + } + + /// + /// Resolves any Unity Object by instruction. + /// + /// JObject with "find" (required), "method" (optional), "component" (optional) + /// The type of Unity Object to resolve + /// The resolved object, or null if not found + public static UnityEngine.Object Resolve(JObject instruction, Type targetType) + { + if (instruction == null) + return null; + + string findTerm = instruction["find"]?.ToString(); + string method = instruction["method"]?.ToString()?.ToLower(); + string componentName = instruction["component"]?.ToString(); + + if (string.IsNullOrEmpty(findTerm)) + { + McpLog.Warn("[ObjectResolver] Find instruction missing 'find' term."); + return null; + } + + // Use a flexible default search method if none provided + string searchMethodToUse = string.IsNullOrEmpty(method) ? "by_id_or_name_or_path" : method; + + // --- Asset Search --- + // Normalize path separators before checking asset paths + string normalizedPath = AssetPathUtility.NormalizeSeparators(findTerm); + + // If the target is an asset type, try AssetDatabase first + if (IsAssetType(targetType) || + (typeof(GameObject).IsAssignableFrom(targetType) && normalizedPath.StartsWith("Assets/"))) + { + UnityEngine.Object asset = TryLoadAsset(normalizedPath, targetType); + if (asset != null) + return asset; + // If still not found, fall through to scene search + } + + // --- Scene Object Search --- + GameObject foundGo = GameObjectLookup.FindByTarget(new JValue(findTerm), searchMethodToUse, includeInactive: false); + + if (foundGo == null) + { + return null; + } + + // Get the target object/component from the found GameObject + if (targetType == typeof(GameObject)) + { + return foundGo; + } + else if (typeof(Component).IsAssignableFrom(targetType)) + { + Type componentToGetType = targetType; + if (!string.IsNullOrEmpty(componentName)) + { + Type specificCompType = GameObjectLookup.FindComponentType(componentName); + if (specificCompType != null && typeof(Component).IsAssignableFrom(specificCompType)) + { + componentToGetType = specificCompType; + } + else + { + McpLog.Warn($"[ObjectResolver] Could not find component type '{componentName}'. Falling back to target type '{targetType.Name}'."); + } + } + + Component foundComp = foundGo.GetComponent(componentToGetType); + if (foundComp == null) + { + McpLog.Warn($"[ObjectResolver] Found GameObject '{foundGo.name}' but could not find component of type '{componentToGetType.Name}'."); + } + return foundComp; + } + else + { + McpLog.Warn($"[ObjectResolver] Find instruction handling not implemented for target type: {targetType.Name}"); + return null; + } + } + + /// + /// Convenience method to resolve a GameObject. + /// + public static GameObject ResolveGameObject(JToken target, string searchMethod = null) + { + if (target == null) + return null; + + // If target is a simple value, use GameObjectLookup directly + if (target.Type != JTokenType.Object) + { + return GameObjectLookup.FindByTarget(target, searchMethod ?? "by_id_or_name_or_path"); + } + + // If target is an instruction object + var instruction = target as JObject; + if (instruction != null) + { + return Resolve(instruction); + } + + return null; + } + + /// + /// Convenience method to resolve a Material. + /// + public static Material ResolveMaterial(string pathOrName) + { + if (string.IsNullOrEmpty(pathOrName)) + return null; + + var instruction = new JObject { ["find"] = pathOrName }; + return Resolve(instruction); + } + + /// + /// Convenience method to resolve a Texture. + /// + public static Texture ResolveTexture(string pathOrName) + { + if (string.IsNullOrEmpty(pathOrName)) + return null; + + var instruction = new JObject { ["find"] = pathOrName }; + return Resolve(instruction); + } + + // --- Private Helpers --- + + private static bool IsAssetType(Type type) + { + return typeof(Material).IsAssignableFrom(type) || + typeof(Texture).IsAssignableFrom(type) || + typeof(ScriptableObject).IsAssignableFrom(type) || + type.FullName?.StartsWith("UnityEngine.U2D") == true || + typeof(AudioClip).IsAssignableFrom(type) || + typeof(AnimationClip).IsAssignableFrom(type) || + typeof(Font).IsAssignableFrom(type) || + typeof(Shader).IsAssignableFrom(type) || + typeof(ComputeShader).IsAssignableFrom(type); + } + + private static UnityEngine.Object TryLoadAsset(string findTerm, Type targetType) + { + // Try loading directly by path first + UnityEngine.Object asset = AssetDatabase.LoadAssetAtPath(findTerm, targetType); + if (asset != null) + return asset; + + // Try generic load if type-specific failed + asset = AssetDatabase.LoadAssetAtPath(findTerm); + if (asset != null && targetType.IsAssignableFrom(asset.GetType())) + return asset; + + // Try finding by name/type using FindAssets + string searchFilter = $"t:{targetType.Name} {System.IO.Path.GetFileNameWithoutExtension(findTerm)}"; + string[] guids = AssetDatabase.FindAssets(searchFilter); + + if (guids.Length == 1) + { + asset = AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(guids[0]), targetType); + if (asset != null) + return asset; + } + else if (guids.Length > 1) + { + McpLog.Warn($"[ObjectResolver] Ambiguous asset find: Found {guids.Length} assets matching filter '{searchFilter}'. Provide a full path or unique name."); + return null; + } + + return null; + } + } +} + diff --git a/Packages/MCPForUnity/Editor/Helpers/ObjectResolver.cs.meta b/Packages/MCPForUnity/Editor/Helpers/ObjectResolver.cs.meta new file mode 100644 index 00000000..610a8f68 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/ObjectResolver.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ad678f7b0a2e6458bbdb38a15d857acf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Helpers/Pagination.cs b/Packages/MCPForUnity/Editor/Helpers/Pagination.cs new file mode 100644 index 00000000..e1d13873 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/Pagination.cs @@ -0,0 +1,149 @@ +using System.Collections.Generic; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; + +namespace MCPForUnity.Editor.Helpers +{ + /// + /// Standard pagination request for all paginated tool operations. + /// Provides consistent handling of page_size/pageSize and cursor/page_number parameters. + /// + public class PaginationRequest + { + /// + /// Number of items per page. Default is 50. + /// + public int PageSize { get; set; } = 50; + + /// + /// 0-based cursor position for the current page. + /// + public int Cursor { get; set; } = 0; + + /// + /// Creates a PaginationRequest from JObject parameters. + /// Accepts both snake_case and camelCase parameter names for flexibility. + /// Converts 1-based page_number to 0-based cursor if needed. + /// + public static PaginationRequest FromParams(JObject @params, int defaultPageSize = 50) + { + if (@params == null) + return new PaginationRequest { PageSize = defaultPageSize }; + + // Accept both page_size and pageSize + int pageSize = ParamCoercion.CoerceInt( + @params["page_size"] ?? @params["pageSize"], + defaultPageSize + ); + + // Accept both cursor (0-based) and page_number (convert 1-based to 0-based) + var cursorToken = @params["cursor"]; + var pageNumberToken = @params["page_number"] ?? @params["pageNumber"]; + + int cursor; + if (cursorToken != null) + { + cursor = ParamCoercion.CoerceInt(cursorToken, 0); + } + else if (pageNumberToken != null) + { + // Convert 1-based page_number to 0-based cursor + int pageNumber = ParamCoercion.CoerceInt(pageNumberToken, 1); + cursor = (pageNumber - 1) * pageSize; + if (cursor < 0) cursor = 0; + } + else + { + cursor = 0; + } + + return new PaginationRequest + { + PageSize = pageSize > 0 ? pageSize : defaultPageSize, + Cursor = cursor + }; + } + } + + /// + /// Standard pagination response for all paginated tool operations. + /// Provides consistent response structure across all tools. + /// + /// The type of items in the paginated list + public class PaginationResponse + { + /// + /// The items on the current page. + /// + [JsonProperty("items")] + public List Items { get; set; } = new List(); + + /// + /// The cursor position for the current page (0-based). + /// + [JsonProperty("cursor")] + public int Cursor { get; set; } + + /// + /// The cursor for the next page, or null if this is the last page. + /// + [JsonProperty("nextCursor")] + public int? NextCursor { get; set; } + + /// + /// Total number of items across all pages. + /// + [JsonProperty("totalCount")] + public int TotalCount { get; set; } + + /// + /// Number of items per page. + /// + [JsonProperty("pageSize")] + public int PageSize { get; set; } + + /// + /// Whether there are more items after this page. + /// + [JsonProperty("hasMore")] + public bool HasMore => NextCursor.HasValue; + + /// + /// Creates a PaginationResponse from a full list of items and pagination parameters. + /// + /// The full list of items to paginate + /// The pagination request parameters + /// A paginated response with the appropriate slice of items + public static PaginationResponse Create(IList allItems, PaginationRequest request) + { + int totalCount = allItems.Count; + int cursor = request.Cursor; + int pageSize = request.PageSize; + + // Clamp cursor to valid range + if (cursor < 0) cursor = 0; + if (cursor > totalCount) cursor = totalCount; + + // Get the page of items + var items = new List(); + int endIndex = System.Math.Min(cursor + pageSize, totalCount); + for (int i = cursor; i < endIndex; i++) + { + items.Add(allItems[i]); + } + + // Calculate next cursor + int? nextCursor = endIndex < totalCount ? endIndex : (int?)null; + + return new PaginationResponse + { + Items = items, + Cursor = cursor, + NextCursor = nextCursor, + TotalCount = totalCount, + PageSize = pageSize + }; + } + } +} + diff --git a/Packages/MCPForUnity/Editor/Helpers/Pagination.cs.meta b/Packages/MCPForUnity/Editor/Helpers/Pagination.cs.meta new file mode 100644 index 00000000..8d0479b6 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/Pagination.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 745564d5894d74c0ca24db39c77bab2c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Helpers/ParamCoercion.cs b/Packages/MCPForUnity/Editor/Helpers/ParamCoercion.cs new file mode 100644 index 00000000..d19d7bf4 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/ParamCoercion.cs @@ -0,0 +1,363 @@ +using System; +using System.Globalization; +using Newtonsoft.Json.Linq; + +namespace MCPForUnity.Editor.Helpers +{ + /// + /// Utility class for coercing JSON parameter values to strongly-typed values. + /// Handles various input formats (strings, numbers, booleans) gracefully. + /// + public static class ParamCoercion + { + /// + /// Coerces a JToken to an integer value, handling strings and floats. + /// + /// The JSON token to coerce + /// Default value if coercion fails + /// The coerced integer value or default + public static int CoerceInt(JToken token, int defaultValue) + { + if (token == null || token.Type == JTokenType.Null) + return defaultValue; + + try + { + if (token.Type == JTokenType.Integer) + return token.Value(); + + var s = token.ToString().Trim(); + if (s.Length == 0) + return defaultValue; + + if (int.TryParse(s, NumberStyles.Integer, CultureInfo.InvariantCulture, out var i)) + return i; + + if (double.TryParse(s, NumberStyles.Float, CultureInfo.InvariantCulture, out var d)) + return (int)d; + } + catch + { + // Swallow and return default + } + + return defaultValue; + } + + /// + /// Coerces a JToken to a nullable integer value. + /// Returns null if token is null, empty, or cannot be parsed. + /// + /// The JSON token to coerce + /// The coerced integer value or null + public static int? CoerceIntNullable(JToken token) + { + if (token == null || token.Type == JTokenType.Null) + return null; + + try + { + if (token.Type == JTokenType.Integer) + return token.Value(); + + var s = token.ToString().Trim(); + if (s.Length == 0) + return null; + + if (int.TryParse(s, NumberStyles.Integer, CultureInfo.InvariantCulture, out var i)) + return i; + + if (double.TryParse(s, NumberStyles.Float, CultureInfo.InvariantCulture, out var d)) + return (int)d; + } + catch + { + // Swallow and return null + } + + return null; + } + + /// + /// Coerces a JToken to a boolean value, handling strings like "true", "1", etc. + /// + /// The JSON token to coerce + /// Default value if coercion fails + /// The coerced boolean value or default + public static bool CoerceBool(JToken token, bool defaultValue) + { + if (token == null || token.Type == JTokenType.Null) + return defaultValue; + + try + { + if (token.Type == JTokenType.Boolean) + return token.Value(); + + var s = token.ToString().Trim().ToLowerInvariant(); + if (s.Length == 0) + return defaultValue; + + if (bool.TryParse(s, out var b)) + return b; + + if (s == "1" || s == "yes" || s == "on") + return true; + + if (s == "0" || s == "no" || s == "off") + return false; + } + catch + { + // Swallow and return default + } + + return defaultValue; + } + + /// + /// Coerces a JToken to a nullable boolean value. + /// Returns null if token is null, empty, or cannot be parsed. + /// + /// The JSON token to coerce + /// The coerced boolean value or null + public static bool? CoerceBoolNullable(JToken token) + { + if (token == null || token.Type == JTokenType.Null) + return null; + + try + { + if (token.Type == JTokenType.Boolean) + return token.Value(); + + var s = token.ToString().Trim().ToLowerInvariant(); + if (s.Length == 0) + return null; + + if (bool.TryParse(s, out var b)) + return b; + + if (s == "1" || s == "yes" || s == "on") + return true; + + if (s == "0" || s == "no" || s == "off") + return false; + } + catch + { + // Swallow and return null + } + + return null; + } + + /// + /// Coerces a JToken to a float value, handling strings and integers. + /// + /// The JSON token to coerce + /// Default value if coercion fails + /// The coerced float value or default + public static float CoerceFloat(JToken token, float defaultValue) + { + if (token == null || token.Type == JTokenType.Null) + return defaultValue; + + try + { + if (token.Type == JTokenType.Float || token.Type == JTokenType.Integer) + return token.Value(); + + var s = token.ToString().Trim(); + if (s.Length == 0) + return defaultValue; + + if (float.TryParse(s, NumberStyles.Float, CultureInfo.InvariantCulture, out var f)) + return f; + } + catch + { + // Swallow and return default + } + + return defaultValue; + } + + /// + /// Coerces a JToken to a nullable float value. + /// Returns null if token is null, empty, or cannot be parsed. + /// + /// The JSON token to coerce + /// The coerced float value or null + public static float? CoerceFloatNullable(JToken token) + { + if (token == null || token.Type == JTokenType.Null) + return null; + + try + { + if (token.Type == JTokenType.Float || token.Type == JTokenType.Integer) + return token.Value(); + + var s = token.ToString().Trim(); + if (s.Length == 0) + return null; + + if (float.TryParse(s, NumberStyles.Float, CultureInfo.InvariantCulture, out var f)) + return f; + } + catch + { + // Swallow and return null + } + + return null; + } + + /// + /// Coerces a JToken to a string value, with null handling. + /// + /// The JSON token to coerce + /// Default value if null or empty + /// The string value or default + public static string CoerceString(JToken token, string defaultValue = null) + { + if (token == null || token.Type == JTokenType.Null) + return defaultValue; + + var s = token.ToString(); + return string.IsNullOrEmpty(s) ? defaultValue : s; + } + + /// + /// Coerces a JToken to an enum value, handling strings. + /// + /// The enum type + /// The JSON token to coerce + /// Default value if coercion fails + /// The coerced enum value or default + public static T CoerceEnum(JToken token, T defaultValue) where T : struct, Enum + { + if (token == null || token.Type == JTokenType.Null) + return defaultValue; + + try + { + var s = token.ToString().Trim(); + if (s.Length == 0) + return defaultValue; + + if (Enum.TryParse(s, ignoreCase: true, out var result)) + return result; + } + catch + { + // Swallow and return default + } + + return defaultValue; + } + + /// + /// Checks if a JToken represents a numeric value (integer or float). + /// Useful for validating JSON values before parsing. + /// + /// The JSON token to check + /// True if the token is an integer or float, false otherwise + public static bool IsNumericToken(JToken token) + { + return token != null && (token.Type == JTokenType.Integer || token.Type == JTokenType.Float); + } + + /// + /// Validates that an optional field in a JObject is numeric if present. + /// Used for dry-run validation of complex type formats. + /// + /// The JSON object containing the field + /// The name of the field to validate + /// Output error message if validation fails + /// True if the field is absent, null, or numeric; false if present but non-numeric + public static bool ValidateNumericField(JObject obj, string fieldName, out string error) + { + error = null; + var token = obj[fieldName]; + if (token == null || token.Type == JTokenType.Null) + { + return true; // Field not present, valid (will use default) + } + if (!IsNumericToken(token)) + { + error = $"must be a number, got {token.Type}"; + return false; + } + return true; + } + + /// + /// Validates that an optional field in a JObject is an integer if present. + /// Used for dry-run validation of complex type formats. + /// + /// The JSON object containing the field + /// The name of the field to validate + /// Output error message if validation fails + /// True if the field is absent, null, or integer; false if present but non-integer + public static bool ValidateIntegerField(JObject obj, string fieldName, out string error) + { + error = null; + var token = obj[fieldName]; + if (token == null || token.Type == JTokenType.Null) + { + return true; // Field not present, valid + } + if (token.Type != JTokenType.Integer) + { + error = $"must be an integer, got {token.Type}"; + return false; + } + return true; + } + + /// + /// Normalizes a property name by removing separators and converting to camelCase. + /// Handles common naming variations from LLMs and humans. + /// Examples: + /// "Use Gravity" → "useGravity" + /// "is_kinematic" → "isKinematic" + /// "max-angular-velocity" → "maxAngularVelocity" + /// "Angular Drag" → "angularDrag" + /// + /// The property name to normalize + /// The normalized camelCase property name + public static string NormalizePropertyName(string input) + { + if (string.IsNullOrEmpty(input)) + return input; + + // Split on common separators: space, underscore, dash + var parts = input.Split(new[] { ' ', '_', '-' }, StringSplitOptions.RemoveEmptyEntries); + if (parts.Length == 0) + return input; + + // First word is lowercase, subsequent words are Title case (camelCase) + var sb = new System.Text.StringBuilder(); + for (int i = 0; i < parts.Length; i++) + { + string part = parts[i]; + if (i == 0) + { + // First word: all lowercase + sb.Append(part.ToLowerInvariant()); + } + else + { + // Subsequent words: capitalize first letter, lowercase rest + sb.Append(char.ToUpperInvariant(part[0])); + if (part.Length > 1) + sb.Append(part.Substring(1).ToLowerInvariant()); + } + } + return sb.ToString(); + } + } +} + diff --git a/Packages/MCPForUnity/Editor/Helpers/ParamCoercion.cs.meta b/Packages/MCPForUnity/Editor/Helpers/ParamCoercion.cs.meta new file mode 100644 index 00000000..36b9ec68 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/ParamCoercion.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: db54fbbe3ac7f429fbf808f72831374a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Helpers/PortManager.cs b/Packages/MCPForUnity/Editor/Helpers/PortManager.cs new file mode 100644 index 00000000..de46fd8f --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/PortManager.cs @@ -0,0 +1,345 @@ +using System; +using System.IO; +using System.Net; +using System.Net.Sockets; +using System.Security.Cryptography; +using System.Text; +using System.Threading; +using MCPForUnity.Editor.Constants; +using Newtonsoft.Json; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.Helpers +{ + /// + /// Manages dynamic port allocation and persistent storage for MCP for Unity + /// + public static class PortManager + { + private static bool IsDebugEnabled() + { + try { return EditorPrefs.GetBool(EditorPrefKeys.DebugLogs, false); } + catch { return false; } + } + + private const int DefaultPort = 6400; + private const int MaxPortAttempts = 100; + private const string RegistryFileName = "unity-mcp-port.json"; + + [Serializable] + public class PortConfig + { + public int unity_port; + public string created_date; + public string project_path; + } + + /// + /// Get the port to use from storage, or return the default if none has been saved yet. + /// + /// Port number to use + public static int GetPortWithFallback() + { + var storedConfig = GetStoredPortConfig(); + if (storedConfig != null && + storedConfig.unity_port > 0 && + string.Equals(storedConfig.project_path ?? string.Empty, Application.dataPath ?? string.Empty, StringComparison.OrdinalIgnoreCase)) + { + return storedConfig.unity_port; + } + + return DefaultPort; + } + + /// + /// Discover and save a new available port (used by Auto-Connect button) + /// + /// New available port + public static int DiscoverNewPort() + { + int newPort = FindAvailablePort(); + SavePort(newPort); + if (IsDebugEnabled()) McpLog.Info($"Discovered and saved new port: {newPort}"); + return newPort; + } + + /// + /// Persist a user-selected port and return the value actually stored. + /// If is unavailable, the next available port is chosen instead. + /// + public static int SetPreferredPort(int port) + { + if (port <= 0) + { + throw new ArgumentOutOfRangeException(nameof(port), "Port must be positive."); + } + + if (!IsPortAvailable(port)) + { + throw new InvalidOperationException($"Port {port} is already in use."); + } + + SavePort(port); + return port; + } + + /// + /// Find an available port starting from the default port + /// + /// Available port number + private static int FindAvailablePort() + { + // Always try default port first + if (IsPortAvailable(DefaultPort)) + { + if (IsDebugEnabled()) McpLog.Info($"Using default port {DefaultPort}"); + return DefaultPort; + } + + if (IsDebugEnabled()) McpLog.Info($"Default port {DefaultPort} is in use, searching for alternative..."); + + // Search for alternatives + for (int port = DefaultPort + 1; port < DefaultPort + MaxPortAttempts; port++) + { + if (IsPortAvailable(port)) + { + if (IsDebugEnabled()) McpLog.Info($"Found available port {port}"); + return port; + } + } + + throw new Exception($"No available ports found in range {DefaultPort}-{DefaultPort + MaxPortAttempts}"); + } + + /// + /// Check if a specific port is available for binding + /// + /// Port to check + /// True if port is available + public static bool IsPortAvailable(int port) + { + // Start with quick loopback check + try + { + var testListener = new TcpListener(IPAddress.Loopback, port); + testListener.Start(); + testListener.Stop(); + } + catch (SocketException) + { + return false; + } + +#if UNITY_EDITOR_OSX + // On macOS, the OS might report the port as available (SO_REUSEADDR) even if another process + // is using it, unless we also check active connections or try a stricter bind. + // Double check by trying to Connect to it. If we CAN connect, it's NOT available. + try + { + using var client = new TcpClient(); + var connectTask = client.ConnectAsync(IPAddress.Loopback, port); + // If we connect successfully, someone is listening -> Not available + if (connectTask.Wait(50) && client.Connected) + { + if (IsDebugEnabled()) McpLog.Info($"[PortManager] Port {port} bind succeeded but connection also succeeded -> Not available (Conflict)."); + return false; + } + } + catch + { + // Connection failed -> likely available (or firewall blocked, but we assume available) + if (IsDebugEnabled()) McpLog.Info($"[PortManager] Port {port} connection failed -> likely available."); + } +#endif + + return true; + } + + /// + /// Check if a port is currently being used by MCP for Unity + /// This helps avoid unnecessary port changes when Unity itself is using the port + /// + /// Port to check + /// True if port appears to be used by MCP for Unity + public static bool IsPortUsedByMCPForUnity(int port) + { + try + { + // Try to make a quick connection to see if it's an MCP for Unity server + using var client = new TcpClient(); + var connectTask = client.ConnectAsync(IPAddress.Loopback, port); + if (connectTask.Wait(100)) // 100ms timeout + { + // If connection succeeded, it's likely the MCP for Unity server + return client.Connected; + } + return false; + } + catch + { + return false; + } + } + + /// + /// Wait for a port to become available for a limited amount of time. + /// Used to bridge the gap during domain reload when the old listener + /// hasn't released the socket yet. + /// + private static bool WaitForPortRelease(int port, int timeoutMs) + { + int waited = 0; + const int step = 100; + while (waited < timeoutMs) + { + if (IsPortAvailable(port)) + { + return true; + } + + // If the port is in use by an MCP instance, continue waiting briefly + if (!IsPortUsedByMCPForUnity(port)) + { + // In use by something else; don't keep waiting + return false; + } + + Thread.Sleep(step); + waited += step; + } + return IsPortAvailable(port); + } + + /// + /// Save port to persistent storage + /// + /// Port to save + private static void SavePort(int port) + { + try + { + var portConfig = new PortConfig + { + unity_port = port, + created_date = DateTime.UtcNow.ToString("O"), + project_path = Application.dataPath + }; + + string registryDir = GetRegistryDirectory(); + Directory.CreateDirectory(registryDir); + + string registryFile = GetRegistryFilePath(); + string json = JsonConvert.SerializeObject(portConfig, Formatting.Indented); + // Write to hashed, project-scoped file + File.WriteAllText(registryFile, json, new System.Text.UTF8Encoding(false)); + // Also write to legacy stable filename to avoid hash/case drift across reloads + string legacy = Path.Combine(GetRegistryDirectory(), RegistryFileName); + File.WriteAllText(legacy, json, new System.Text.UTF8Encoding(false)); + + if (IsDebugEnabled()) McpLog.Info($"Saved port {port} to storage"); + } + catch (Exception ex) + { + McpLog.Warn($"Could not save port to storage: {ex.Message}"); + } + } + + /// + /// Load port from persistent storage + /// + /// Stored port number, or 0 if not found + private static int LoadStoredPort() + { + try + { + string registryFile = GetRegistryFilePath(); + + if (!File.Exists(registryFile)) + { + // Backwards compatibility: try the legacy file name + string legacy = Path.Combine(GetRegistryDirectory(), RegistryFileName); + if (!File.Exists(legacy)) + { + return 0; + } + registryFile = legacy; + } + + string json = File.ReadAllText(registryFile); + var portConfig = JsonConvert.DeserializeObject(json); + + return portConfig?.unity_port ?? 0; + } + catch (Exception ex) + { + McpLog.Warn($"Could not load port from storage: {ex.Message}"); + return 0; + } + } + + /// + /// Get the current stored port configuration + /// + /// Port configuration if exists, null otherwise + public static PortConfig GetStoredPortConfig() + { + try + { + string registryFile = GetRegistryFilePath(); + + if (!File.Exists(registryFile)) + { + // Backwards compatibility: try the legacy file + string legacy = Path.Combine(GetRegistryDirectory(), RegistryFileName); + if (!File.Exists(legacy)) + { + return null; + } + registryFile = legacy; + } + + string json = File.ReadAllText(registryFile); + return JsonConvert.DeserializeObject(json); + } + catch (Exception ex) + { + McpLog.Warn($"Could not load port config: {ex.Message}"); + return null; + } + } + + private static string GetRegistryDirectory() + { + return Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".unity-mcp"); + } + + private static string GetRegistryFilePath() + { + string dir = GetRegistryDirectory(); + string hash = ComputeProjectHash(Application.dataPath); + string fileName = $"unity-mcp-port-{hash}.json"; + return Path.Combine(dir, fileName); + } + + private static string ComputeProjectHash(string input) + { + try + { + using SHA1 sha1 = SHA1.Create(); + byte[] bytes = Encoding.UTF8.GetBytes(input ?? string.Empty); + byte[] hashBytes = sha1.ComputeHash(bytes); + var sb = new StringBuilder(); + foreach (byte b in hashBytes) + { + sb.Append(b.ToString("x2")); + } + return sb.ToString()[..8]; // short, sufficient for filenames + } + catch + { + return "default"; + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Helpers/PortManager.cs.meta b/Packages/MCPForUnity/Editor/Helpers/PortManager.cs.meta new file mode 100644 index 00000000..17fd3ef1 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/PortManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 28c39813a10b4331afc764a04089cbef +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Helpers/PrefabUtilityHelper.cs b/Packages/MCPForUnity/Editor/Helpers/PrefabUtilityHelper.cs new file mode 100644 index 00000000..88397fb6 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/PrefabUtilityHelper.cs @@ -0,0 +1,228 @@ +using System; +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.Helpers +{ + /// + /// Provides common utility methods for working with Unity Prefab assets. + /// + public static class PrefabUtilityHelper + { + /// + /// Gets the GUID for a prefab asset path. + /// + /// The Unity asset path (e.g., "Assets/Prefabs/MyPrefab.prefab") + /// The GUID string, or null if the path is invalid. + public static string GetPrefabGUID(string assetPath) + { + if (string.IsNullOrEmpty(assetPath)) + { + return null; + } + + try + { + return AssetDatabase.AssetPathToGUID(assetPath); + } + catch (Exception ex) + { + McpLog.Warn($"Failed to get GUID for asset path '{assetPath}': {ex.Message}"); + return null; + } + } + + /// + /// Gets variant information if the prefab is a variant. + /// + /// The prefab GameObject to check. + /// A tuple containing (isVariant, parentPath, parentGuid). + public static (bool isVariant, string parentPath, string parentGuid) GetVariantInfo(GameObject prefabAsset) + { + if (prefabAsset == null) + { + return (false, null, null); + } + + try + { + PrefabAssetType assetType = PrefabUtility.GetPrefabAssetType(prefabAsset); + if (assetType != PrefabAssetType.Variant) + { + return (false, null, null); + } + + GameObject parentAsset = PrefabUtility.GetCorrespondingObjectFromSource(prefabAsset); + if (parentAsset == null) + { + return (true, null, null); + } + + string parentPath = AssetDatabase.GetAssetPath(parentAsset); + string parentGuid = GetPrefabGUID(parentPath); + + return (true, parentPath, parentGuid); + } + catch (Exception ex) + { + McpLog.Warn($"Failed to get variant info for '{prefabAsset.name}': {ex.Message}"); + return (false, null, null); + } + } + + /// + /// Gets the list of component type names on a GameObject. + /// + /// The GameObject to inspect. + /// A list of component type full names. + public static List GetComponentTypeNames(GameObject obj) + { + var typeNames = new List(); + + if (obj == null) + { + return typeNames; + } + + try + { + var components = obj.GetComponents(); + foreach (var component in components) + { + if (component != null) + { + typeNames.Add(component.GetType().FullName); + } + } + } + catch (Exception ex) + { + McpLog.Warn($"Failed to get component types for '{obj.name}': {ex.Message}"); + } + + return typeNames; + } + + /// + /// Recursively counts all children in the hierarchy. + /// + /// The root transform to count from. + /// Total number of children in the hierarchy. + public static int CountChildrenRecursive(Transform transform) + { + if (transform == null) + { + return 0; + } + + int count = transform.childCount; + for (int i = 0; i < transform.childCount; i++) + { + count += CountChildrenRecursive(transform.GetChild(i)); + } + return count; + } + + /// + /// Gets the source prefab path for a nested prefab instance. + /// + /// The GameObject to check. + /// The asset path of the source prefab, or null if not a nested prefab. + public static string GetNestedPrefabPath(GameObject gameObject) + { + if (gameObject == null || !PrefabUtility.IsAnyPrefabInstanceRoot(gameObject)) + { + return null; + } + + try + { + var sourcePrefab = PrefabUtility.GetCorrespondingObjectFromSource(gameObject); + if (sourcePrefab != null) + { + return AssetDatabase.GetAssetPath(sourcePrefab); + } + } + catch (Exception ex) + { + McpLog.Warn($"Failed to get nested prefab path for '{gameObject.name}': {ex.Message}"); + } + + return null; + } + + /// + /// Gets the nesting depth of a prefab instance within the prefab hierarchy. + /// Returns 0 for main prefab root, 1 for first-level nested, 2 for second-level, etc. + /// Returns -1 for non-prefab-root objects. + /// + /// The GameObject to analyze. + /// The root transform of the main prefab asset. + /// Nesting depth (0=main root, 1+=nested), or -1 if not a prefab root. + public static int GetPrefabNestingDepth(GameObject gameObject, Transform mainPrefabRoot) + { + if (gameObject == null) + return -1; + + // Main prefab root + if (gameObject.transform == mainPrefabRoot) + return 0; + + // Not a prefab instance root + if (!PrefabUtility.IsAnyPrefabInstanceRoot(gameObject)) + return -1; + + // Calculate depth by walking up the hierarchy + int depth = 0; + Transform current = gameObject.transform; + + while (current != null && current != mainPrefabRoot) + { + if (PrefabUtility.IsAnyPrefabInstanceRoot(current.gameObject)) + { + depth++; + } + current = current.parent; + } + + return depth; + } + + /// + /// Gets the parent prefab path for a nested prefab instance. + /// Returns null for main prefab root or non-prefab objects. + /// + /// The GameObject to analyze. + /// The root transform of the main prefab asset. + /// The asset path of the parent prefab, or null if none. + public static string GetParentPrefabPath(GameObject gameObject, Transform mainPrefabRoot) + { + if (gameObject == null || gameObject.transform == mainPrefabRoot) + return null; + + if (!PrefabUtility.IsAnyPrefabInstanceRoot(gameObject)) + return null; + + // Walk up the hierarchy to find the parent prefab instance + Transform current = gameObject.transform.parent; + + while (current != null && current != mainPrefabRoot) + { + if (PrefabUtility.IsAnyPrefabInstanceRoot(current.gameObject)) + { + return GetNestedPrefabPath(current.gameObject); + } + current = current.parent; + } + + // Parent is the main prefab root - get its asset path + if (mainPrefabRoot != null) + { + return AssetDatabase.GetAssetPath(mainPrefabRoot.gameObject); + } + + return null; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Helpers/PrefabUtilityHelper.cs.meta b/Packages/MCPForUnity/Editor/Helpers/PrefabUtilityHelper.cs.meta new file mode 100644 index 00000000..0f23694a --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/PrefabUtilityHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ebe2be77e64f4d4f811614b198210017 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Helpers/ProjectIdentityUtility.cs b/Packages/MCPForUnity/Editor/Helpers/ProjectIdentityUtility.cs new file mode 100644 index 00000000..34a53916 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/ProjectIdentityUtility.cs @@ -0,0 +1,260 @@ +using System; +using System.IO; +using System.Security.Cryptography; +using System.Text; +using MCPForUnity.Editor.Constants; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.Helpers +{ + /// + /// Provides shared utilities for deriving deterministic project identity information + /// used by transport clients (hash, name, persistent session id). + /// + [InitializeOnLoad] + internal static class ProjectIdentityUtility + { + private const string SessionPrefKey = EditorPrefKeys.SessionId; + private static bool _legacyKeyCleared; + private static string _cachedProjectName = "Unknown"; + private static string _cachedProjectHash = "default"; + private static string _fallbackSessionId; + private static bool _cacheScheduled; + + static ProjectIdentityUtility() + { + ScheduleCacheRefresh(); + EditorApplication.projectChanged += ScheduleCacheRefresh; + } + + private static void ScheduleCacheRefresh() + { + if (_cacheScheduled) + { + return; + } + + _cacheScheduled = true; + EditorApplication.delayCall += CacheIdentityOnMainThread; + } + + private static void CacheIdentityOnMainThread() + { + EditorApplication.delayCall -= CacheIdentityOnMainThread; + _cacheScheduled = false; + UpdateIdentityCache(); + } + + private static void UpdateIdentityCache() + { + try + { + string dataPath = Application.dataPath; + if (string.IsNullOrEmpty(dataPath)) + { + return; + } + + _cachedProjectHash = ComputeProjectHash(dataPath); + _cachedProjectName = ComputeProjectName(dataPath); + } + catch + { + // Ignore and keep defaults + } + } + + /// + /// Returns the SHA1 hash of the current project path (truncated to 16 characters). + /// Matches the legacy hash used by the stdio bridge and server registry. + /// + public static string GetProjectHash() + { + EnsureIdentityCache(); + return _cachedProjectHash; + } + + /// + /// Returns a human friendly project name derived from the Assets directory path, + /// or "Unknown" if the name cannot be determined. + /// + public static string GetProjectName() + { + EnsureIdentityCache(); + return _cachedProjectName; + } + + private static string ComputeProjectHash(string dataPath) + { + try + { + using SHA1 sha1 = SHA1.Create(); + byte[] bytes = Encoding.UTF8.GetBytes(dataPath); + byte[] hashBytes = sha1.ComputeHash(bytes); + var sb = new StringBuilder(); + foreach (byte b in hashBytes) + { + sb.Append(b.ToString("x2")); + } + return sb.ToString(0, Math.Min(16, sb.Length)).ToLowerInvariant(); + } + catch + { + return "default"; + } + } + + private static string ComputeProjectName(string dataPath) + { + try + { + string projectPath = dataPath; + projectPath = projectPath.TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); + if (projectPath.EndsWith("Assets", StringComparison.OrdinalIgnoreCase)) + { + projectPath = projectPath[..^6].TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); + } + + string name = Path.GetFileName(projectPath); + return string.IsNullOrEmpty(name) ? "Unknown" : name; + } + catch + { + return "Unknown"; + } + } + + /// + /// Persists a server-assigned session id. + /// Safe to call from background threads. + /// + public static void SetSessionId(string sessionId) + { + if (string.IsNullOrEmpty(sessionId)) + { + return; + } + + EditorApplication.delayCall += () => + { + try + { + string projectHash = GetProjectHash(); + string projectSpecificKey = $"{SessionPrefKey}_{projectHash}"; + EditorPrefs.SetString(projectSpecificKey, sessionId); + } + catch (Exception ex) + { + McpLog.Warn($"Failed to persist session ID: {ex.Message}"); + } + }; + } + + /// + /// Retrieves a persistent session id for the plugin, creating one if absent. + /// The session id is unique per project (scoped by project hash). + /// + public static string GetOrCreateSessionId() + { + try + { + // Make the session ID project-specific by including the project hash in the key + string projectHash = GetProjectHash(); + string projectSpecificKey = $"{SessionPrefKey}_{projectHash}"; + + string sessionId = EditorPrefs.GetString(projectSpecificKey, string.Empty); + if (string.IsNullOrEmpty(sessionId)) + { + sessionId = Guid.NewGuid().ToString(); + EditorPrefs.SetString(projectSpecificKey, sessionId); + } + return sessionId; + } + catch + { + // If prefs are unavailable (e.g. during batch tests) fall back to runtime guid. + if (string.IsNullOrEmpty(_fallbackSessionId)) + { + _fallbackSessionId = Guid.NewGuid().ToString(); + } + + return _fallbackSessionId; + } + } + + /// + /// Clears the persisted session id (mainly for tests). + /// + public static void ResetSessionId() + { + try + { + // Clear the project-specific session ID + string projectHash = GetProjectHash(); + string projectSpecificKey = $"{SessionPrefKey}_{projectHash}"; + + if (EditorPrefs.HasKey(projectSpecificKey)) + { + EditorPrefs.DeleteKey(projectSpecificKey); + } + + if (!_legacyKeyCleared && EditorPrefs.HasKey(SessionPrefKey)) + { + EditorPrefs.DeleteKey(SessionPrefKey); + _legacyKeyCleared = true; + } + + _fallbackSessionId = null; + } + catch + { + // Ignore + } + } + + private static void EnsureIdentityCache() + { + // When Application.dataPath is unavailable (e.g., batch mode) we fall back to + // hashing the current working directory/Assets path so each project still + // derives a deterministic, per-project session id rather than sharing "default". + if (!string.IsNullOrEmpty(_cachedProjectHash) && _cachedProjectHash != "default") + { + return; + } + + UpdateIdentityCache(); + + if (!string.IsNullOrEmpty(_cachedProjectHash) && _cachedProjectHash != "default") + { + return; + } + + string fallback = TryComputeFallbackProjectHash(); + if (!string.IsNullOrEmpty(fallback)) + { + _cachedProjectHash = fallback; + } + } + + private static string TryComputeFallbackProjectHash() + { + try + { + string workingDirectory = Directory.GetCurrentDirectory(); + if (string.IsNullOrEmpty(workingDirectory)) + { + return "default"; + } + + // Normalise trailing separators so hashes remain stable + workingDirectory = workingDirectory.TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); + return ComputeProjectHash(Path.Combine(workingDirectory, "Assets")); + } + catch + { + return "default"; + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Helpers/ProjectIdentityUtility.cs.meta b/Packages/MCPForUnity/Editor/Helpers/ProjectIdentityUtility.cs.meta new file mode 100644 index 00000000..b7879e1f --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/ProjectIdentityUtility.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 936e878ce1275453bae5e0cf03bd9d30 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Helpers/PropertyConversion.cs b/Packages/MCPForUnity/Editor/Helpers/PropertyConversion.cs new file mode 100644 index 00000000..0e3af0ae --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/PropertyConversion.cs @@ -0,0 +1,93 @@ +using System; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using MCPForUnity.Editor.Helpers; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.Helpers +{ + /// + /// Unified property conversion from JSON to Unity types. + /// Uses UnityJsonSerializer for consistent type handling. + /// + public static class PropertyConversion + { + /// + /// Converts a JToken to the specified target type using Unity type converters. + /// + /// The JSON token to convert + /// The target type to convert to + /// The converted object, or null if conversion fails + public static object ConvertToType(JToken token, Type targetType) + { + if (token == null || token.Type == JTokenType.Null) + { + if (targetType.IsValueType && Nullable.GetUnderlyingType(targetType) == null) + { + McpLog.Warn($"[PropertyConversion] Cannot assign null to non-nullable value type {targetType.Name}. Returning default value."); + return Activator.CreateInstance(targetType); + } + return null; + } + + try + { + // Use the shared Unity serializer with custom converters + return token.ToObject(targetType, UnityJsonSerializer.Instance); + } + catch (Exception ex) + { + McpLog.Error($"Error converting token to {targetType.FullName}: {ex.Message}\nToken: {token.ToString(Formatting.None)}"); + throw; + } + } + + /// + /// Tries to convert a JToken to the specified target type. + /// Returns null and logs warning on failure (does not throw). + /// + public static object TryConvertToType(JToken token, Type targetType) + { + try + { + return ConvertToType(token, targetType); + } + catch + { + return null; + } + } + + /// + /// Generic version of ConvertToType. + /// + public static T ConvertTo(JToken token) + { + return (T)ConvertToType(token, typeof(T)); + } + + /// + /// Converts a JToken to a Unity asset by loading from path. + /// + /// JToken containing asset path + /// Expected asset type + /// The loaded asset, or null if not found + public static UnityEngine.Object LoadAssetFromToken(JToken token, Type targetType) + { + if (token == null || token.Type != JTokenType.String) + return null; + + string assetPath = AssetPathUtility.SanitizeAssetPath(token.ToString()); + UnityEngine.Object loadedAsset = AssetDatabase.LoadAssetAtPath(assetPath, targetType); + + if (loadedAsset == null) + { + McpLog.Warn($"[PropertyConversion] Could not load asset of type {targetType.Name} from path: {assetPath}"); + } + + return loadedAsset; + } + } +} + diff --git a/Packages/MCPForUnity/Editor/Helpers/PropertyConversion.cs.meta b/Packages/MCPForUnity/Editor/Helpers/PropertyConversion.cs.meta new file mode 100644 index 00000000..098528c5 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/PropertyConversion.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4b4187d5b338a453fbe0baceaeea6bcd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Helpers/RenderPipelineUtility.cs b/Packages/MCPForUnity/Editor/Helpers/RenderPipelineUtility.cs new file mode 100644 index 00000000..2065d173 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/RenderPipelineUtility.cs @@ -0,0 +1,284 @@ +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Rendering; +using UnityEditor; + +namespace MCPForUnity.Editor.Helpers +{ + internal static class RenderPipelineUtility + { + internal enum PipelineKind + { + BuiltIn, + Universal, + HighDefinition, + Custom + } + + internal enum VFXComponentType + { + ParticleSystem, + LineRenderer, + TrailRenderer + } + + private static Dictionary s_DefaultVFXMaterials = new Dictionary(); + + private static readonly string[] BuiltInLitShaders = { "Standard", "Legacy Shaders/Diffuse" }; + private static readonly string[] BuiltInUnlitShaders = { "Unlit/Color", "Unlit/Texture" }; + private static readonly string[] UrpLitShaders = { "Universal Render Pipeline/Lit", "Universal Render Pipeline/Simple Lit" }; + private static readonly string[] UrpUnlitShaders = { "Universal Render Pipeline/Unlit" }; + private static readonly string[] HdrpLitShaders = { "HDRP/Lit", "High Definition Render Pipeline/Lit" }; + private static readonly string[] HdrpUnlitShaders = { "HDRP/Unlit", "High Definition Render Pipeline/Unlit" }; + + internal static PipelineKind GetActivePipeline() + { + var asset = GraphicsSettings.currentRenderPipeline; + if (asset == null) + { + return PipelineKind.BuiltIn; + } + + var typeName = asset.GetType().FullName ?? string.Empty; + if (typeName.IndexOf("HighDefinition", StringComparison.OrdinalIgnoreCase) >= 0 || + typeName.IndexOf("HDRP", StringComparison.OrdinalIgnoreCase) >= 0) + { + return PipelineKind.HighDefinition; + } + + if (typeName.IndexOf("Universal", StringComparison.OrdinalIgnoreCase) >= 0 || + typeName.IndexOf("URP", StringComparison.OrdinalIgnoreCase) >= 0) + { + return PipelineKind.Universal; + } + + return PipelineKind.Custom; + } + + internal static Shader ResolveShader(string requestedNameOrAlias) + { + var pipeline = GetActivePipeline(); + + if (!string.IsNullOrWhiteSpace(requestedNameOrAlias)) + { + var alias = requestedNameOrAlias.Trim(); + var aliasMatch = ResolveAlias(alias, pipeline); + if (aliasMatch != null) + { + WarnIfPipelineMismatch(aliasMatch.name, pipeline); + return aliasMatch; + } + + var direct = Shader.Find(alias); + if (direct != null) + { + WarnIfPipelineMismatch(direct.name, pipeline); + return direct; + } + + McpLog.Warn($"Shader '{alias}' not found. Falling back to {pipeline} defaults."); + } + + var fallback = ResolveDefaultLitShader(pipeline) + ?? ResolveDefaultLitShader(PipelineKind.BuiltIn) + ?? Shader.Find("Unlit/Color"); + + if (fallback != null) + { + WarnIfPipelineMismatch(fallback.name, pipeline); + } + + return fallback; + } + + internal static Shader ResolveDefaultLitShader(PipelineKind pipeline) + { + return pipeline switch + { + PipelineKind.HighDefinition => TryFindShader(HdrpLitShaders) ?? TryFindShader(UrpLitShaders), + PipelineKind.Universal => TryFindShader(UrpLitShaders) ?? TryFindShader(HdrpLitShaders), + PipelineKind.Custom => TryFindShader(BuiltInLitShaders) ?? TryFindShader(UrpLitShaders) ?? TryFindShader(HdrpLitShaders), + _ => TryFindShader(BuiltInLitShaders) ?? Shader.Find("Unlit/Color") + }; + } + + internal static Shader ResolveDefaultUnlitShader(PipelineKind pipeline) + { + return pipeline switch + { + PipelineKind.HighDefinition => TryFindShader(HdrpUnlitShaders) ?? TryFindShader(UrpUnlitShaders) ?? TryFindShader(BuiltInUnlitShaders), + PipelineKind.Universal => TryFindShader(UrpUnlitShaders) ?? TryFindShader(HdrpUnlitShaders) ?? TryFindShader(BuiltInUnlitShaders), + PipelineKind.Custom => TryFindShader(BuiltInUnlitShaders) ?? TryFindShader(UrpUnlitShaders) ?? TryFindShader(HdrpUnlitShaders), + _ => TryFindShader(BuiltInUnlitShaders) + }; + } + + private static Shader ResolveAlias(string alias, PipelineKind pipeline) + { + if (string.Equals(alias, "lit", StringComparison.OrdinalIgnoreCase) || + string.Equals(alias, "default", StringComparison.OrdinalIgnoreCase) || + string.Equals(alias, "default_lit", StringComparison.OrdinalIgnoreCase) || + string.Equals(alias, "standard", StringComparison.OrdinalIgnoreCase)) + { + return ResolveDefaultLitShader(pipeline); + } + + if (string.Equals(alias, "unlit", StringComparison.OrdinalIgnoreCase)) + { + return ResolveDefaultUnlitShader(pipeline); + } + + if (string.Equals(alias, "urp_lit", StringComparison.OrdinalIgnoreCase)) + { + return TryFindShader(UrpLitShaders); + } + + if (string.Equals(alias, "hdrp_lit", StringComparison.OrdinalIgnoreCase)) + { + return TryFindShader(HdrpLitShaders); + } + + if (string.Equals(alias, "built_in_lit", StringComparison.OrdinalIgnoreCase)) + { + return TryFindShader(BuiltInLitShaders); + } + + return null; + } + + private static Shader TryFindShader(params string[] shaderNames) + { + foreach (var shaderName in shaderNames) + { + var shader = Shader.Find(shaderName); + if (shader != null) + { + return shader; + } + } + return null; + } + + private static void WarnIfPipelineMismatch(string shaderName, PipelineKind activePipeline) + { + if (string.IsNullOrEmpty(shaderName)) + { + return; + } + + var lowerName = shaderName.ToLowerInvariant(); + bool shaderLooksUrp = lowerName.Contains("universal render pipeline") || lowerName.Contains("urp/"); + bool shaderLooksHdrp = lowerName.Contains("high definition render pipeline") || lowerName.Contains("hdrp/"); + bool shaderLooksBuiltin = lowerName.Contains("standard") || lowerName.Contains("legacy shaders/"); + bool shaderLooksSrp = shaderLooksUrp || shaderLooksHdrp; + + switch (activePipeline) + { + case PipelineKind.HighDefinition: + if (shaderLooksUrp) + { + McpLog.Warn($"[RenderPipelineUtility] Active pipeline is HDRP but shader '{shaderName}' looks URP-based. Asset may appear incorrect."); + } + else if (shaderLooksBuiltin && !shaderLooksHdrp) + { + McpLog.Warn($"[RenderPipelineUtility] Active pipeline is HDRP but shader '{shaderName}' looks Built-in. Consider using an HDRP shader for correct results."); + } + break; + case PipelineKind.Universal: + if (shaderLooksHdrp) + { + McpLog.Warn($"[RenderPipelineUtility] Active pipeline is URP but shader '{shaderName}' looks HDRP-based. Asset may appear incorrect."); + } + else if (shaderLooksBuiltin && !shaderLooksUrp) + { + McpLog.Warn($"[RenderPipelineUtility] Active pipeline is URP but shader '{shaderName}' looks Built-in. Consider using a URP shader for correct results."); + } + break; + case PipelineKind.BuiltIn: + if (shaderLooksSrp) + { + McpLog.Warn($"[RenderPipelineUtility] Active pipeline is Built-in but shader '{shaderName}' targets URP/HDRP. Asset may not render as expected."); + } + break; + } + } + + internal static Material GetOrCreateDefaultVFXMaterial(VFXComponentType componentType) + { + var pipeline = GetActivePipeline(); + string cacheKey = $"{pipeline}_{componentType}"; + + if (s_DefaultVFXMaterials.TryGetValue(cacheKey, out Material cachedMaterial) && cachedMaterial != null) + { + return cachedMaterial; + } + + Material material = null; + + if (pipeline == PipelineKind.BuiltIn) + { + string builtinPath = componentType == VFXComponentType.ParticleSystem + ? "Default-Particle.mat" + : "Default-Line.mat"; + + material = AssetDatabase.GetBuiltinExtraResource(builtinPath); + } + + if (material == null) + { + Shader shader = ResolveDefaultUnlitShader(pipeline); + if (shader == null) + { + shader = Shader.Find("Unlit/Color"); + } + + if (shader != null) + { + material = new Material(shader); + material.name = $"Auto_Default_{componentType}_{pipeline}"; + + // Set default color (white is standard for VFX) + if (material.HasProperty("_Color")) + { + material.SetColor("_Color", Color.white); + } + if (material.HasProperty("_BaseColor")) + { + material.SetColor("_BaseColor", Color.white); + } + + if (componentType == VFXComponentType.ParticleSystem) + { + material.renderQueue = 3000; + if (material.HasProperty("_Mode")) + { + material.SetFloat("_Mode", 2); + } + if (material.HasProperty("_SrcBlend")) + { + material.SetFloat("_SrcBlend", (float)UnityEngine.Rendering.BlendMode.SrcAlpha); + } + if (material.HasProperty("_DstBlend")) + { + material.SetFloat("_DstBlend", (float)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha); + } + if (material.HasProperty("_ZWrite")) + { + material.SetFloat("_ZWrite", 0); + } + } + + McpLog.Info($"[RenderPipelineUtility] Created default VFX material for {componentType} using {shader.name}"); + } + } + + if (material != null) + { + s_DefaultVFXMaterials[cacheKey] = material; + } + + return material; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Helpers/RenderPipelineUtility.cs.meta b/Packages/MCPForUnity/Editor/Helpers/RenderPipelineUtility.cs.meta new file mode 100644 index 00000000..8e7273bb --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/RenderPipelineUtility.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5a0a1cfd55ab4bc99c74c52854f6bdf3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Helpers/RendererHelpers.cs b/Packages/MCPForUnity/Editor/Helpers/RendererHelpers.cs new file mode 100644 index 00000000..07e39a54 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/RendererHelpers.cs @@ -0,0 +1,241 @@ +using System; +using System.Collections.Generic; +using Newtonsoft.Json.Linq; +using UnityEngine; +using UnityEditor; + +namespace MCPForUnity.Editor.Helpers +{ + /// + /// Utility class for common Renderer property operations. + /// Used by ManageVFX for ParticleSystem, LineRenderer, and TrailRenderer components. + /// + public static class RendererHelpers + { + /// + /// Ensures a renderer has a material assigned. If not, auto-assigns a default material + /// based on the render pipeline and component type. + /// + /// The renderer to check + public static void EnsureMaterial(Renderer renderer) + { + if (renderer == null || renderer.sharedMaterial != null) + { + return; + } + + RenderPipelineUtility.VFXComponentType? componentType = null; + if (renderer is ParticleSystemRenderer) + { + componentType = RenderPipelineUtility.VFXComponentType.ParticleSystem; + } + else if (renderer is LineRenderer) + { + componentType = RenderPipelineUtility.VFXComponentType.LineRenderer; + } + else if (renderer is TrailRenderer) + { + componentType = RenderPipelineUtility.VFXComponentType.TrailRenderer; + } + + if (componentType.HasValue) + { + Material defaultMat = RenderPipelineUtility.GetOrCreateDefaultVFXMaterial(componentType.Value); + if (defaultMat != null) + { + Undo.RecordObject(renderer, "Assign default VFX material"); + EditorUtility.SetDirty(renderer); + renderer.sharedMaterial = defaultMat; + } + } + } + + /// + /// Applies common Renderer properties (shadows, lighting, probes, sorting, rendering layer). + /// Used by ParticleSetRenderer, LineSetProperties, TrailSetProperties. + /// + public static void ApplyCommonRendererProperties(Renderer renderer, JObject @params, List changes) + { + // Shadows + if (@params["shadowCastingMode"] != null && Enum.TryParse(@params["shadowCastingMode"].ToString(), true, out var shadowMode)) + { renderer.shadowCastingMode = shadowMode; changes.Add("shadowCastingMode"); } + if (@params["receiveShadows"] != null) { renderer.receiveShadows = @params["receiveShadows"].ToObject(); changes.Add("receiveShadows"); } + // Note: shadowBias is only available on specific renderer types (e.g., ParticleSystemRenderer), not base Renderer + + // Lighting and probes + if (@params["lightProbeUsage"] != null && Enum.TryParse(@params["lightProbeUsage"].ToString(), true, out var probeUsage)) + { renderer.lightProbeUsage = probeUsage; changes.Add("lightProbeUsage"); } + if (@params["reflectionProbeUsage"] != null && Enum.TryParse(@params["reflectionProbeUsage"].ToString(), true, out var reflectionUsage)) + { renderer.reflectionProbeUsage = reflectionUsage; changes.Add("reflectionProbeUsage"); } + + // Motion vectors + if (@params["motionVectorGenerationMode"] != null && Enum.TryParse(@params["motionVectorGenerationMode"].ToString(), true, out var motionMode)) + { renderer.motionVectorGenerationMode = motionMode; changes.Add("motionVectorGenerationMode"); } + + // Sorting + if (@params["sortingOrder"] != null) { renderer.sortingOrder = @params["sortingOrder"].ToObject(); changes.Add("sortingOrder"); } + if (@params["sortingLayerName"] != null) { renderer.sortingLayerName = @params["sortingLayerName"].ToString(); changes.Add("sortingLayerName"); } + if (@params["sortingLayerID"] != null) { renderer.sortingLayerID = @params["sortingLayerID"].ToObject(); changes.Add("sortingLayerID"); } + + // Rendering layer mask (for SRP) + if (@params["renderingLayerMask"] != null) { renderer.renderingLayerMask = @params["renderingLayerMask"].ToObject(); changes.Add("renderingLayerMask"); } + } + + /// + /// Gets common Renderer properties for GetInfo methods. + /// + public static object GetCommonRendererInfo(Renderer renderer) + { + return new + { + shadowCastingMode = renderer.shadowCastingMode.ToString(), + receiveShadows = renderer.receiveShadows, + lightProbeUsage = renderer.lightProbeUsage.ToString(), + reflectionProbeUsage = renderer.reflectionProbeUsage.ToString(), + sortingOrder = renderer.sortingOrder, + sortingLayerName = renderer.sortingLayerName, + renderingLayerMask = renderer.renderingLayerMask + }; + } + + + /// + /// Sets width properties for LineRenderer or TrailRenderer. + /// + /// JSON parameters containing width, startWidth, endWidth, widthCurve, widthMultiplier + /// List to track changed properties + /// Action to set start width + /// Action to set end width + /// Action to set width curve + /// Action to set width multiplier + /// Function to parse animation curve from JToken + public static void ApplyWidthProperties(JObject @params, List changes, + Action setStartWidth, Action setEndWidth, + Action setWidthCurve, Action setWidthMultiplier, + Func parseAnimationCurve) + { + if (@params["width"] != null) + { + float w = @params["width"].ToObject(); + setStartWidth(w); + setEndWidth(w); + changes.Add("width"); + } + if (@params["startWidth"] != null) { setStartWidth(@params["startWidth"].ToObject()); changes.Add("startWidth"); } + if (@params["endWidth"] != null) { setEndWidth(@params["endWidth"].ToObject()); changes.Add("endWidth"); } + if (@params["widthCurve"] != null) { setWidthCurve(parseAnimationCurve(@params["widthCurve"], 1f)); changes.Add("widthCurve"); } + if (@params["widthMultiplier"] != null) { setWidthMultiplier(@params["widthMultiplier"].ToObject()); changes.Add("widthMultiplier"); } + } + + /// + /// Sets color properties for LineRenderer or TrailRenderer. + /// + /// JSON parameters containing color, startColor, endColor, gradient + /// List to track changed properties + /// Action to set start color + /// Action to set end color + /// Action to set gradient + /// Function to parse color from JToken + /// Function to parse gradient from JToken + /// If true, sets end color alpha to 0 when using single color + public static void ApplyColorProperties(JObject @params, List changes, + Action setStartColor, Action setEndColor, + Action setGradient, + Func parseColor, Func parseGradient, + bool fadeEndAlpha = false) + { + if (@params["color"] != null) + { + Color c = parseColor(@params["color"]); + setStartColor(c); + setEndColor(fadeEndAlpha ? new Color(c.r, c.g, c.b, 0f) : c); + changes.Add("color"); + } + if (@params["startColor"] != null) { setStartColor(parseColor(@params["startColor"])); changes.Add("startColor"); } + if (@params["endColor"] != null) { setEndColor(parseColor(@params["endColor"])); changes.Add("endColor"); } + if (@params["gradient"] != null) { setGradient(parseGradient(@params["gradient"])); changes.Add("gradient"); } + } + + + /// + /// Sets material for a Renderer. + /// + /// The renderer to set material on + /// JSON parameters containing materialPath + /// Name for the undo operation + /// Function to find material by path + /// If true, auto-assigns default material when materialPath is not provided + public static object SetRendererMaterial(Renderer renderer, JObject @params, string undoName, Func findMaterial, bool autoAssignDefault = true) + { + if (renderer == null) return new { success = false, message = "Renderer not found" }; + + string path = @params["materialPath"]?.ToString(); + + if (string.IsNullOrEmpty(path)) + { + if (!autoAssignDefault) + { + return new { success = false, message = "materialPath required" }; + } + + RenderPipelineUtility.VFXComponentType? componentType = null; + if (renderer is ParticleSystemRenderer) + { + componentType = RenderPipelineUtility.VFXComponentType.ParticleSystem; + } + else if (renderer is LineRenderer) + { + componentType = RenderPipelineUtility.VFXComponentType.LineRenderer; + } + else if (renderer is TrailRenderer) + { + componentType = RenderPipelineUtility.VFXComponentType.TrailRenderer; + } + + if (componentType.HasValue) + { + Material defaultMat = RenderPipelineUtility.GetOrCreateDefaultVFXMaterial(componentType.Value); + if (defaultMat != null) + { + Undo.RecordObject(renderer, undoName); + renderer.sharedMaterial = defaultMat; + EditorUtility.SetDirty(renderer); + return new { success = true, message = $"Auto-assigned default material: {defaultMat.name}" }; + } + } + + return new { success = false, message = "materialPath required" }; + } + + Material mat = findMaterial(path); + if (mat == null) return new { success = false, message = $"Material not found: {path}" }; + + Undo.RecordObject(renderer, undoName); + renderer.sharedMaterial = mat; + EditorUtility.SetDirty(renderer); + + return new { success = true, message = $"Set material to {mat.name}" }; + } + + + /// + /// Applies Line/Trail specific properties (loop, alignment, textureMode, etc.). + /// + public static void ApplyLineTrailProperties(JObject @params, List changes, + Action setLoop, Action setUseWorldSpace, + Action setNumCornerVertices, Action setNumCapVertices, + Action setAlignment, Action setTextureMode, + Action setGenerateLightingData) + { + if (@params["loop"] != null && setLoop != null) { setLoop(@params["loop"].ToObject()); changes.Add("loop"); } + if (@params["useWorldSpace"] != null && setUseWorldSpace != null) { setUseWorldSpace(@params["useWorldSpace"].ToObject()); changes.Add("useWorldSpace"); } + if (@params["numCornerVertices"] != null && setNumCornerVertices != null) { setNumCornerVertices(@params["numCornerVertices"].ToObject()); changes.Add("numCornerVertices"); } + if (@params["numCapVertices"] != null && setNumCapVertices != null) { setNumCapVertices(@params["numCapVertices"].ToObject()); changes.Add("numCapVertices"); } + if (@params["alignment"] != null && setAlignment != null && Enum.TryParse(@params["alignment"].ToString(), true, out var align)) { setAlignment(align); changes.Add("alignment"); } + if (@params["textureMode"] != null && setTextureMode != null && Enum.TryParse(@params["textureMode"].ToString(), true, out var texMode)) { setTextureMode(texMode); changes.Add("textureMode"); } + if (@params["generateLightingData"] != null && setGenerateLightingData != null) { setGenerateLightingData(@params["generateLightingData"].ToObject()); changes.Add("generateLightingData"); } + } + + } +} + diff --git a/Packages/MCPForUnity/Editor/Helpers/RendererHelpers.cs.meta b/Packages/MCPForUnity/Editor/Helpers/RendererHelpers.cs.meta new file mode 100644 index 00000000..db81f32a --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/RendererHelpers.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8f3a7e2d5c1b4a9e6d0f8c3b2a1e5d7c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: + diff --git a/Packages/MCPForUnity/Editor/Helpers/Response.cs b/Packages/MCPForUnity/Editor/Helpers/Response.cs new file mode 100644 index 00000000..6c6c299d --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/Response.cs @@ -0,0 +1,108 @@ +using Newtonsoft.Json; + +namespace MCPForUnity.Editor.Helpers +{ + public interface IMcpResponse + { + [JsonProperty("success")] + bool Success { get; } + } + + public sealed class SuccessResponse : IMcpResponse + { + [JsonProperty("success")] + public bool Success => true; + + [JsonIgnore] + public bool success => Success; // Backward-compatible casing for reflection-based tests + + [JsonProperty("message")] + public string Message { get; } + + [JsonProperty("data", NullValueHandling = NullValueHandling.Ignore)] + public object Data { get; } + + [JsonIgnore] + public object data => Data; + + public SuccessResponse(string message, object data = null) + { + Message = message; + Data = data; + } + } + + public sealed class ErrorResponse : IMcpResponse + { + [JsonProperty("success")] + public bool Success => false; + + [JsonIgnore] + public bool success => Success; // Backward-compatible casing for reflection-based tests + + [JsonProperty("code", NullValueHandling = NullValueHandling.Ignore)] + public string Code { get; } + + [JsonIgnore] + public string code => Code; + + [JsonProperty("error")] + public string Error { get; } + + [JsonIgnore] + public string error => Error; + + [JsonProperty("data", NullValueHandling = NullValueHandling.Ignore)] + public object Data { get; } + + [JsonIgnore] + public object data => Data; + + public ErrorResponse(string messageOrCode, object data = null) + { + Code = messageOrCode; + Error = messageOrCode; + Data = data; + } + } + + public sealed class PendingResponse : IMcpResponse + { + [JsonProperty("success")] + public bool Success => true; + + [JsonIgnore] + public bool success => Success; // Backward-compatible casing for reflection-based tests + + [JsonProperty("_mcp_status")] + public string Status => "pending"; + + [JsonIgnore] + public string _mcp_status => Status; + + [JsonProperty("_mcp_poll_interval")] + public double PollIntervalSeconds { get; } + + [JsonIgnore] + public double _mcp_poll_interval => PollIntervalSeconds; + + [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] + public string Message { get; } + + [JsonIgnore] + public string message => Message; + + [JsonProperty("data", NullValueHandling = NullValueHandling.Ignore)] + public object Data { get; } + + [JsonIgnore] + public object data => Data; + + public PendingResponse(string message = "", double pollIntervalSeconds = 1.0, object data = null) + { + Message = string.IsNullOrEmpty(message) ? null : message; + PollIntervalSeconds = pollIntervalSeconds; + Data = data; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Helpers/Response.cs.meta b/Packages/MCPForUnity/Editor/Helpers/Response.cs.meta new file mode 100644 index 00000000..6fd11e39 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/Response.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 80c09a76b944f8c4691e06c4d76c4be8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Helpers/StringCaseUtility.cs b/Packages/MCPForUnity/Editor/Helpers/StringCaseUtility.cs new file mode 100644 index 00000000..04b498a5 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/StringCaseUtility.cs @@ -0,0 +1,73 @@ +using System; +using System.Linq; +using System.Text.RegularExpressions; + +namespace MCPForUnity.Editor.Helpers +{ + /// + /// Utility class for converting between naming conventions (snake_case, camelCase). + /// Consolidates previously duplicated implementations from ToolParams, ManageVFX, + /// BatchExecute, CommandRegistry, and ToolDiscoveryService. + /// + public static class StringCaseUtility + { + /// + /// Checks whether a type belongs to the built-in MCP for Unity package. + /// Returns true when the type's namespace starts with + /// or its assembly is MCPForUnity.Editor. + /// + public static bool IsBuiltInMcpType(Type type, string assemblyName, string builtInNamespacePrefix) + { + if (type != null && !string.IsNullOrEmpty(type.Namespace) + && type.Namespace.StartsWith(builtInNamespacePrefix, StringComparison.Ordinal)) + { + return true; + } + + if (!string.IsNullOrEmpty(assemblyName) + && assemblyName.Equals("MCPForUnity.Editor", StringComparison.Ordinal)) + { + return true; + } + + return false; + } + + /// + /// Converts a camelCase string to snake_case. + /// Example: "searchMethod" -> "search_method", "param1Value" -> "param1_value" + /// + /// The camelCase string to convert + /// The snake_case equivalent, or original string if null/empty + public static string ToSnakeCase(string str) + { + if (string.IsNullOrEmpty(str)) + return str; + + return Regex.Replace(str, "([a-z0-9])([A-Z])", "$1_$2").ToLowerInvariant(); + } + + /// + /// Converts a snake_case string to camelCase. + /// Example: "search_method" -> "searchMethod" + /// + /// The snake_case string to convert + /// The camelCase equivalent, or original string if null/empty or no underscores + public static string ToCamelCase(string str) + { + if (string.IsNullOrEmpty(str) || !str.Contains("_")) + return str; + + var parts = str.Split('_'); + if (parts.Length == 0) + return str; + + // First part stays lowercase, rest get capitalized + var first = parts[0]; + var rest = string.Concat(parts.Skip(1).Select(part => + string.IsNullOrEmpty(part) ? "" : char.ToUpperInvariant(part[0]) + part.Substring(1))); + + return first + rest; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Helpers/StringCaseUtility.cs.meta b/Packages/MCPForUnity/Editor/Helpers/StringCaseUtility.cs.meta new file mode 100644 index 00000000..62b2fcbf --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/StringCaseUtility.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f22b312318ade42c4bb6b5dfddacecfa +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Helpers/TelemetryHelper.cs b/Packages/MCPForUnity/Editor/Helpers/TelemetryHelper.cs new file mode 100644 index 00000000..6e092d46 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/TelemetryHelper.cs @@ -0,0 +1,226 @@ +using System; +using System.Collections.Generic; +using System.Threading; +using MCPForUnity.Editor.Constants; +using MCPForUnity.Editor.Services.Transport.Transports; +using UnityEngine; + +namespace MCPForUnity.Editor.Helpers +{ + /// + /// Unity Bridge telemetry helper for collecting usage analytics + /// Following privacy-first approach with easy opt-out mechanisms + /// + public static class TelemetryHelper + { + private const string TELEMETRY_DISABLED_KEY = EditorPrefKeys.TelemetryDisabled; + private const string CUSTOMER_UUID_KEY = EditorPrefKeys.CustomerUuid; + private static Action> s_sender; + + /// + /// Check if telemetry is enabled (can be disabled via Environment Variable or EditorPrefs) + /// + public static bool IsEnabled + { + get + { + // Check environment variables first + var envDisable = Environment.GetEnvironmentVariable("DISABLE_TELEMETRY"); + if (!string.IsNullOrEmpty(envDisable) && + (envDisable.ToLower() == "true" || envDisable == "1")) + { + return false; + } + + var unityMcpDisable = Environment.GetEnvironmentVariable("UNITY_MCP_DISABLE_TELEMETRY"); + if (!string.IsNullOrEmpty(unityMcpDisable) && + (unityMcpDisable.ToLower() == "true" || unityMcpDisable == "1")) + { + return false; + } + + // Honor protocol-wide opt-out as well + var mcpDisable = Environment.GetEnvironmentVariable("MCP_DISABLE_TELEMETRY"); + if (!string.IsNullOrEmpty(mcpDisable) && + (mcpDisable.Equals("true", StringComparison.OrdinalIgnoreCase) || mcpDisable == "1")) + { + return false; + } + + // Check EditorPrefs + return !UnityEditor.EditorPrefs.GetBool(TELEMETRY_DISABLED_KEY, false); + } + } + + /// + /// Get or generate customer UUID for anonymous tracking + /// + public static string GetCustomerUUID() + { + var uuid = UnityEditor.EditorPrefs.GetString(CUSTOMER_UUID_KEY, ""); + if (string.IsNullOrEmpty(uuid)) + { + uuid = System.Guid.NewGuid().ToString(); + UnityEditor.EditorPrefs.SetString(CUSTOMER_UUID_KEY, uuid); + } + return uuid; + } + + /// + /// Disable telemetry (stored in EditorPrefs) + /// + public static void DisableTelemetry() + { + UnityEditor.EditorPrefs.SetBool(TELEMETRY_DISABLED_KEY, true); + } + + /// + /// Enable telemetry (stored in EditorPrefs) + /// + public static void EnableTelemetry() + { + UnityEditor.EditorPrefs.SetBool(TELEMETRY_DISABLED_KEY, false); + } + + /// + /// Send telemetry data to MCP server for processing + /// This is a lightweight bridge - the actual telemetry logic is in the MCP server + /// + public static void RecordEvent(string eventType, Dictionary data = null) + { + if (!IsEnabled) + return; + + try + { + var telemetryData = new Dictionary + { + ["event_type"] = eventType, + ["timestamp"] = DateTimeOffset.UtcNow.ToUnixTimeSeconds(), + ["customer_uuid"] = GetCustomerUUID(), + ["unity_version"] = Application.unityVersion, + ["platform"] = Application.platform.ToString(), + ["source"] = "unity_bridge" + }; + + if (data != null) + { + telemetryData["data"] = data; + } + + // Send to MCP server via existing bridge communication + // The MCP server will handle actual telemetry transmission + SendTelemetryToMcpServer(telemetryData); + } + catch (Exception e) + { + // Never let telemetry errors interfere with functionality + if (IsDebugEnabled()) + { + McpLog.Warn($"Telemetry error (non-blocking): {e.Message}"); + } + } + } + + /// + /// Allows the bridge to register a concrete sender for telemetry payloads. + /// + public static void RegisterTelemetrySender(Action> sender) + { + Interlocked.Exchange(ref s_sender, sender); + } + + public static void UnregisterTelemetrySender() + { + Interlocked.Exchange(ref s_sender, null); + } + + /// + /// Record bridge startup event + /// + public static void RecordBridgeStartup() + { + RecordEvent("bridge_startup", new Dictionary + { + ["bridge_version"] = AssetPathUtility.GetPackageVersion(), + ["auto_connect"] = StdioBridgeHost.IsAutoConnectMode() + }); + } + + /// + /// Record bridge connection event + /// + public static void RecordBridgeConnection(bool success, string error = null) + { + var data = new Dictionary + { + ["success"] = success + }; + + if (!string.IsNullOrEmpty(error)) + { + data["error"] = error.Substring(0, Math.Min(200, error.Length)); + } + + RecordEvent("bridge_connection", data); + } + + /// + /// Record tool execution from Unity side + /// + public static void RecordToolExecution(string toolName, bool success, float durationMs, string error = null) + { + var data = new Dictionary + { + ["tool_name"] = toolName, + ["success"] = success, + ["duration_ms"] = Math.Round(durationMs, 2) + }; + + if (!string.IsNullOrEmpty(error)) + { + data["error"] = error.Substring(0, Math.Min(200, error.Length)); + } + + RecordEvent("tool_execution_unity", data); + } + + private static void SendTelemetryToMcpServer(Dictionary telemetryData) + { + var sender = Volatile.Read(ref s_sender); + if (sender != null) + { + try + { + sender(telemetryData); + return; + } + catch (Exception e) + { + if (IsDebugEnabled()) + { + McpLog.Warn($"Telemetry sender error (non-blocking): {e.Message}"); + } + } + } + + // Fallback: log when debug is enabled + if (IsDebugEnabled()) + { + McpLog.Info($"Telemetry: {telemetryData["event_type"]}"); + } + } + + private static bool IsDebugEnabled() + { + try + { + return UnityEditor.EditorPrefs.GetBool(EditorPrefKeys.DebugLogs, false); + } + catch + { + return false; + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Helpers/TelemetryHelper.cs.meta b/Packages/MCPForUnity/Editor/Helpers/TelemetryHelper.cs.meta new file mode 100644 index 00000000..0c679608 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/TelemetryHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b8f3c2d1e7a94f6c8a9b5e3d2c1a0f9e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Helpers/TextureOps.cs b/Packages/MCPForUnity/Editor/Helpers/TextureOps.cs new file mode 100644 index 00000000..b062b47f --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/TextureOps.cs @@ -0,0 +1,162 @@ +using System; +using System.Collections.Generic; +using System.IO; +using Newtonsoft.Json.Linq; +using UnityEngine; + +namespace MCPForUnity.Editor.Helpers +{ + public static class TextureOps + { + public static byte[] EncodeTexture(Texture2D texture, string assetPath) + { + if (texture == null) + return null; + + string extension = Path.GetExtension(assetPath); + if (string.IsNullOrEmpty(extension)) + { + McpLog.Warn($"[TextureOps] No file extension for '{assetPath}', defaulting to PNG."); + return texture.EncodeToPNG(); + } + + switch (extension.ToLowerInvariant()) + { + case ".png": + return texture.EncodeToPNG(); + case ".jpg": + case ".jpeg": + return texture.EncodeToJPG(); + default: + McpLog.Warn($"[TextureOps] Unsupported extension '{extension}' for '{assetPath}', defaulting to PNG."); + return texture.EncodeToPNG(); + } + } + + public static void FillTexture(Texture2D texture, Color32 color) + { + if (texture == null) + return; + + Color32[] pixels = new Color32[texture.width * texture.height]; + for (int i = 0; i < pixels.Length; i++) + { + pixels[i] = color; + } + texture.SetPixels32(pixels); + } + + public static Color32 ParseColor32(JArray colorArray) + { + if (colorArray == null || colorArray.Count < 3) + return new Color32(255, 255, 255, 255); + + byte r = (byte)Mathf.Clamp(colorArray[0].ToObject(), 0, 255); + byte g = (byte)Mathf.Clamp(colorArray[1].ToObject(), 0, 255); + byte b = (byte)Mathf.Clamp(colorArray[2].ToObject(), 0, 255); + byte a = colorArray.Count > 3 ? (byte)Mathf.Clamp(colorArray[3].ToObject(), 0, 255) : (byte)255; + + return new Color32(r, g, b, a); + } + + public static List ParsePalette(JArray paletteArray) + { + if (paletteArray == null) + return null; + + List palette = new List(); + foreach (var item in paletteArray) + { + if (item is JArray colorArray) + { + palette.Add(ParseColor32(colorArray)); + } + } + return palette.Count > 0 ? palette : null; + } + + public static void ApplyPixelData(Texture2D texture, JToken pixelsToken, int width, int height) + { + ApplyPixelDataToRegion(texture, pixelsToken, 0, 0, width, height); + } + + public static void ApplyPixelDataToRegion(Texture2D texture, JToken pixelsToken, int offsetX, int offsetY, int regionWidth, int regionHeight) + { + if (texture == null || pixelsToken == null) + return; + + int textureWidth = texture.width; + int textureHeight = texture.height; + + if (pixelsToken is JArray pixelArray) + { + int index = 0; + for (int y = 0; y < regionHeight && index < pixelArray.Count; y++) + { + for (int x = 0; x < regionWidth && index < pixelArray.Count; x++) + { + var pixelColor = pixelArray[index] as JArray; + if (pixelColor != null) + { + int px = offsetX + x; + int py = offsetY + y; + if (px >= 0 && px < textureWidth && py >= 0 && py < textureHeight) + { + texture.SetPixel(px, py, ParseColor32(pixelColor)); + } + } + index++; + } + } + + int expectedCount = regionWidth * regionHeight; + if (pixelArray.Count != expectedCount) + { + McpLog.Warn($"[TextureOps] Pixel array size mismatch: expected {expectedCount} entries, got {pixelArray.Count}"); + } + } + else if (pixelsToken.Type == JTokenType.String) + { + string pixelString = pixelsToken.ToString(); + string base64 = pixelString.StartsWith("base64:") ? pixelString.Substring(7) : pixelString; + if (!pixelString.StartsWith("base64:")) + { + McpLog.Warn("[TextureOps] Base64 pixel data missing 'base64:' prefix; attempting to decode."); + } + + byte[] rawData = Convert.FromBase64String(base64); + + // Assume RGBA32 format: 4 bytes per pixel + int expectedBytes = regionWidth * regionHeight * 4; + if (rawData.Length == expectedBytes) + { + int pixelIndex = 0; + for (int y = 0; y < regionHeight; y++) + { + for (int x = 0; x < regionWidth; x++) + { + int px = offsetX + x; + int py = offsetY + y; + if (px >= 0 && px < textureWidth && py >= 0 && py < textureHeight) + { + int byteIndex = pixelIndex * 4; + Color32 color = new Color32( + rawData[byteIndex], + rawData[byteIndex + 1], + rawData[byteIndex + 2], + rawData[byteIndex + 3] + ); + texture.SetPixel(px, py, color); + } + pixelIndex++; + } + } + } + else + { + McpLog.Warn($"[TextureOps] Base64 data size mismatch: expected {expectedBytes} bytes, got {rawData.Length}"); + } + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Helpers/TextureOps.cs.meta b/Packages/MCPForUnity/Editor/Helpers/TextureOps.cs.meta new file mode 100644 index 00000000..6dc72907 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/TextureOps.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 864ea682d797466a84b6b951f6c4e4ba +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Helpers/ToolParams.cs b/Packages/MCPForUnity/Editor/Helpers/ToolParams.cs new file mode 100644 index 00000000..681ae489 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/ToolParams.cs @@ -0,0 +1,179 @@ +using Newtonsoft.Json.Linq; +using System; + +namespace MCPForUnity.Editor.Helpers +{ + /// + /// Unified parameter validation and extraction wrapper for MCP tools. + /// Eliminates repetitive IsNullOrEmpty checks and provides consistent error messages. + /// + public class ToolParams + { + private readonly JObject _params; + + public ToolParams(JObject @params) + { + _params = @params ?? throw new ArgumentNullException(nameof(@params)); + } + + /// + /// Get required string parameter. Returns ErrorResponse if missing or empty. + /// + public Result GetRequired(string key, string errorMessage = null) + { + var value = GetString(key); + if (string.IsNullOrEmpty(value)) + { + return Result.Error( + errorMessage ?? $"'{key}' parameter is required." + ); + } + return Result.Success(value); + } + + /// + /// Get optional string parameter with default value. + /// Supports both snake_case and camelCase automatically. + /// + public string Get(string key, string defaultValue = null) + { + return GetString(key) ?? defaultValue; + } + + /// + /// Get optional int parameter. + /// + public int? GetInt(string key, int? defaultValue = null) + { + var str = GetString(key); + if (string.IsNullOrEmpty(str)) return defaultValue; + return int.TryParse(str, out var result) ? result : defaultValue; + } + + /// + /// Get optional bool parameter. + /// Supports both snake_case and camelCase automatically. + /// + public bool GetBool(string key, bool defaultValue = false) + { + return ParamCoercion.CoerceBool(GetToken(key), defaultValue); + } + + /// + /// Get optional float parameter. + /// + public float? GetFloat(string key, float? defaultValue = null) + { + var str = GetString(key); + if (string.IsNullOrEmpty(str)) return defaultValue; + return float.TryParse(str, out var result) ? result : defaultValue; + } + + /// + /// Check if parameter exists (even if null). + /// Supports both snake_case and camelCase automatically. + /// + public bool Has(string key) + { + return GetToken(key) != null; + } + + /// + /// Get raw JToken for complex types. + /// Supports both snake_case and camelCase automatically. + /// + public JToken GetRaw(string key) + { + return GetToken(key); + } + + /// + /// Get raw JToken with snake_case/camelCase fallback. + /// + private JToken GetToken(string key) + { + // Try exact match first + var token = _params[key]; + if (token != null) return token; + + // Try snake_case if camelCase was provided + var snakeKey = ToSnakeCase(key); + if (snakeKey != key) + { + token = _params[snakeKey]; + if (token != null) return token; + } + + // Try camelCase if snake_case was provided + var camelKey = ToCamelCase(key); + if (camelKey != key) + { + token = _params[camelKey]; + } + + return token; + } + + private string GetString(string key) + { + // Try exact match first + var value = _params[key]?.ToString(); + if (value != null) return value; + + // Try snake_case if camelCase was provided + var snakeKey = ToSnakeCase(key); + if (snakeKey != key) + { + value = _params[snakeKey]?.ToString(); + if (value != null) return value; + } + + // Try camelCase if snake_case was provided + var camelKey = ToCamelCase(key); + if (camelKey != key) + { + value = _params[camelKey]?.ToString(); + } + + return value; + } + + private static string ToSnakeCase(string str) => StringCaseUtility.ToSnakeCase(str); + + private static string ToCamelCase(string str) => StringCaseUtility.ToCamelCase(str); + } + + /// + /// Result type for operations that can fail with an error message. + /// + public class Result + { + public bool IsSuccess { get; } + public T Value { get; } + public string ErrorMessage { get; } + + private Result(bool isSuccess, T value, string errorMessage) + { + IsSuccess = isSuccess; + Value = value; + ErrorMessage = errorMessage; + } + + public static Result Success(T value) => new Result(true, value, null); + public static Result Error(string errorMessage) => new Result(false, default, errorMessage); + + /// + /// Get value or return ErrorResponse. + /// + public object GetOrError(out T value) + { + if (IsSuccess) + { + value = Value; + return null; + } + value = default; + return new ErrorResponse(ErrorMessage); + } + } +} diff --git a/Packages/MCPForUnity/Editor/Helpers/ToolParams.cs.meta b/Packages/MCPForUnity/Editor/Helpers/ToolParams.cs.meta new file mode 100644 index 00000000..e335bb46 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/ToolParams.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 404b09ea3e2714e1babd16f5705ac788 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Helpers/UnityJsonSerializer.cs b/Packages/MCPForUnity/Editor/Helpers/UnityJsonSerializer.cs new file mode 100644 index 00000000..83b650fa --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/UnityJsonSerializer.cs @@ -0,0 +1,33 @@ +using System.Collections.Generic; +using Newtonsoft.Json; +using MCPForUnity.Runtime.Serialization; + +namespace MCPForUnity.Editor.Helpers +{ + /// + /// Shared JsonSerializer with Unity type converters. + /// Extracted from ManageGameObject to eliminate cross-tool dependencies. + /// + public static class UnityJsonSerializer + { + /// + /// Shared JsonSerializer instance with converters for Unity types. + /// Use this for all JToken-to-Unity-type conversions. + /// + public static readonly JsonSerializer Instance = JsonSerializer.Create(new JsonSerializerSettings + { + Converters = new List + { + new Vector2Converter(), + new Vector3Converter(), + new Vector4Converter(), + new QuaternionConverter(), + new ColorConverter(), + new RectConverter(), + new BoundsConverter(), + new UnityEngineObjectConverter() + } + }); + } +} + diff --git a/Packages/MCPForUnity/Editor/Helpers/UnityJsonSerializer.cs.meta b/Packages/MCPForUnity/Editor/Helpers/UnityJsonSerializer.cs.meta new file mode 100644 index 00000000..5c4391ad --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/UnityJsonSerializer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 24d94c9c030bd4ff1ab208c748f26b01 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Helpers/UnityTypeResolver.cs b/Packages/MCPForUnity/Editor/Helpers/UnityTypeResolver.cs new file mode 100644 index 00000000..feb0b5c7 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/UnityTypeResolver.cs @@ -0,0 +1,217 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using UnityEngine; +#if UNITY_EDITOR +using UnityEditor; +using UnityEditor.Compilation; +#endif + +namespace MCPForUnity.Editor.Helpers +{ + /// + /// Unified type resolution for Unity types (Components, ScriptableObjects, etc.). + /// Extracted from ComponentResolver in ManageGameObject and ResolveType in ManageScriptableObject. + /// Features: caching, prioritizes Player assemblies over Editor assemblies, uses TypeCache. + /// + public static class UnityTypeResolver + { + private static readonly Dictionary CacheByFqn = new(StringComparer.Ordinal); + private static readonly Dictionary CacheByName = new(StringComparer.Ordinal); + + /// + /// Resolves a type by name, with optional base type constraint. + /// Caches results for performance. Prefers runtime assemblies over Editor assemblies. + /// + /// The short name or fully-qualified name of the type + /// The resolved type, or null if not found + /// Error message if resolution failed + /// Optional base type constraint (e.g., typeof(Component)) + /// True if type was resolved successfully + public static bool TryResolve(string typeName, out Type type, out string error, Type requiredBaseType = null) + { + error = string.Empty; + type = null; + + if (string.IsNullOrWhiteSpace(typeName)) + { + error = "Type name cannot be null or empty"; + return false; + } + + // Check caches + if (CacheByFqn.TryGetValue(typeName, out type) && PassesConstraint(type, requiredBaseType)) + return true; + if (!typeName.Contains(".") && CacheByName.TryGetValue(typeName, out type) && PassesConstraint(type, requiredBaseType)) + return true; + + // Try direct Type.GetType + type = Type.GetType(typeName, throwOnError: false); + if (type != null && PassesConstraint(type, requiredBaseType)) + { + Cache(type); + return true; + } + + // Search loaded assemblies (prefer Player assemblies) + var candidates = FindCandidates(typeName, requiredBaseType); + if (candidates.Count == 1) + { + type = candidates[0]; + Cache(type); + return true; + } + if (candidates.Count > 1) + { + error = FormatAmbiguityError(typeName, candidates); + type = null; + return false; + } + +#if UNITY_EDITOR + // Last resort: TypeCache (fast index) + if (requiredBaseType != null) + { + var tc = TypeCache.GetTypesDerivedFrom(requiredBaseType) + .Where(t => NamesMatch(t, typeName)); + candidates = PreferPlayer(tc).ToList(); + if (candidates.Count == 1) + { + type = candidates[0]; + Cache(type); + return true; + } + if (candidates.Count > 1) + { + error = FormatAmbiguityError(typeName, candidates); + type = null; + return false; + } + } +#endif + + error = $"Type '{typeName}' not found in loaded runtime assemblies. " + + "Use a fully-qualified name (Namespace.TypeName) and ensure the script compiled."; + type = null; + return false; + } + + /// + /// Convenience method to resolve a Component type. + /// + public static Type ResolveComponent(string typeName) + { + if (TryResolve(typeName, out Type type, out _, typeof(Component))) + return type; + return null; + } + + /// + /// Convenience method to resolve a ScriptableObject type. + /// + public static Type ResolveScriptableObject(string typeName) + { + if (TryResolve(typeName, out Type type, out _, typeof(ScriptableObject))) + return type; + return null; + } + + /// + /// Convenience method to resolve any type without constraints. + /// + public static Type ResolveAny(string typeName) + { + if (TryResolve(typeName, out Type type, out _, null)) + return type; + return null; + } + + // --- Private Helpers --- + + private static bool PassesConstraint(Type type, Type requiredBaseType) + { + if (type == null) return false; + if (requiredBaseType == null) return true; + return requiredBaseType.IsAssignableFrom(type); + } + + private static bool NamesMatch(Type t, string query) => + t.Name.Equals(query, StringComparison.Ordinal) || + (t.FullName?.Equals(query, StringComparison.Ordinal) ?? false); + + private static void Cache(Type t) + { + if (t == null) return; + if (t.FullName != null) CacheByFqn[t.FullName] = t; + CacheByName[t.Name] = t; + } + + private static List FindCandidates(string query, Type requiredBaseType) + { + bool isShort = !query.Contains('.'); + var loaded = AppDomain.CurrentDomain.GetAssemblies(); + +#if UNITY_EDITOR + // Names of Player (runtime) script assemblies + var playerAsmNames = new HashSet( + CompilationPipeline.GetAssemblies(AssembliesType.Player).Select(a => a.name), + StringComparer.Ordinal); + + var playerAsms = loaded.Where(a => playerAsmNames.Contains(a.GetName().Name)); + var editorAsms = loaded.Except(playerAsms); +#else + var playerAsms = loaded; + var editorAsms = Array.Empty(); +#endif + + Func match = isShort + ? (t => t.Name.Equals(query, StringComparison.Ordinal)) + : (t => t.FullName?.Equals(query, StringComparison.Ordinal) ?? false); + + var fromPlayer = playerAsms.SelectMany(SafeGetTypes) + .Where(t => PassesConstraint(t, requiredBaseType)) + .Where(match); + var fromEditor = editorAsms.SelectMany(SafeGetTypes) + .Where(t => PassesConstraint(t, requiredBaseType)) + .Where(match); + + // Prefer Player over Editor + var candidates = fromPlayer.ToList(); + if (candidates.Count == 0) + candidates = fromEditor.ToList(); + + return candidates; + } + + private static IEnumerable SafeGetTypes(System.Reflection.Assembly assembly) + { + try { return assembly.GetTypes(); } + catch (ReflectionTypeLoadException rtle) { return rtle.Types.Where(t => t != null); } + catch { return Enumerable.Empty(); } + } + + private static IEnumerable PreferPlayer(IEnumerable types) + { +#if UNITY_EDITOR + var playerAsmNames = new HashSet( + CompilationPipeline.GetAssemblies(AssembliesType.Player).Select(a => a.name), + StringComparer.Ordinal); + + var list = types.ToList(); + var fromPlayer = list.Where(t => playerAsmNames.Contains(t.Assembly.GetName().Name)).ToList(); + return fromPlayer.Count > 0 ? fromPlayer : list; +#else + return types; +#endif + } + + private static string FormatAmbiguityError(string query, List candidates) + { + var names = string.Join(", ", candidates.Take(5).Select(t => t.FullName)); + if (candidates.Count > 5) names += $" ... ({candidates.Count - 5} more)"; + return $"Ambiguous type reference '{query}'. Found {candidates.Count} matches: [{names}]. Use a fully-qualified name."; + } + } +} + diff --git a/Packages/MCPForUnity/Editor/Helpers/UnityTypeResolver.cs.meta b/Packages/MCPForUnity/Editor/Helpers/UnityTypeResolver.cs.meta new file mode 100644 index 00000000..c0eed2d6 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/UnityTypeResolver.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2cdf06f869b124741af31f27b25742db +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Helpers/VectorParsing.cs b/Packages/MCPForUnity/Editor/Helpers/VectorParsing.cs new file mode 100644 index 00000000..0e81cca8 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/VectorParsing.cs @@ -0,0 +1,731 @@ +using System; +using System.Collections.Generic; +using Newtonsoft.Json.Linq; +using UnityEngine; + +namespace MCPForUnity.Editor.Helpers +{ + /// + /// Utility class for parsing JSON tokens into Unity vector, math, and animation types. + /// Supports both array format [x, y, z] and object format {x: 1, y: 2, z: 3}. + /// + public static class VectorParsing + { + /// + /// Parses a JToken (array or object) into a Vector3. + /// + /// The JSON token to parse + /// The parsed Vector3 or null if parsing fails + public static Vector3? ParseVector3(JToken token) + { + if (token == null || token.Type == JTokenType.Null) + return null; + + try + { + // Array format: [x, y, z] + if (token is JArray array && array.Count >= 3) + { + return new Vector3( + array[0].ToObject(), + array[1].ToObject(), + array[2].ToObject() + ); + } + + // Object format: {x: 1, y: 2, z: 3} + if (token is JObject obj && obj.ContainsKey("x") && obj.ContainsKey("y") && obj.ContainsKey("z")) + { + return new Vector3( + obj["x"].ToObject(), + obj["y"].ToObject(), + obj["z"].ToObject() + ); + } + } + catch (Exception ex) + { + McpLog.Warn($"[VectorParsing] Failed to parse Vector3 from '{token}': {ex.Message}"); + } + + return null; + } + + /// + /// Parses a JToken into a Vector3, returning a default value if parsing fails. + /// + public static Vector3 ParseVector3OrDefault(JToken token, Vector3 defaultValue = default) + { + return ParseVector3(token) ?? defaultValue; + } + + /// + /// Parses a JToken (array or object) into a Vector2. + /// + /// The JSON token to parse + /// The parsed Vector2 or null if parsing fails + public static Vector2? ParseVector2(JToken token) + { + if (token == null || token.Type == JTokenType.Null) + return null; + + try + { + // Array format: [x, y] + if (token is JArray array && array.Count >= 2) + { + return new Vector2( + array[0].ToObject(), + array[1].ToObject() + ); + } + + // Object format: {x: 1, y: 2} + if (token is JObject obj && obj.ContainsKey("x") && obj.ContainsKey("y")) + { + return new Vector2( + obj["x"].ToObject(), + obj["y"].ToObject() + ); + } + } + catch (Exception ex) + { + McpLog.Warn($"[VectorParsing] Failed to parse Vector2 from '{token}': {ex.Message}"); + } + + return null; + } + + /// + /// Parses a JToken (array or object) into a Vector4. + /// + /// The JSON token to parse + /// The parsed Vector4 or null if parsing fails + public static Vector4? ParseVector4(JToken token) + { + if (token == null || token.Type == JTokenType.Null) + return null; + + try + { + // Array format: [x, y, z, w] + if (token is JArray array && array.Count >= 4) + { + return new Vector4( + array[0].ToObject(), + array[1].ToObject(), + array[2].ToObject(), + array[3].ToObject() + ); + } + + // Object format: {x: 1, y: 2, z: 3, w: 4} + if (token is JObject obj && obj.ContainsKey("x") && obj.ContainsKey("y") && + obj.ContainsKey("z") && obj.ContainsKey("w")) + { + return new Vector4( + obj["x"].ToObject(), + obj["y"].ToObject(), + obj["z"].ToObject(), + obj["w"].ToObject() + ); + } + } + catch (Exception ex) + { + Debug.LogWarning($"[VectorParsing] Failed to parse Vector4 from '{token}': {ex.Message}"); + } + + return null; + } + + /// + /// Parses a JToken (array or object) into a Quaternion. + /// Supports both euler angles [x, y, z] and quaternion components [x, y, z, w]. + /// Note: Raw quaternion components are NOT normalized. Callers should normalize if needed + /// for operations like interpolation where non-unit quaternions cause issues. + /// + /// The JSON token to parse + /// If true, treats 3-element arrays as euler angles + /// The parsed Quaternion or null if parsing fails + public static Quaternion? ParseQuaternion(JToken token, bool asEulerAngles = true) + { + if (token == null || token.Type == JTokenType.Null) + return null; + + try + { + if (token is JArray array) + { + // Quaternion components: [x, y, z, w] + if (array.Count >= 4) + { + return new Quaternion( + array[0].ToObject(), + array[1].ToObject(), + array[2].ToObject(), + array[3].ToObject() + ); + } + + // Euler angles: [x, y, z] + if (array.Count >= 3 && asEulerAngles) + { + return Quaternion.Euler( + array[0].ToObject(), + array[1].ToObject(), + array[2].ToObject() + ); + } + } + + // Object format: {x: 0, y: 0, z: 0, w: 1} + if (token is JObject obj) + { + if (obj.ContainsKey("x") && obj.ContainsKey("y") && obj.ContainsKey("z") && obj.ContainsKey("w")) + { + return new Quaternion( + obj["x"].ToObject(), + obj["y"].ToObject(), + obj["z"].ToObject(), + obj["w"].ToObject() + ); + } + + // Euler format in object: {x: 45, y: 90, z: 0} (as euler angles) + if (obj.ContainsKey("x") && obj.ContainsKey("y") && obj.ContainsKey("z") && asEulerAngles) + { + return Quaternion.Euler( + obj["x"].ToObject(), + obj["y"].ToObject(), + obj["z"].ToObject() + ); + } + } + } + catch (Exception ex) + { + McpLog.Warn($"[VectorParsing] Failed to parse Quaternion from '{token}': {ex.Message}"); + } + + return null; + } + + /// + /// Parses a JToken (array or object) into a Color. + /// Supports both [r, g, b, a] and {r: 1, g: 1, b: 1, a: 1} formats. + /// + /// The JSON token to parse + /// The parsed Color or null if parsing fails + public static Color? ParseColor(JToken token) + { + if (token == null || token.Type == JTokenType.Null) + return null; + + try + { + // Array format: [r, g, b, a] or [r, g, b] + if (token is JArray array) + { + if (array.Count >= 4) + { + return new Color( + array[0].ToObject(), + array[1].ToObject(), + array[2].ToObject(), + array[3].ToObject() + ); + } + if (array.Count >= 3) + { + return new Color( + array[0].ToObject(), + array[1].ToObject(), + array[2].ToObject(), + 1f // Default alpha + ); + } + } + + // Object format: {r: 1, g: 1, b: 1, a: 1} + if (token is JObject obj && obj.ContainsKey("r") && obj.ContainsKey("g") && obj.ContainsKey("b")) + { + float a = obj.ContainsKey("a") ? obj["a"].ToObject() : 1f; + return new Color( + obj["r"].ToObject(), + obj["g"].ToObject(), + obj["b"].ToObject(), + a + ); + } + } + catch (Exception ex) + { + McpLog.Warn($"[VectorParsing] Failed to parse Color from '{token}': {ex.Message}"); + } + + return null; + } + + /// + /// Parses a JToken into a Color, returning Color.white if parsing fails and no default is specified. + /// + public static Color ParseColorOrDefault(JToken token) => ParseColor(token) ?? Color.white; + + /// + /// Parses a JToken into a Color, returning the specified default if parsing fails. + /// + public static Color ParseColorOrDefault(JToken token, Color defaultValue) => ParseColor(token) ?? defaultValue; + + /// + /// Parses a JToken into a Vector4, returning a default value if parsing fails. + /// Added for ManageVFX refactoring. + /// + public static Vector4 ParseVector4OrDefault(JToken token, Vector4 defaultValue = default) + { + return ParseVector4(token) ?? defaultValue; + } + + /// + /// Parses a JToken into a Gradient. + /// Supports formats: + /// - Simple: {startColor: [r,g,b,a], endColor: [r,g,b,a]} + /// - Full: {colorKeys: [{color: [r,g,b,a], time: 0.0}, ...], alphaKeys: [{alpha: 1.0, time: 0.0}, ...]} + /// Added for ManageVFX refactoring. + /// + /// The JSON token to parse + /// The parsed Gradient or null if parsing fails + public static Gradient ParseGradient(JToken token) + { + if (token == null || token.Type == JTokenType.Null) + return null; + + try + { + Gradient gradient = new Gradient(); + + if (token is JObject obj) + { + // Simple format: {startColor: ..., endColor: ...} + if (obj.ContainsKey("startColor")) + { + Color startColor = ParseColorOrDefault(obj["startColor"]); + Color endColor = ParseColorOrDefault(obj["endColor"] ?? obj["startColor"]); + float startAlpha = obj["startAlpha"]?.ToObject() ?? startColor.a; + float endAlpha = obj["endAlpha"]?.ToObject() ?? endColor.a; + + gradient.SetKeys( + new GradientColorKey[] { new GradientColorKey(startColor, 0f), new GradientColorKey(endColor, 1f) }, + new GradientAlphaKey[] { new GradientAlphaKey(startAlpha, 0f), new GradientAlphaKey(endAlpha, 1f) } + ); + return gradient; + } + + // Full format: {colorKeys: [...], alphaKeys: [...]} + var colorKeys = new List(); + var alphaKeys = new List(); + + if (obj["colorKeys"] is JArray colorKeysArr) + { + foreach (var key in colorKeysArr) + { + Color color = ParseColorOrDefault(key["color"]); + float time = key["time"]?.ToObject() ?? 0f; + colorKeys.Add(new GradientColorKey(color, time)); + } + } + + if (obj["alphaKeys"] is JArray alphaKeysArr) + { + foreach (var key in alphaKeysArr) + { + float alpha = key["alpha"]?.ToObject() ?? 1f; + float time = key["time"]?.ToObject() ?? 0f; + alphaKeys.Add(new GradientAlphaKey(alpha, time)); + } + } + + // Ensure at least 2 keys + if (colorKeys.Count == 0) + { + colorKeys.Add(new GradientColorKey(Color.white, 0f)); + colorKeys.Add(new GradientColorKey(Color.white, 1f)); + } + + if (alphaKeys.Count == 0) + { + alphaKeys.Add(new GradientAlphaKey(1f, 0f)); + alphaKeys.Add(new GradientAlphaKey(1f, 1f)); + } + + gradient.SetKeys(colorKeys.ToArray(), alphaKeys.ToArray()); + return gradient; + } + } + catch (Exception ex) + { + McpLog.Warn($"[VectorParsing] Failed to parse Gradient from '{token}': {ex.Message}"); + } + + return null; + } + + /// + /// Parses a JToken into a Gradient, returning a default gradient if parsing fails. + /// Added for ManageVFX refactoring. + /// + public static Gradient ParseGradientOrDefault(JToken token) + { + var result = ParseGradient(token); + if (result != null) return result; + + // Return default white gradient + var gradient = new Gradient(); + gradient.SetKeys( + new GradientColorKey[] { new GradientColorKey(Color.white, 0f), new GradientColorKey(Color.white, 1f) }, + new GradientAlphaKey[] { new GradientAlphaKey(1f, 0f), new GradientAlphaKey(1f, 1f) } + ); + return gradient; + } + + /// + /// Parses a JToken into an AnimationCurve. + /// + /// Supported formats: + /// + /// Constant: 1.0 (number) - Creates constant curve at that value + /// Simple: {start: 0.0, end: 1.0} or {startValue: 0.0, endValue: 1.0} + /// Full: {keys: [{time: 0, value: 1, inTangent: 0, outTangent: 0}, ...]} + /// + /// + /// Keyframe field defaults (for Full format): + /// + /// time (float): Default: 0 + /// value (float): Default: 1 (note: differs from ManageScriptableObject which uses 0) + /// inTangent (float): Default: 0 + /// outTangent (float): Default: 0 + /// + /// + /// Note: This method is used by ManageVFX. For ScriptableObject patching, + /// see which has slightly different defaults. + /// + /// The JSON token to parse + /// The parsed AnimationCurve or null if parsing fails + public static AnimationCurve ParseAnimationCurve(JToken token) + { + if (token == null || token.Type == JTokenType.Null) + return null; + + try + { + // Constant value: just a number + if (token.Type == JTokenType.Float || token.Type == JTokenType.Integer) + { + return AnimationCurve.Constant(0f, 1f, token.ToObject()); + } + + if (token is JObject obj) + { + // Full format: {keys: [...]} + if (obj["keys"] is JArray keys) + { + AnimationCurve curve = new AnimationCurve(); + foreach (var key in keys) + { + float time = key["time"]?.ToObject() ?? 0f; + float value = key["value"]?.ToObject() ?? 1f; + float inTangent = key["inTangent"]?.ToObject() ?? 0f; + float outTangent = key["outTangent"]?.ToObject() ?? 0f; + curve.AddKey(new Keyframe(time, value, inTangent, outTangent)); + } + return curve; + } + + // Simple format: {start: 0.0, end: 1.0} or {startValue: 0.0, endValue: 1.0} + if (obj.ContainsKey("start") || obj.ContainsKey("startValue") || obj.ContainsKey("end") || obj.ContainsKey("endValue")) + { + float startValue = obj["start"]?.ToObject() ?? obj["startValue"]?.ToObject() ?? 1f; + float endValue = obj["end"]?.ToObject() ?? obj["endValue"]?.ToObject() ?? 1f; + AnimationCurve curve = new AnimationCurve(); + curve.AddKey(0f, startValue); + curve.AddKey(1f, endValue); + return curve; + } + } + } + catch (Exception ex) + { + McpLog.Warn($"[VectorParsing] Failed to parse AnimationCurve from '{token}': {ex.Message}"); + } + + return null; + } + + /// + /// Parses a JToken into an AnimationCurve, returning a constant curve if parsing fails. + /// Added for ManageVFX refactoring. + /// + /// The JSON token to parse + /// The constant value for the default curve + public static AnimationCurve ParseAnimationCurveOrDefault(JToken token, float defaultValue = 1f) + { + return ParseAnimationCurve(token) ?? AnimationCurve.Constant(0f, 1f, defaultValue); + } + + /// + /// Validates AnimationCurve JSON format without parsing it. + /// Used by dry-run validation to provide early feedback on format errors. + /// + /// Validated formats: + /// + /// Wrapped: { "keys": [ { "time": 0, "value": 1.0 }, ... ] } + /// Direct array: [ { "time": 0, "value": 1.0 }, ... ] + /// Null/empty: Valid (will set empty curve) + /// + /// + /// The JSON value to validate + /// Output message describing validation result or error + /// True if format is valid, false otherwise + public static bool ValidateAnimationCurveFormat(JToken valueToken, out string message) + { + message = null; + + if (valueToken == null || valueToken.Type == JTokenType.Null) + { + message = "Value format valid (will set empty curve)."; + return true; + } + + JArray keysArray = null; + + if (valueToken is JObject curveObj) + { + keysArray = curveObj["keys"] as JArray; + if (keysArray == null) + { + message = "AnimationCurve object requires 'keys' array. Expected: { \"keys\": [ { \"time\": 0, \"value\": 0 }, ... ] }"; + return false; + } + } + else if (valueToken is JArray directArray) + { + keysArray = directArray; + } + else + { + message = "AnimationCurve requires object with 'keys' or array of keyframes. " + + "Expected: { \"keys\": [ { \"time\": 0, \"value\": 0, \"inSlope\": 0, \"outSlope\": 0 }, ... ] }"; + return false; + } + + // Validate each keyframe + for (int i = 0; i < keysArray.Count; i++) + { + var keyToken = keysArray[i]; + if (keyToken is not JObject keyObj) + { + message = $"Keyframe at index {i} must be an object with 'time' and 'value'."; + return false; + } + + // Validate numeric fields if present + string[] numericFields = { "time", "value", "inSlope", "outSlope", "inTangent", "outTangent", "inWeight", "outWeight" }; + foreach (var field in numericFields) + { + if (!ParamCoercion.ValidateNumericField(keyObj, field, out var fieldError)) + { + message = $"Keyframe[{i}].{field}: {fieldError}"; + return false; + } + } + + if (!ParamCoercion.ValidateIntegerField(keyObj, "weightedMode", out var weightedModeError)) + { + message = $"Keyframe[{i}].weightedMode: {weightedModeError}"; + return false; + } + } + + message = $"Value format valid (AnimationCurve with {keysArray.Count} keyframes). " + + "Note: Missing keyframe fields default to 0 (time, value, inSlope, outSlope, inWeight, outWeight)."; + return true; + } + + /// + /// Validates Quaternion JSON format without parsing it. + /// Used by dry-run validation to provide early feedback on format errors. + /// + /// Validated formats: + /// + /// Euler array: [x, y, z] - 3 numeric elements + /// Raw quaternion: [x, y, z, w] - 4 numeric elements + /// Object: { "x": 0, "y": 0, "z": 0, "w": 1 } + /// Explicit euler: { "euler": [x, y, z] } + /// Null/empty: Valid (will set identity) + /// + /// + /// The JSON value to validate + /// Output message describing validation result or error + /// True if format is valid, false otherwise + public static bool ValidateQuaternionFormat(JToken valueToken, out string message) + { + message = null; + + if (valueToken == null || valueToken.Type == JTokenType.Null) + { + message = "Value format valid (will set identity quaternion)."; + return true; + } + + if (valueToken is JArray arr) + { + if (arr.Count == 3) + { + // Validate Euler angles [x, y, z] + for (int i = 0; i < 3; i++) + { + if (!ParamCoercion.IsNumericToken(arr[i])) + { + message = $"Euler angle at index {i} must be a number."; + return false; + } + } + message = "Value format valid (Quaternion from Euler angles [x, y, z])."; + return true; + } + else if (arr.Count == 4) + { + // Validate raw quaternion [x, y, z, w] + for (int i = 0; i < 4; i++) + { + if (!ParamCoercion.IsNumericToken(arr[i])) + { + message = $"Quaternion component at index {i} must be a number."; + return false; + } + } + message = "Value format valid (Quaternion from [x, y, z, w])."; + return true; + } + else + { + message = "Quaternion array must have 3 elements (Euler angles) or 4 elements (x, y, z, w)."; + return false; + } + } + else if (valueToken is JObject obj) + { + // Check for explicit euler property + if (obj["euler"] is JArray eulerArr) + { + if (eulerArr.Count != 3) + { + message = "Quaternion euler array must have exactly 3 elements [x, y, z]."; + return false; + } + for (int i = 0; i < 3; i++) + { + if (!ParamCoercion.IsNumericToken(eulerArr[i])) + { + message = $"Euler angle at index {i} must be a number."; + return false; + } + } + message = "Value format valid (Quaternion from { euler: [x, y, z] })."; + return true; + } + + // Object format { x, y, z, w } + if (obj["x"] != null && obj["y"] != null && obj["z"] != null && obj["w"] != null) + { + if (!ParamCoercion.IsNumericToken(obj["x"]) || !ParamCoercion.IsNumericToken(obj["y"]) || + !ParamCoercion.IsNumericToken(obj["z"]) || !ParamCoercion.IsNumericToken(obj["w"])) + { + message = "Quaternion { x, y, z, w } fields must all be numbers."; + return false; + } + message = "Value format valid (Quaternion from { x, y, z, w })."; + return true; + } + + message = "Quaternion object must have { x, y, z, w } or { euler: [x, y, z] }."; + return false; + } + else + { + message = "Quaternion requires array [x,y,z] (Euler), [x,y,z,w] (raw), or object { x, y, z, w }."; + return false; + } + } + + /// + /// Parses a JToken into a Rect. + /// Supports {x, y, width, height} format. + /// + public static Rect? ParseRect(JToken token) + { + if (token == null || token.Type == JTokenType.Null) + return null; + + try + { + if (token is JObject obj && + obj.ContainsKey("x") && obj.ContainsKey("y") && + obj.ContainsKey("width") && obj.ContainsKey("height")) + { + return new Rect( + obj["x"].ToObject(), + obj["y"].ToObject(), + obj["width"].ToObject(), + obj["height"].ToObject() + ); + } + + // Array format: [x, y, width, height] + if (token is JArray array && array.Count >= 4) + { + return new Rect( + array[0].ToObject(), + array[1].ToObject(), + array[2].ToObject(), + array[3].ToObject() + ); + } + } + catch (Exception ex) + { + McpLog.Warn($"[VectorParsing] Failed to parse Rect from '{token}': {ex.Message}"); + } + + return null; + } + + /// + /// Parses a JToken into a Bounds. + /// Supports {center: {x,y,z}, size: {x,y,z}} format. + /// + public static Bounds? ParseBounds(JToken token) + { + if (token == null || token.Type == JTokenType.Null) + return null; + + try + { + if (token is JObject obj && obj.ContainsKey("center") && obj.ContainsKey("size")) + { + var center = ParseVector3(obj["center"]) ?? Vector3.zero; + var size = ParseVector3(obj["size"]) ?? Vector3.zero; + return new Bounds(center, size); + } + } + catch (Exception ex) + { + McpLog.Warn($"[VectorParsing] Failed to parse Bounds from '{token}': {ex.Message}"); + } + + return null; + } + } +} + diff --git a/Packages/MCPForUnity/Editor/Helpers/VectorParsing.cs.meta b/Packages/MCPForUnity/Editor/Helpers/VectorParsing.cs.meta new file mode 100644 index 00000000..f9b8b5fa --- /dev/null +++ b/Packages/MCPForUnity/Editor/Helpers/VectorParsing.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ca2205caede3744aebda9f6da2fa2c22 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/MCPForUnity.Editor.asmdef b/Packages/MCPForUnity/Editor/MCPForUnity.Editor.asmdef new file mode 100644 index 00000000..96850293 --- /dev/null +++ b/Packages/MCPForUnity/Editor/MCPForUnity.Editor.asmdef @@ -0,0 +1,20 @@ +{ + "name": "MCPForUnity.Editor", + "rootNamespace": "MCPForUnity.Editor", + "references": [ + "MCPForUnity.Runtime", + "Newtonsoft.Json" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "overrideReferences": false, + "precompiledReferences": [ + "Newtonsoft.Json.dll" + ], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Unity.XR.Interaction.Toolkit.Samples.DeviceSimulator.asmdef.meta b/Packages/MCPForUnity/Editor/MCPForUnity.Editor.asmdef.meta similarity index 76% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Unity.XR.Interaction.Toolkit.Samples.DeviceSimulator.asmdef.meta rename to Packages/MCPForUnity/Editor/MCPForUnity.Editor.asmdef.meta index ddef3314..b819bd4d 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.5.2/XR Device Simulator/Unity.XR.Interaction.Toolkit.Samples.DeviceSimulator.asmdef.meta +++ b/Packages/MCPForUnity/Editor/MCPForUnity.Editor.asmdef.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: a0c6cb4ff4b70b44e933543a342fb2b1 +guid: 98f702da6ca044be59a864a9419c4eab AssemblyDefinitionImporter: externalObjects: {} userData: diff --git a/Packages/MCPForUnity/Editor/McpCiBoot.cs b/Packages/MCPForUnity/Editor/McpCiBoot.cs new file mode 100644 index 00000000..c8e8c19e --- /dev/null +++ b/Packages/MCPForUnity/Editor/McpCiBoot.cs @@ -0,0 +1,21 @@ +using System; +using MCPForUnity.Editor.Constants; +using MCPForUnity.Editor.Services.Transport.Transports; +using UnityEditor; + +namespace MCPForUnity.Editor +{ + public static class McpCiBoot + { + public static void StartStdioForCi() + { + try + { + EditorPrefs.SetBool(EditorPrefKeys.UseHttpTransport, false); + } + catch { /* ignore */ } + + StdioBridgeHost.StartAutoConnect(); + } + } +} diff --git a/Packages/MCPForUnity/Editor/McpCiBoot.cs.meta b/Packages/MCPForUnity/Editor/McpCiBoot.cs.meta new file mode 100644 index 00000000..7614d93a --- /dev/null +++ b/Packages/MCPForUnity/Editor/McpCiBoot.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ef9dca277ab34ba1b136d8dcd45de948 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/MenuItems.meta b/Packages/MCPForUnity/Editor/MenuItems.meta new file mode 100644 index 00000000..ad5fb5e6 --- /dev/null +++ b/Packages/MCPForUnity/Editor/MenuItems.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9e7f37616736f4d3cbd8bdbc626f5ab9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/MenuItems/MCPForUnityMenu.cs b/Packages/MCPForUnity/Editor/MenuItems/MCPForUnityMenu.cs new file mode 100644 index 00000000..c280d955 --- /dev/null +++ b/Packages/MCPForUnity/Editor/MenuItems/MCPForUnityMenu.cs @@ -0,0 +1,36 @@ +using MCPForUnity.Editor.Setup; +using MCPForUnity.Editor.Windows; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.MenuItems +{ + public static class MCPForUnityMenu + { + [MenuItem("Window/MCP For Unity/Toggle MCP Window %#m", priority = 1)] + public static void ToggleMCPWindow() + { + if (MCPForUnityEditorWindow.HasAnyOpenWindow()) + { + MCPForUnityEditorWindow.CloseAllOpenWindows(); + } + else + { + MCPForUnityEditorWindow.ShowWindow(); + } + } + + [MenuItem("Window/MCP For Unity/Local Setup Window", priority = 2)] + public static void ShowSetupWindow() + { + SetupWindowService.ShowSetupWindow(); + } + + + [MenuItem("Window/MCP For Unity/Edit EditorPrefs", priority = 3)] + public static void ShowEditorPrefsWindow() + { + EditorPrefsWindow.ShowWindow(); + } + } +} diff --git a/Packages/MCPForUnity/Editor/MenuItems/MCPForUnityMenu.cs.meta b/Packages/MCPForUnity/Editor/MenuItems/MCPForUnityMenu.cs.meta new file mode 100644 index 00000000..af82a270 --- /dev/null +++ b/Packages/MCPForUnity/Editor/MenuItems/MCPForUnityMenu.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 42b27c415aa084fe6a9cc6cf03979d36 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Migrations.meta b/Packages/MCPForUnity/Editor/Migrations.meta new file mode 100644 index 00000000..62d67f08 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Migrations.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8bb6a578d4df4e2daa0bd1aa1fa492d5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Migrations/LegacyServerSrcMigration.cs b/Packages/MCPForUnity/Editor/Migrations/LegacyServerSrcMigration.cs new file mode 100644 index 00000000..4fbeac85 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Migrations/LegacyServerSrcMigration.cs @@ -0,0 +1,80 @@ +using System; +using MCPForUnity.Editor.Constants; +using MCPForUnity.Editor.Helpers; +using MCPForUnity.Editor.Services; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.Migrations +{ + /// + /// Detects legacy embedded-server preferences and migrates configs to the new uvx/stdio path once. + /// + [InitializeOnLoad] + internal static class LegacyServerSrcMigration + { + private const string ServerSrcKey = EditorPrefKeys.ServerSrc; + private const string UseEmbeddedKey = EditorPrefKeys.UseEmbeddedServer; + + static LegacyServerSrcMigration() + { + if (Application.isBatchMode) + return; + + EditorApplication.delayCall += RunMigrationIfNeeded; + } + + private static void RunMigrationIfNeeded() + { + EditorApplication.delayCall -= RunMigrationIfNeeded; + + bool hasServerSrc = EditorPrefs.HasKey(ServerSrcKey); + bool hasUseEmbedded = EditorPrefs.HasKey(UseEmbeddedKey); + + if (!hasServerSrc && !hasUseEmbedded) + { + return; + } + + try + { + McpLog.Info("Detected legacy embedded MCP server configuration. Updating all client configs..."); + + var summary = MCPServiceLocator.Client.ConfigureAllDetectedClients(); + + if (summary.FailureCount > 0) + { + McpLog.Warn($"Legacy configuration migration finished with errors ({summary.GetSummaryMessage()}). details:"); + if (summary.Messages != null) + { + foreach (var message in summary.Messages) + { + McpLog.Warn($" {message}"); + } + } + McpLog.Warn("Legacy keys will be removed to prevent migration loop. Please configure failing clients manually."); + } + else + { + McpLog.Info($"Legacy configuration migration complete ({summary.GetSummaryMessage()})"); + } + + if (hasServerSrc) + { + EditorPrefs.DeleteKey(ServerSrcKey); + McpLog.Info(" ✓ Removed legacy key: MCPForUnity.ServerSrc"); + } + + if (hasUseEmbedded) + { + EditorPrefs.DeleteKey(UseEmbeddedKey); + McpLog.Info(" ✓ Removed legacy key: MCPForUnity.UseEmbeddedServer"); + } + } + catch (Exception ex) + { + McpLog.Error($"Legacy MCP server migration failed: {ex.Message}"); + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Migrations/LegacyServerSrcMigration.cs.meta b/Packages/MCPForUnity/Editor/Migrations/LegacyServerSrcMigration.cs.meta new file mode 100644 index 00000000..ddc85c03 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Migrations/LegacyServerSrcMigration.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4436b2149abf4b0d8014f81cd29a2bd0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Migrations/StdIoVersionMigration.cs b/Packages/MCPForUnity/Editor/Migrations/StdIoVersionMigration.cs new file mode 100644 index 00000000..850e2733 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Migrations/StdIoVersionMigration.cs @@ -0,0 +1,148 @@ +using System; +using System.IO; +using System.Linq; +using MCPForUnity.Editor.Clients; +using MCPForUnity.Editor.Constants; +using MCPForUnity.Editor.Helpers; +using MCPForUnity.Editor.Models; +using MCPForUnity.Editor.Services; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.Migrations +{ + /// + /// Keeps stdio MCP clients in sync with the current package version by rewriting their configs when the package updates. + /// + [InitializeOnLoad] + internal static class StdIoVersionMigration + { + private const string LastUpgradeKey = EditorPrefKeys.LastStdIoUpgradeVersion; + + static StdIoVersionMigration() + { + if (Application.isBatchMode) + return; + + EditorApplication.delayCall += RunMigrationIfNeeded; + } + + private static void RunMigrationIfNeeded() + { + EditorApplication.delayCall -= RunMigrationIfNeeded; + + string currentVersion = AssetPathUtility.GetPackageVersion(); + if (string.IsNullOrEmpty(currentVersion) || string.Equals(currentVersion, "unknown", StringComparison.OrdinalIgnoreCase)) + { + return; + } + + string lastUpgradeVersion = string.Empty; + try { lastUpgradeVersion = EditorPrefs.GetString(LastUpgradeKey, string.Empty); } catch { } + + if (string.Equals(lastUpgradeVersion, currentVersion, StringComparison.OrdinalIgnoreCase)) + { + return; // Already refreshed for this package version + } + + bool hadFailures = false; + bool touchedAny = false; + + var configurators = McpClientRegistry.All.OfType().ToList(); + foreach (var configurator in configurators) + { + try + { + if (!configurator.SupportsAutoConfigure) + continue; + + // Handle CLI-based configurators (e.g., Claude Code CLI) + // CheckStatus with attemptAutoRewrite=true will auto-reregister if version mismatch + if (configurator is ClaudeCliMcpConfigurator cliConfigurator) + { + var previousStatus = configurator.Status; + configurator.CheckStatus(attemptAutoRewrite: true); + if (configurator.Status != previousStatus) + { + touchedAny = true; + } + continue; + } + + // Handle JSON file-based configurators + if (!ConfigUsesStdIo(configurator.Client)) + continue; + + MCPServiceLocator.Client.ConfigureClient(configurator); + touchedAny = true; + } + catch (Exception ex) + { + hadFailures = true; + McpLog.Warn($"Failed to refresh stdio config for {configurator.DisplayName}: {ex.Message}"); + } + } + + if (!touchedAny) + { + // Nothing needed refreshing; still record version so we don't rerun every launch + try { EditorPrefs.SetString(LastUpgradeKey, currentVersion); } catch { } + return; + } + + if (hadFailures) + { + McpLog.Warn("Stdio MCP upgrade encountered errors; will retry next session."); + return; + } + + try + { + EditorPrefs.SetString(LastUpgradeKey, currentVersion); + } + catch { } + + McpLog.Info($"Updated stdio MCP configs to package version {currentVersion}."); + } + + private static bool ConfigUsesStdIo(McpClient client) + { + return JsonConfigUsesStdIo(client); + } + + private static bool JsonConfigUsesStdIo(McpClient client) + { + string configPath = McpConfigurationHelper.GetClientConfigPath(client); + if (string.IsNullOrEmpty(configPath) || !File.Exists(configPath)) + { + return false; + } + + try + { + var root = JObject.Parse(File.ReadAllText(configPath)); + + JToken unityNode = null; + if (client.IsVsCodeLayout) + { + unityNode = root.SelectToken("servers.unityMCP") + ?? root.SelectToken("mcp.servers.unityMCP"); + } + else + { + unityNode = root.SelectToken("mcpServers.unityMCP"); + } + + if (unityNode == null) return false; + + return unityNode["command"] != null; + } + catch + { + return false; + } + } + + } +} diff --git a/Packages/MCPForUnity/Editor/Migrations/StdIoVersionMigration.cs.meta b/Packages/MCPForUnity/Editor/Migrations/StdIoVersionMigration.cs.meta new file mode 100644 index 00000000..872a3571 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Migrations/StdIoVersionMigration.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f1d589c8c8684e6f919ffb393c4b4db5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Models.meta b/Packages/MCPForUnity/Editor/Models.meta new file mode 100644 index 00000000..85404561 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Models.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 16d3ab36890b6c14f9afeabee30e03e3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Models/Command.cs b/Packages/MCPForUnity/Editor/Models/Command.cs new file mode 100644 index 00000000..02a89d88 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Models/Command.cs @@ -0,0 +1,21 @@ +using Newtonsoft.Json.Linq; + +namespace MCPForUnity.Editor.Models +{ + /// + /// Represents a command received from the MCP client + /// + public class Command + { + /// + /// The type of command to execute + /// + public string type { get; set; } + + /// + /// The parameters for the command + /// + public JObject @params { get; set; } + } +} + diff --git a/Packages/MCPForUnity/Editor/Models/Command.cs.meta b/Packages/MCPForUnity/Editor/Models/Command.cs.meta new file mode 100644 index 00000000..63618f53 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Models/Command.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6754c84e5deb74749bc3a19e0c9aa280 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Models/MCPConfigServer.cs b/Packages/MCPForUnity/Editor/Models/MCPConfigServer.cs new file mode 100644 index 00000000..25f1163d --- /dev/null +++ b/Packages/MCPForUnity/Editor/Models/MCPConfigServer.cs @@ -0,0 +1,23 @@ +using System; +using Newtonsoft.Json; + +namespace MCPForUnity.Editor.Models +{ + [Serializable] + public class McpConfigServer + { + [JsonProperty("command")] + public string command; + + [JsonProperty("args")] + public string[] args; + + // VSCode expects a transport type; include only when explicitly set + [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] + public string type; + + // URL for HTTP transport mode + [JsonProperty("url", NullValueHandling = NullValueHandling.Ignore)] + public string url; + } +} diff --git a/Packages/MCPForUnity/Editor/Models/MCPConfigServer.cs.meta b/Packages/MCPForUnity/Editor/Models/MCPConfigServer.cs.meta new file mode 100644 index 00000000..0574c5a6 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Models/MCPConfigServer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5fae9d995f514e9498e9613e2cdbeca9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Models/MCPConfigServers.cs b/Packages/MCPForUnity/Editor/Models/MCPConfigServers.cs new file mode 100644 index 00000000..d5065a16 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Models/MCPConfigServers.cs @@ -0,0 +1,12 @@ +using System; +using Newtonsoft.Json; + +namespace MCPForUnity.Editor.Models +{ + [Serializable] + public class McpConfigServers + { + [JsonProperty("unityMCP")] + public McpConfigServer unityMCP; + } +} diff --git a/Packages/MCPForUnity/Editor/Models/MCPConfigServers.cs.meta b/Packages/MCPForUnity/Editor/Models/MCPConfigServers.cs.meta new file mode 100644 index 00000000..1fb5f0b2 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Models/MCPConfigServers.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bcb583553e8173b49be71a5c43bd9502 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Models/McpClient.cs b/Packages/MCPForUnity/Editor/Models/McpClient.cs new file mode 100644 index 00000000..832bb8a2 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Models/McpClient.cs @@ -0,0 +1,57 @@ +using System.Collections.Generic; + +namespace MCPForUnity.Editor.Models +{ + public class McpClient + { + public string name; + public string windowsConfigPath; + public string macConfigPath; + public string linuxConfigPath; + public string configStatus; + public McpStatus status = McpStatus.NotConfigured; + public ConfiguredTransport configuredTransport = ConfiguredTransport.Unknown; + + // Capability flags/config for JSON-based configurators + public bool IsVsCodeLayout; // Whether the config file follows VS Code layout (env object at root) + public bool SupportsHttpTransport = true; // Whether the MCP server supports HTTP transport + public bool EnsureEnvObject; // Whether to ensure the env object is present in the config + public bool StripEnvWhenNotRequired; // Whether to strip the env object when not required + public string HttpUrlProperty = "url"; // The property name for the HTTP URL in the config + public Dictionary DefaultUnityFields = new(); + + // Helper method to convert the enum to a display string + public string GetStatusDisplayString() + { + return status switch + { + McpStatus.NotConfigured => "Not Configured", + McpStatus.Configured => "Configured", + McpStatus.Running => "Running", + McpStatus.Connected => "Connected", + McpStatus.IncorrectPath => "Incorrect Path", + McpStatus.CommunicationError => "Communication Error", + McpStatus.NoResponse => "No Response", + McpStatus.UnsupportedOS => "Unsupported OS", + McpStatus.MissingConfig => "Missing MCPForUnity Config", + McpStatus.Error => configStatus?.StartsWith("Error:") == true ? configStatus : "Error", + _ => "Unknown", + }; + } + + // Helper method to set both status enum and string for backward compatibility + public void SetStatus(McpStatus newStatus, string errorDetails = null) + { + status = newStatus; + + if (newStatus == McpStatus.Error && !string.IsNullOrEmpty(errorDetails)) + { + configStatus = $"Error: {errorDetails}"; + } + else + { + configStatus = GetStatusDisplayString(); + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Models/McpClient.cs.meta b/Packages/MCPForUnity/Editor/Models/McpClient.cs.meta new file mode 100644 index 00000000..b08dcf3b --- /dev/null +++ b/Packages/MCPForUnity/Editor/Models/McpClient.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b1afa56984aec0d41808edcebf805e6a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Models/McpConfig.cs b/Packages/MCPForUnity/Editor/Models/McpConfig.cs new file mode 100644 index 00000000..9ddf9d09 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Models/McpConfig.cs @@ -0,0 +1,12 @@ +using System; +using Newtonsoft.Json; + +namespace MCPForUnity.Editor.Models +{ + [Serializable] + public class McpConfig + { + [JsonProperty("mcpServers")] + public McpConfigServers mcpServers; + } +} diff --git a/Packages/MCPForUnity/Editor/Models/McpConfig.cs.meta b/Packages/MCPForUnity/Editor/Models/McpConfig.cs.meta new file mode 100644 index 00000000..2a407c31 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Models/McpConfig.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c17c09908f0c1524daa8b6957ce1f7f5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Models/McpStatus.cs b/Packages/MCPForUnity/Editor/Models/McpStatus.cs new file mode 100644 index 00000000..c23bc819 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Models/McpStatus.cs @@ -0,0 +1,30 @@ +namespace MCPForUnity.Editor.Models +{ + // Enum representing the various status states for MCP clients + public enum McpStatus + { + NotConfigured, // Not set up yet + Configured, // Successfully configured + Running, // Service is running + Connected, // Successfully connected + IncorrectPath, // Configuration has incorrect paths + CommunicationError, // Connected but communication issues + NoResponse, // Connected but not responding + MissingConfig, // Config file exists but missing required elements + UnsupportedOS, // OS is not supported + Error, // General error state + } + + /// + /// Represents the transport type a client is configured to use. + /// Used to detect mismatches between server and client transport settings. + /// + public enum ConfiguredTransport + { + Unknown, // Could not determine transport type + Stdio, // Client configured for stdio transport + Http, // Client configured for HTTP local transport + HttpRemote // Client configured for HTTP remote-hosted transport + } +} + diff --git a/Packages/MCPForUnity/Editor/Models/McpStatus.cs.meta b/Packages/MCPForUnity/Editor/Models/McpStatus.cs.meta new file mode 100644 index 00000000..e8e930d3 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Models/McpStatus.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: aa63057c9e5282d4887352578bf49971 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Resources.meta b/Packages/MCPForUnity/Editor/Resources.meta new file mode 100644 index 00000000..8d921dfd --- /dev/null +++ b/Packages/MCPForUnity/Editor/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a6f5bafffbb0f48c2a33ad9470bb1e2d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Resources/Editor.meta b/Packages/MCPForUnity/Editor/Resources/Editor.meta new file mode 100644 index 00000000..5c252d17 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Resources/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 266967ec2e1df44209bf46ec6037d61d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Resources/Editor/ActiveTool.cs b/Packages/MCPForUnity/Editor/Resources/Editor/ActiveTool.cs new file mode 100644 index 00000000..13a5564a --- /dev/null +++ b/Packages/MCPForUnity/Editor/Resources/Editor/ActiveTool.cs @@ -0,0 +1,64 @@ +using System; +using MCPForUnity.Editor.Helpers; +using Newtonsoft.Json.Linq; +using UnityEditor; + +namespace MCPForUnity.Editor.Resources.Editor +{ + /// + /// Provides information about the currently active editor tool. + /// + [McpForUnityResource("get_active_tool")] + public static class ActiveTool + { + public static object HandleCommand(JObject @params) + { + try + { + Tool currentTool = UnityEditor.Tools.current; + string toolName = currentTool.ToString(); + bool customToolActive = UnityEditor.Tools.current == Tool.Custom; + string activeToolName = customToolActive ? EditorTools.GetActiveToolName() : toolName; + + var toolInfo = new + { + activeTool = activeToolName, + isCustom = customToolActive, + pivotMode = UnityEditor.Tools.pivotMode.ToString(), + pivotRotation = UnityEditor.Tools.pivotRotation.ToString(), + handleRotation = new + { + x = UnityEditor.Tools.handleRotation.eulerAngles.x, + y = UnityEditor.Tools.handleRotation.eulerAngles.y, + z = UnityEditor.Tools.handleRotation.eulerAngles.z + }, + handlePosition = new + { + x = UnityEditor.Tools.handlePosition.x, + y = UnityEditor.Tools.handlePosition.y, + z = UnityEditor.Tools.handlePosition.z + } + }; + + return new SuccessResponse("Retrieved active tool information.", toolInfo); + } + catch (Exception e) + { + return new ErrorResponse($"Error getting active tool: {e.Message}"); + } + } + } + + // Helper class for custom tool names + internal static class EditorTools + { + public static string GetActiveToolName() + { + if (UnityEditor.Tools.current == Tool.Custom) + { + return "Unknown Custom Tool"; + } + return UnityEditor.Tools.current.ToString(); + } + } +} diff --git a/Packages/MCPForUnity/Editor/Resources/Editor/ActiveTool.cs.meta b/Packages/MCPForUnity/Editor/Resources/Editor/ActiveTool.cs.meta new file mode 100644 index 00000000..a2f03abd --- /dev/null +++ b/Packages/MCPForUnity/Editor/Resources/Editor/ActiveTool.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6e78b6227ab7742a8a4f679ee6a8a212 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Resources/Editor/EditorState.cs b/Packages/MCPForUnity/Editor/Resources/Editor/EditorState.cs new file mode 100644 index 00000000..b58c8880 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Resources/Editor/EditorState.cs @@ -0,0 +1,27 @@ +using System; +using MCPForUnity.Editor.Helpers; +using MCPForUnity.Editor.Services; +using Newtonsoft.Json.Linq; + +namespace MCPForUnity.Editor.Resources.Editor +{ + /// + /// Provides dynamic editor state information that changes frequently. + /// + [McpForUnityResource("get_editor_state")] + public static class EditorState + { + public static object HandleCommand(JObject @params) + { + try + { + var snapshot = EditorStateCache.GetSnapshot(); + return new SuccessResponse("Retrieved editor state.", snapshot); + } + catch (Exception e) + { + return new ErrorResponse($"Error getting editor state: {e.Message}"); + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Resources/Editor/EditorState.cs.meta b/Packages/MCPForUnity/Editor/Resources/Editor/EditorState.cs.meta new file mode 100644 index 00000000..c6c5efa1 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Resources/Editor/EditorState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f7c6df54e014c44fdb0cd3f65a479e37 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Resources/Editor/Selection.cs b/Packages/MCPForUnity/Editor/Resources/Editor/Selection.cs new file mode 100644 index 00000000..022d9c48 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Resources/Editor/Selection.cs @@ -0,0 +1,52 @@ +using System; +using System.Linq; +using MCPForUnity.Editor.Helpers; +using Newtonsoft.Json.Linq; +using UnityEditor; + +namespace MCPForUnity.Editor.Resources.Editor +{ + /// + /// Provides detailed information about the current editor selection. + /// + [McpForUnityResource("get_selection")] + public static class Selection + { + public static object HandleCommand(JObject @params) + { + try + { + var selectionInfo = new + { + activeObject = UnityEditor.Selection.activeObject?.name, + activeGameObject = UnityEditor.Selection.activeGameObject?.name, + activeTransform = UnityEditor.Selection.activeTransform?.name, + activeInstanceID = UnityEditor.Selection.activeInstanceID, + count = UnityEditor.Selection.count, + objects = UnityEditor.Selection.objects + .Select(obj => new + { + name = obj?.name, + type = obj?.GetType().FullName, + instanceID = obj?.GetInstanceID() + }) + .ToList(), + gameObjects = UnityEditor.Selection.gameObjects + .Select(go => new + { + name = go?.name, + instanceID = go?.GetInstanceID() + }) + .ToList(), + assetGUIDs = UnityEditor.Selection.assetGUIDs + }; + + return new SuccessResponse("Retrieved current selection details.", selectionInfo); + } + catch (Exception e) + { + return new ErrorResponse($"Error getting selection: {e.Message}"); + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Resources/Editor/Selection.cs.meta b/Packages/MCPForUnity/Editor/Resources/Editor/Selection.cs.meta new file mode 100644 index 00000000..2066f11a --- /dev/null +++ b/Packages/MCPForUnity/Editor/Resources/Editor/Selection.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c7ea869623e094599a70be086ab4fc0e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Resources/Editor/Windows.cs b/Packages/MCPForUnity/Editor/Resources/Editor/Windows.cs new file mode 100644 index 00000000..b69a9d31 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Resources/Editor/Windows.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; +using MCPForUnity.Editor.Helpers; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.Resources.Editor +{ + /// + /// Provides list of all open editor windows. + /// + [McpForUnityResource("get_windows")] + public static class Windows + { + public static object HandleCommand(JObject @params) + { + try + { + EditorWindow[] allWindows = UnityEngine.Resources.FindObjectsOfTypeAll(); + var openWindows = new List(); + + foreach (EditorWindow window in allWindows) + { + if (window == null) + continue; + + try + { + openWindows.Add(new + { + title = window.titleContent.text, + typeName = window.GetType().FullName, + isFocused = EditorWindow.focusedWindow == window, + position = new + { + x = window.position.x, + y = window.position.y, + width = window.position.width, + height = window.position.height + }, + instanceID = window.GetInstanceID() + }); + } + catch (Exception ex) + { + McpLog.Warn($"Could not get info for window {window.GetType().Name}: {ex.Message}"); + } + } + + return new SuccessResponse("Retrieved list of open editor windows.", openWindows); + } + catch (Exception e) + { + return new ErrorResponse($"Error getting editor windows: {e.Message}"); + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Resources/Editor/Windows.cs.meta b/Packages/MCPForUnity/Editor/Resources/Editor/Windows.cs.meta new file mode 100644 index 00000000..57dd9edc --- /dev/null +++ b/Packages/MCPForUnity/Editor/Resources/Editor/Windows.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 58a341e64bea440b29deaf859aaea552 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Resources/McpForUnityResourceAttribute.cs b/Packages/MCPForUnity/Editor/Resources/McpForUnityResourceAttribute.cs new file mode 100644 index 00000000..f86cd5ff --- /dev/null +++ b/Packages/MCPForUnity/Editor/Resources/McpForUnityResourceAttribute.cs @@ -0,0 +1,42 @@ +using System; + +namespace MCPForUnity.Editor.Resources +{ + /// + /// Marks a class as an MCP resource handler for auto-discovery. + /// The class must have a public static HandleCommand(JObject) method. + /// + [AttributeUsage(AttributeTargets.Class, AllowMultiple = false)] + public class McpForUnityResourceAttribute : Attribute + { + /// + /// The resource name used to route requests to this resource. + /// If not specified, defaults to the PascalCase class name converted to snake_case. + /// + public string ResourceName { get; } + + /// + /// Human-readable description of what this resource provides. + /// + public string Description { get; set; } + + /// + /// Create an MCP resource attribute with auto-generated resource name. + /// The resource name will be derived from the class name (PascalCase → snake_case). + /// Example: ManageAsset → manage_asset + /// + public McpForUnityResourceAttribute() + { + ResourceName = null; // Will be auto-generated + } + + /// + /// Create an MCP resource attribute with explicit resource name. + /// + /// The resource name (e.g., "manage_asset") + public McpForUnityResourceAttribute(string resourceName) + { + ResourceName = resourceName; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Resources/McpForUnityResourceAttribute.cs.meta b/Packages/MCPForUnity/Editor/Resources/McpForUnityResourceAttribute.cs.meta new file mode 100644 index 00000000..e887db08 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Resources/McpForUnityResourceAttribute.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4c2d60f570f3d4bd2a6a2c1293094be3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Resources/MenuItems.meta b/Packages/MCPForUnity/Editor/Resources/MenuItems.meta new file mode 100644 index 00000000..df20ed6c --- /dev/null +++ b/Packages/MCPForUnity/Editor/Resources/MenuItems.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bca79cd3ef8ed466f9e50e2dc7850e46 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Resources/MenuItems/GetMenuItems.cs b/Packages/MCPForUnity/Editor/Resources/MenuItems/GetMenuItems.cs new file mode 100644 index 00000000..f6a84282 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Resources/MenuItems/GetMenuItems.cs @@ -0,0 +1,71 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using MCPForUnity.Editor.Helpers; +using Newtonsoft.Json.Linq; +using UnityEditor; + +namespace MCPForUnity.Editor.Resources.MenuItems +{ + /// + /// Provides a simple read-only resource that returns Unity menu items. + /// + [McpForUnityResource("get_menu_items")] + public static class GetMenuItems + { + private static List _cached; + + [InitializeOnLoadMethod] + private static void BuildCache() => Refresh(); + + public static object HandleCommand(JObject @params) + { + bool forceRefresh = @params?["refresh"]?.ToObject() ?? false; + string search = @params?["search"]?.ToString(); + + var items = GetMenuItemsInternal(forceRefresh); + + if (!string.IsNullOrEmpty(search)) + { + items = items + .Where(item => item.IndexOf(search, StringComparison.OrdinalIgnoreCase) >= 0) + .ToList(); + } + + string message = $"Retrieved {items.Count} menu items"; + return new SuccessResponse(message, items); + } + + internal static List GetMenuItemsInternal(bool forceRefresh) + { + if (forceRefresh || _cached == null) + { + Refresh(); + } + + return (_cached ?? new List()).ToList(); + } + + private static void Refresh() + { + try + { + var methods = TypeCache.GetMethodsWithAttribute(); + _cached = methods + .SelectMany(m => m + .GetCustomAttributes(typeof(MenuItem), false) + .OfType() + .Select(attr => attr.menuItem)) + .Where(s => !string.IsNullOrEmpty(s)) + .Distinct(StringComparer.Ordinal) + .OrderBy(s => s, StringComparer.Ordinal) + .ToList(); + } + catch (Exception ex) + { + McpLog.Error($"[GetMenuItems] Failed to scan menu items: {ex}"); + _cached ??= new List(); + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Resources/MenuItems/GetMenuItems.cs.meta b/Packages/MCPForUnity/Editor/Resources/MenuItems/GetMenuItems.cs.meta new file mode 100644 index 00000000..fde7829b --- /dev/null +++ b/Packages/MCPForUnity/Editor/Resources/MenuItems/GetMenuItems.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 04eeea61eb5c24033a88013845d25f23 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Resources/Project.meta b/Packages/MCPForUnity/Editor/Resources/Project.meta new file mode 100644 index 00000000..1adf0443 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Resources/Project.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 538489f13d7914c4eba9a67e29001b43 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Resources/Project/Layers.cs b/Packages/MCPForUnity/Editor/Resources/Project/Layers.cs new file mode 100644 index 00000000..9e9ef7d5 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Resources/Project/Layers.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using MCPForUnity.Editor.Helpers; +using Newtonsoft.Json.Linq; +using UnityEngine; + +namespace MCPForUnity.Editor.Resources.Project +{ + /// + /// Provides dictionary of layer indices to layer names. + /// + [McpForUnityResource("get_layers")] + public static class Layers + { + private const int TotalLayerCount = 32; + + public static object HandleCommand(JObject @params) + { + try + { + var layers = new Dictionary(); + for (int i = 0; i < TotalLayerCount; i++) + { + string layerName = LayerMask.LayerToName(i); + if (!string.IsNullOrEmpty(layerName)) + { + layers.Add(i, layerName); + } + } + + return new SuccessResponse("Retrieved current named layers.", layers); + } + catch (Exception e) + { + return new ErrorResponse($"Failed to retrieve layers: {e.Message}"); + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Resources/Project/Layers.cs.meta b/Packages/MCPForUnity/Editor/Resources/Project/Layers.cs.meta new file mode 100644 index 00000000..427a7e92 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Resources/Project/Layers.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 959ee428299454ac19a636275208ca00 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Resources/Project/ProjectInfo.cs b/Packages/MCPForUnity/Editor/Resources/Project/ProjectInfo.cs new file mode 100644 index 00000000..6e6d12f9 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Resources/Project/ProjectInfo.cs @@ -0,0 +1,41 @@ +using System; +using System.IO; +using MCPForUnity.Editor.Helpers; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.Resources.Project +{ + /// + /// Provides static project configuration information. + /// + [McpForUnityResource("get_project_info")] + public static class ProjectInfo + { + public static object HandleCommand(JObject @params) + { + try + { + string assetsPath = Application.dataPath.Replace('\\', '/'); + string projectRoot = Directory.GetParent(assetsPath)?.FullName.Replace('\\', '/'); + string projectName = Path.GetFileName(projectRoot); + + var info = new + { + projectRoot = projectRoot ?? "", + projectName = projectName ?? "", + unityVersion = Application.unityVersion, + platform = EditorUserBuildSettings.activeBuildTarget.ToString(), + assetsPath = assetsPath + }; + + return new SuccessResponse("Retrieved project info.", info); + } + catch (Exception e) + { + return new ErrorResponse($"Error getting project info: {e.Message}"); + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Resources/Project/ProjectInfo.cs.meta b/Packages/MCPForUnity/Editor/Resources/Project/ProjectInfo.cs.meta new file mode 100644 index 00000000..a8eaf02a --- /dev/null +++ b/Packages/MCPForUnity/Editor/Resources/Project/ProjectInfo.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 81b03415fcf93466e9ed667d19b58d43 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Resources/Project/Tags.cs b/Packages/MCPForUnity/Editor/Resources/Project/Tags.cs new file mode 100644 index 00000000..756f00d8 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Resources/Project/Tags.cs @@ -0,0 +1,27 @@ +using System; +using MCPForUnity.Editor.Helpers; +using Newtonsoft.Json.Linq; +using UnityEditorInternal; + +namespace MCPForUnity.Editor.Resources.Project +{ + /// + /// Provides list of all tags in the project. + /// + [McpForUnityResource("get_tags")] + public static class Tags + { + public static object HandleCommand(JObject @params) + { + try + { + string[] tags = InternalEditorUtility.tags; + return new SuccessResponse("Retrieved current tags.", tags); + } + catch (Exception e) + { + return new ErrorResponse($"Failed to retrieve tags: {e.Message}"); + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Resources/Project/Tags.cs.meta b/Packages/MCPForUnity/Editor/Resources/Project/Tags.cs.meta new file mode 100644 index 00000000..3529bea6 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Resources/Project/Tags.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2179ac5d98f264d1681e7d5c0d0ed341 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Resources/Scene.meta b/Packages/MCPForUnity/Editor/Resources/Scene.meta new file mode 100644 index 00000000..20d08dbf --- /dev/null +++ b/Packages/MCPForUnity/Editor/Resources/Scene.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 563f6050485b445449a1db200bfba51c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Resources/Scene/GameObjectResource.cs b/Packages/MCPForUnity/Editor/Resources/Scene/GameObjectResource.cs new file mode 100644 index 00000000..2588349f --- /dev/null +++ b/Packages/MCPForUnity/Editor/Resources/Scene/GameObjectResource.cs @@ -0,0 +1,284 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using MCPForUnity.Editor.Helpers; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.Resources.Scene +{ + /// + /// Resource handler for reading GameObject data. + /// Provides read-only access to GameObject information without component serialization. + /// + /// URI: unity://scene/gameobject/{instanceID} + /// + [McpForUnityResource("get_gameobject")] + public static class GameObjectResource + { + public static object HandleCommand(JObject @params) + { + if (@params == null) + { + return new ErrorResponse("Parameters cannot be null."); + } + + // Get instance ID from params + int? instanceID = null; + + var idToken = @params["instanceID"] ?? @params["instance_id"] ?? @params["id"]; + if (idToken != null) + { + instanceID = ParamCoercion.CoerceInt(idToken, -1); + if (instanceID == -1) + { + instanceID = null; + } + } + + if (!instanceID.HasValue) + { + return new ErrorResponse("'instanceID' parameter is required."); + } + + try + { + var go = EditorUtility.InstanceIDToObject(instanceID.Value) as GameObject; + if (go == null) + { + return new ErrorResponse($"GameObject with instance ID {instanceID} not found."); + } + + return new + { + success = true, + data = SerializeGameObject(go) + }; + } + catch (Exception e) + { + McpLog.Error($"[GameObjectResource] Error getting GameObject: {e}"); + return new ErrorResponse($"Error getting GameObject: {e.Message}"); + } + } + + /// + /// Serializes a GameObject without component details. + /// For component data, use GetComponents or GetComponent resources. + /// + public static object SerializeGameObject(GameObject go) + { + if (go == null) + return null; + + var transform = go.transform; + + // Get component type names (not full serialization) + var componentTypes = go.GetComponents() + .Where(c => c != null) + .Select(c => c.GetType().Name) + .ToList(); + + // Get children instance IDs (not full serialization) + var childrenIds = new List(); + foreach (Transform child in transform) + { + childrenIds.Add(child.gameObject.GetInstanceID()); + } + + return new + { + instanceID = go.GetInstanceID(), + name = go.name, + tag = go.tag, + layer = go.layer, + layerName = LayerMask.LayerToName(go.layer), + active = go.activeSelf, + activeInHierarchy = go.activeInHierarchy, + isStatic = go.isStatic, + transform = new + { + position = SerializeVector3(transform.position), + localPosition = SerializeVector3(transform.localPosition), + rotation = SerializeVector3(transform.eulerAngles), + localRotation = SerializeVector3(transform.localEulerAngles), + scale = SerializeVector3(transform.localScale), + lossyScale = SerializeVector3(transform.lossyScale) + }, + parent = transform.parent != null ? transform.parent.gameObject.GetInstanceID() : (int?)null, + children = childrenIds, + componentTypes = componentTypes, + path = GameObjectLookup.GetGameObjectPath(go) + }; + } + + private static object SerializeVector3(Vector3 v) + { + return new { x = v.x, y = v.y, z = v.z }; + } + } + + /// + /// Resource handler for reading all components on a GameObject. + /// + /// URI: unity://scene/gameobject/{instanceID}/components + /// + [McpForUnityResource("get_gameobject_components")] + public static class GameObjectComponentsResource + { + public static object HandleCommand(JObject @params) + { + if (@params == null) + { + return new ErrorResponse("Parameters cannot be null."); + } + + var idToken = @params["instanceID"] ?? @params["instance_id"] ?? @params["id"]; + int instanceID = ParamCoercion.CoerceInt(idToken, -1); + if (instanceID == -1) + { + return new ErrorResponse("'instanceID' parameter is required."); + } + + // Pagination parameters + int pageSize = ParamCoercion.CoerceInt(@params["pageSize"] ?? @params["page_size"], 25); + int cursor = ParamCoercion.CoerceInt(@params["cursor"], 0); + bool includeProperties = ParamCoercion.CoerceBool(@params["includeProperties"] ?? @params["include_properties"], true); + + pageSize = Mathf.Clamp(pageSize, 1, 100); + + try + { + var go = EditorUtility.InstanceIDToObject(instanceID) as GameObject; + if (go == null) + { + return new ErrorResponse($"GameObject with instance ID {instanceID} not found."); + } + + var allComponents = go.GetComponents().Where(c => c != null).ToList(); + int total = allComponents.Count; + + var pagedComponents = allComponents.Skip(cursor).Take(pageSize).ToList(); + + var componentData = new List(); + foreach (var component in pagedComponents) + { + if (includeProperties) + { + componentData.Add(GameObjectSerializer.GetComponentData(component)); + } + else + { + componentData.Add(new + { + typeName = component.GetType().FullName, + instanceID = component.GetInstanceID() + }); + } + } + + int? nextCursor = cursor + pagedComponents.Count < total ? cursor + pagedComponents.Count : (int?)null; + + return new + { + success = true, + data = new + { + gameObjectID = instanceID, + gameObjectName = go.name, + components = componentData, + cursor = cursor, + pageSize = pageSize, + nextCursor = nextCursor, + totalCount = total, + hasMore = nextCursor.HasValue, + includeProperties = includeProperties + } + }; + } + catch (Exception e) + { + McpLog.Error($"[GameObjectComponentsResource] Error getting components: {e}"); + return new ErrorResponse($"Error getting components: {e.Message}"); + } + } + } + + /// + /// Resource handler for reading a single component on a GameObject. + /// + /// URI: unity://scene/gameobject/{instanceID}/component/{componentName} + /// + [McpForUnityResource("get_gameobject_component")] + public static class GameObjectComponentResource + { + public static object HandleCommand(JObject @params) + { + if (@params == null) + { + return new ErrorResponse("Parameters cannot be null."); + } + + var idToken = @params["instanceID"] ?? @params["instance_id"] ?? @params["id"]; + int instanceID = ParamCoercion.CoerceInt(idToken, -1); + if (instanceID == -1) + { + return new ErrorResponse("'instanceID' parameter is required."); + } + + string componentName = ParamCoercion.CoerceString(@params["componentName"] ?? @params["component_name"] ?? @params["component"], null); + if (string.IsNullOrEmpty(componentName)) + { + return new ErrorResponse("'componentName' parameter is required."); + } + + try + { + var go = EditorUtility.InstanceIDToObject(instanceID) as GameObject; + if (go == null) + { + return new ErrorResponse($"GameObject with instance ID {instanceID} not found."); + } + + // Find the component by type name + Component targetComponent = null; + foreach (var component in go.GetComponents()) + { + if (component == null) continue; + + var typeName = component.GetType().Name; + var fullTypeName = component.GetType().FullName; + + if (string.Equals(typeName, componentName, StringComparison.OrdinalIgnoreCase) || + string.Equals(fullTypeName, componentName, StringComparison.OrdinalIgnoreCase)) + { + targetComponent = component; + break; + } + } + + if (targetComponent == null) + { + return new ErrorResponse($"Component '{componentName}' not found on GameObject '{go.name}'."); + } + + return new + { + success = true, + data = new + { + gameObjectID = instanceID, + gameObjectName = go.name, + component = GameObjectSerializer.GetComponentData(targetComponent) + } + }; + } + catch (Exception e) + { + McpLog.Error($"[GameObjectComponentResource] Error getting component: {e}"); + return new ErrorResponse($"Error getting component: {e.Message}"); + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Resources/Scene/GameObjectResource.cs.meta b/Packages/MCPForUnity/Editor/Resources/Scene/GameObjectResource.cs.meta new file mode 100644 index 00000000..5fb61f24 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Resources/Scene/GameObjectResource.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5ee79050d9f6d42798a0757cc7672517 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Resources/Tests.meta b/Packages/MCPForUnity/Editor/Resources/Tests.meta new file mode 100644 index 00000000..0aa0bf04 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Resources/Tests.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 412726d2e774048939b0d2bd4f11a503 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Resources/Tests/GetTests.cs b/Packages/MCPForUnity/Editor/Resources/Tests/GetTests.cs new file mode 100644 index 00000000..4fe48c72 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Resources/Tests/GetTests.cs @@ -0,0 +1,217 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using MCPForUnity.Editor.Helpers; +using MCPForUnity.Editor.Services; +using Newtonsoft.Json.Linq; +using UnityEditor.TestTools.TestRunner.Api; + +namespace MCPForUnity.Editor.Resources.Tests +{ + /// + /// Provides access to Unity tests from the Test Framework with pagination and filtering support. + /// This is a read-only resource that can be queried by MCP clients. + /// + /// Parameters: + /// - mode (optional): Filter by "EditMode" or "PlayMode" + /// - filter (optional): Filter test names by pattern (case-insensitive contains) + /// - page_size (optional): Number of tests per page (default: 50, max: 200) + /// - cursor (optional): 0-based cursor for pagination + /// - page_number (optional): 1-based page number (converted to cursor) + /// + [McpForUnityResource("get_tests")] + public static class GetTests + { + private const int DEFAULT_PAGE_SIZE = 50; + private const int MAX_PAGE_SIZE = 200; + + public static async Task HandleCommand(JObject @params) + { + // Parse mode filter + TestMode? modeFilter = null; + string modeStr = @params?["mode"]?.ToString(); + if (!string.IsNullOrEmpty(modeStr)) + { + if (!ModeParser.TryParse(modeStr, out modeFilter, out var parseError)) + { + return new ErrorResponse(parseError); + } + } + + // Parse name filter + string nameFilter = @params?["filter"]?.ToString(); + + McpLog.Info($"[GetTests] Retrieving tests (mode={modeFilter?.ToString() ?? "all"}, filter={nameFilter ?? "none"})"); + + IReadOnlyList> allTests; + try + { + allTests = await MCPServiceLocator.Tests.GetTestsAsync(modeFilter).ConfigureAwait(true); + } + catch (Exception ex) + { + McpLog.Error($"[GetTests] Error retrieving tests: {ex.Message}\n{ex.StackTrace}"); + return new ErrorResponse("Failed to retrieve tests"); + } + + // Apply name filter if provided and convert to List for pagination + List> filteredTests; + if (!string.IsNullOrEmpty(nameFilter)) + { + filteredTests = allTests + .Where(t => + (t.ContainsKey("name") && t["name"].IndexOf(nameFilter, StringComparison.OrdinalIgnoreCase) >= 0) || + (t.ContainsKey("full_name") && t["full_name"].IndexOf(nameFilter, StringComparison.OrdinalIgnoreCase) >= 0) + ) + .ToList(); + } + else + { + filteredTests = allTests.ToList(); + } + + // Clamp page_size before parsing pagination to ensure cursor is computed correctly + int requestedPageSize = ParamCoercion.CoerceInt( + @params?["page_size"] ?? @params?["pageSize"], + DEFAULT_PAGE_SIZE + ); + int clampedPageSize = System.Math.Min(requestedPageSize, MAX_PAGE_SIZE); + if (clampedPageSize <= 0) clampedPageSize = DEFAULT_PAGE_SIZE; + + // Create modified params with clamped page_size for cursor calculation + var paginationParams = new JObject(@params); + paginationParams["page_size"] = clampedPageSize; + + // Parse pagination with clamped page size + var pagination = PaginationRequest.FromParams(paginationParams, DEFAULT_PAGE_SIZE); + + // Create paginated response + var response = PaginationResponse>.Create(filteredTests, pagination); + + string message = !string.IsNullOrEmpty(nameFilter) + ? $"Retrieved {response.Items.Count} of {response.TotalCount} tests matching '{nameFilter}' (cursor {response.Cursor})" + : $"Retrieved {response.Items.Count} of {response.TotalCount} tests (cursor {response.Cursor})"; + + return new SuccessResponse(message, response); + } + } + + /// + /// DEPRECATED: Use get_tests with mode parameter instead. + /// Provides access to Unity tests for a specific mode (EditMode or PlayMode). + /// This is a read-only resource that can be queried by MCP clients. + /// + /// Parameters: + /// - mode (required): "EditMode" or "PlayMode" + /// - filter (optional): Filter test names by pattern (case-insensitive contains) + /// - page_size (optional): Number of tests per page (default: 50, max: 200) + /// - cursor (optional): 0-based cursor for pagination + /// + [McpForUnityResource("get_tests_for_mode")] + public static class GetTestsForMode + { + private const int DEFAULT_PAGE_SIZE = 50; + private const int MAX_PAGE_SIZE = 200; + + public static async Task HandleCommand(JObject @params) + { + string modeStr = @params?["mode"]?.ToString(); + if (string.IsNullOrEmpty(modeStr)) + { + return new ErrorResponse("'mode' parameter is required"); + } + + if (!ModeParser.TryParse(modeStr, out var parsedMode, out var parseError)) + { + return new ErrorResponse(parseError); + } + + // Parse name filter + string nameFilter = @params?["filter"]?.ToString(); + + McpLog.Info($"[GetTestsForMode] Retrieving tests for mode: {parsedMode.Value} (filter={nameFilter ?? "none"})"); + + IReadOnlyList> allTests; + try + { + allTests = await MCPServiceLocator.Tests.GetTestsAsync(parsedMode).ConfigureAwait(true); + } + catch (Exception ex) + { + McpLog.Error($"[GetTestsForMode] Error retrieving tests: {ex.Message}\n{ex.StackTrace}"); + return new ErrorResponse("Failed to retrieve tests"); + } + + // Apply name filter if provided and convert to List for pagination + List> filteredTests; + if (!string.IsNullOrEmpty(nameFilter)) + { + filteredTests = allTests + .Where(t => + (t.ContainsKey("name") && t["name"].IndexOf(nameFilter, StringComparison.OrdinalIgnoreCase) >= 0) || + (t.ContainsKey("full_name") && t["full_name"].IndexOf(nameFilter, StringComparison.OrdinalIgnoreCase) >= 0) + ) + .ToList(); + } + else + { + filteredTests = allTests.ToList(); + } + + // Clamp page_size before parsing pagination to ensure cursor is computed correctly + int requestedPageSize = ParamCoercion.CoerceInt( + @params?["page_size"] ?? @params?["pageSize"], + DEFAULT_PAGE_SIZE + ); + int clampedPageSize = System.Math.Min(requestedPageSize, MAX_PAGE_SIZE); + if (clampedPageSize <= 0) clampedPageSize = DEFAULT_PAGE_SIZE; + + // Create modified params with clamped page_size for cursor calculation + var paginationParams = new JObject(@params); + paginationParams["page_size"] = clampedPageSize; + + // Parse pagination with clamped page size + var pagination = PaginationRequest.FromParams(paginationParams, DEFAULT_PAGE_SIZE); + + // Create paginated response + var response = PaginationResponse>.Create(filteredTests, pagination); + + string message = nameFilter != null + ? $"Retrieved {response.Items.Count} of {response.TotalCount} {parsedMode.Value} tests matching '{nameFilter}'" + : $"Retrieved {response.Items.Count} of {response.TotalCount} {parsedMode.Value} tests"; + + return new SuccessResponse(message, response); + } + } + + internal static class ModeParser + { + internal static bool TryParse(string modeStr, out TestMode? mode, out string error) + { + error = null; + mode = null; + + if (string.IsNullOrWhiteSpace(modeStr)) + { + error = "'mode' parameter cannot be empty"; + return false; + } + + if (modeStr.Equals("EditMode", StringComparison.OrdinalIgnoreCase)) + { + mode = TestMode.EditMode; + return true; + } + + if (modeStr.Equals("PlayMode", StringComparison.OrdinalIgnoreCase)) + { + mode = TestMode.PlayMode; + return true; + } + + error = $"Unknown test mode: '{modeStr}'. Use 'EditMode' or 'PlayMode'"; + return false; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Resources/Tests/GetTests.cs.meta b/Packages/MCPForUnity/Editor/Resources/Tests/GetTests.cs.meta new file mode 100644 index 00000000..aa419737 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Resources/Tests/GetTests.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 84183aaed077e4f25968269c952db2d7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services.meta b/Packages/MCPForUnity/Editor/Services.meta new file mode 100644 index 00000000..e800deae --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2ab6b1cc527214416b21e07b96164f24 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/BridgeControlService.cs b/Packages/MCPForUnity/Editor/Services/BridgeControlService.cs new file mode 100644 index 00000000..04583e7d --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/BridgeControlService.cs @@ -0,0 +1,157 @@ + +using System; +using System.Threading.Tasks; +using MCPForUnity.Editor.Constants; +using MCPForUnity.Editor.Helpers; +using MCPForUnity.Editor.Services.Transport; +using MCPForUnity.Editor.Services.Transport.Transports; +using UnityEditor; + +namespace MCPForUnity.Editor.Services +{ + /// + /// Bridges the editor UI to the active transport (HTTP with WebSocket push, or stdio). + /// + public class BridgeControlService : IBridgeControlService + { + private readonly TransportManager _transportManager; + private TransportMode _preferredMode = TransportMode.Http; + + public BridgeControlService() + { + _transportManager = MCPServiceLocator.TransportManager; + } + + private TransportMode ResolvePreferredMode() + { + bool useHttp = EditorConfigurationCache.Instance.UseHttpTransport; + _preferredMode = useHttp ? TransportMode.Http : TransportMode.Stdio; + return _preferredMode; + } + + private static BridgeVerificationResult BuildVerificationResult(TransportState state, TransportMode mode, bool pingSucceeded, string messageOverride = null, bool? handshakeOverride = null) + { + bool handshakeValid = handshakeOverride ?? (mode == TransportMode.Stdio ? state.IsConnected : true); + string transportLabel = string.IsNullOrWhiteSpace(state.TransportName) + ? mode.ToString().ToLowerInvariant() + : state.TransportName; + string detailSuffix = string.IsNullOrWhiteSpace(state.Details) ? string.Empty : $" [{state.Details}]"; + string message = messageOverride + ?? state.Error + ?? (state.IsConnected ? $"Transport '{transportLabel}' connected{detailSuffix}" : $"Transport '{transportLabel}' disconnected{detailSuffix}"); + + return new BridgeVerificationResult + { + Success = pingSucceeded && handshakeValid, + HandshakeValid = handshakeValid, + PingSucceeded = pingSucceeded, + Message = message + }; + } + + public bool IsRunning + { + get + { + var mode = ResolvePreferredMode(); + return _transportManager.IsRunning(mode); + } + } + + public int CurrentPort + { + get + { + var mode = ResolvePreferredMode(); + var state = _transportManager.GetState(mode); + if (state.Port.HasValue) + { + return state.Port.Value; + } + + // Legacy fallback while the stdio bridge is still in play + return StdioBridgeHost.GetCurrentPort(); + } + } + + public bool IsAutoConnectMode => StdioBridgeHost.IsAutoConnectMode(); + public TransportMode? ActiveMode => ResolvePreferredMode(); + + public async Task StartAsync() + { + var mode = ResolvePreferredMode(); + try + { + // Treat transports as mutually exclusive for user-driven session starts: + // stop the *other* transport first to avoid duplicated sessions (e.g. stdio lingering when switching to HTTP). + var otherMode = mode == TransportMode.Http ? TransportMode.Stdio : TransportMode.Http; + try + { + await _transportManager.StopAsync(otherMode); + } + catch (Exception ex) + { + McpLog.Warn($"Error stopping other transport ({otherMode}) before start: {ex.Message}"); + } + + // Legacy safety: stdio may have been started outside TransportManager state. + if (otherMode == TransportMode.Stdio) + { + try { StdioBridgeHost.Stop(); } catch { } + } + + bool started = await _transportManager.StartAsync(mode); + if (!started) + { + McpLog.Warn($"Failed to start MCP transport: {mode}"); + } + return started; + } + catch (Exception ex) + { + McpLog.Error($"Error starting MCP transport {mode}: {ex.Message}"); + return false; + } + } + + public async Task StopAsync() + { + try + { + var mode = ResolvePreferredMode(); + await _transportManager.StopAsync(mode); + } + catch (Exception ex) + { + McpLog.Warn($"Error stopping MCP transport: {ex.Message}"); + } + } + + public async Task VerifyAsync() + { + var mode = ResolvePreferredMode(); + bool pingSucceeded = await _transportManager.VerifyAsync(mode); + var state = _transportManager.GetState(mode); + return BuildVerificationResult(state, mode, pingSucceeded); + } + + public BridgeVerificationResult Verify(int port) + { + var mode = ResolvePreferredMode(); + bool pingSucceeded = _transportManager.VerifyAsync(mode).GetAwaiter().GetResult(); + var state = _transportManager.GetState(mode); + + if (mode == TransportMode.Stdio) + { + bool handshakeValid = state.IsConnected && port == CurrentPort; + string message = handshakeValid + ? $"STDIO transport listening on port {CurrentPort}" + : $"STDIO transport port mismatch (expected {CurrentPort}, got {port})"; + return BuildVerificationResult(state, mode, pingSucceeded && handshakeValid, message, handshakeValid); + } + + return BuildVerificationResult(state, mode, pingSucceeded); + } + + } +} diff --git a/Packages/MCPForUnity/Editor/Services/BridgeControlService.cs.meta b/Packages/MCPForUnity/Editor/Services/BridgeControlService.cs.meta new file mode 100644 index 00000000..93966a28 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/BridgeControlService.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ed4f9f69d84a945248dafc0f0b5a62dd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/ClientConfigurationService.cs b/Packages/MCPForUnity/Editor/Services/ClientConfigurationService.cs new file mode 100644 index 00000000..65f0e1d3 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/ClientConfigurationService.cs @@ -0,0 +1,73 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using MCPForUnity.Editor.Clients; +using MCPForUnity.Editor.Helpers; +using MCPForUnity.Editor.Models; + +namespace MCPForUnity.Editor.Services +{ + /// + /// Implementation of client configuration service + /// + public class ClientConfigurationService : IClientConfigurationService + { + private readonly List configurators; + + public ClientConfigurationService() + { + configurators = McpClientRegistry.All.ToList(); + } + + public IReadOnlyList GetAllClients() => configurators; + + public void ConfigureClient(IMcpClientConfigurator configurator) + { + // When using a local server path, clean stale build artifacts first. + // This prevents old deleted .py files from being picked up by Python's auto-discovery. + if (AssetPathUtility.IsLocalServerPath()) + { + AssetPathUtility.CleanLocalServerBuildArtifacts(); + } + + configurator.Configure(); + } + + public ClientConfigurationSummary ConfigureAllDetectedClients() + { + // When using a local server path, clean stale build artifacts once before configuring all clients. + if (AssetPathUtility.IsLocalServerPath()) + { + AssetPathUtility.CleanLocalServerBuildArtifacts(); + } + + var summary = new ClientConfigurationSummary(); + foreach (var configurator in configurators) + { + try + { + // Always re-run configuration so core fields stay current + configurator.CheckStatus(attemptAutoRewrite: false); + configurator.Configure(); + summary.SuccessCount++; + summary.Messages.Add($"✓ {configurator.DisplayName}: Configured successfully"); + } + catch (Exception ex) + { + summary.FailureCount++; + summary.Messages.Add($"⚠ {configurator.DisplayName}: {ex.Message}"); + } + } + + return summary; + } + + public bool CheckClientStatus(IMcpClientConfigurator configurator, bool attemptAutoRewrite = true) + { + var previous = configurator.Status; + var current = configurator.CheckStatus(attemptAutoRewrite); + return current != previous; + } + + } +} diff --git a/Packages/MCPForUnity/Editor/Services/ClientConfigurationService.cs.meta b/Packages/MCPForUnity/Editor/Services/ClientConfigurationService.cs.meta new file mode 100644 index 00000000..ce6ade0b --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/ClientConfigurationService.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 76cad34d10fd24aaa95c4583c1f88fdf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/EditorConfigurationCache.cs b/Packages/MCPForUnity/Editor/Services/EditorConfigurationCache.cs new file mode 100644 index 00000000..40dedd58 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/EditorConfigurationCache.cs @@ -0,0 +1,345 @@ +using System; +using MCPForUnity.Editor.Constants; +using UnityEditor; + +namespace MCPForUnity.Editor.Services +{ + /// + /// Centralized cache for frequently-read EditorPrefs values. + /// Reduces scattered EditorPrefs.Get* calls and provides change notification. + /// + /// Usage: + /// var config = EditorConfigurationCache.Instance; + /// if (config.UseHttpTransport) { ... } + /// config.OnConfigurationChanged += (key) => { /* refresh UI */ }; + /// + public class EditorConfigurationCache + { + private static EditorConfigurationCache _instance; + private static readonly object _lock = new object(); + + /// + /// Singleton instance. Thread-safe lazy initialization. + /// + public static EditorConfigurationCache Instance + { + get + { + if (_instance == null) + { + lock (_lock) + { + if (_instance == null) + { + _instance = new EditorConfigurationCache(); + } + } + } + return _instance; + } + } + + /// + /// Event fired when any cached configuration value changes. + /// The string parameter is the EditorPrefKeys constant name that changed. + /// + public event Action OnConfigurationChanged; + + // Cached values - most frequently read + private bool _useHttpTransport; + private bool _debugLogs; + private bool _useBetaServer; + private bool _devModeForceServerRefresh; + private string _uvxPathOverride; + private string _gitUrlOverride; + private string _httpBaseUrl; + private string _httpRemoteBaseUrl; + private string _claudeCliPathOverride; + private string _httpTransportScope; + private int _unitySocketPort; + + /// + /// Whether to use HTTP transport (true) or Stdio transport (false). + /// Default: true + /// + public bool UseHttpTransport => _useHttpTransport; + + /// + /// Whether debug logging is enabled. + /// Default: false + /// + public bool DebugLogs => _debugLogs; + + /// + /// Whether to use the beta server channel. + /// Default: true + /// + public bool UseBetaServer => _useBetaServer; + + /// + /// Whether to force server refresh in dev mode (--no-cache --refresh). + /// Default: false + /// + public bool DevModeForceServerRefresh => _devModeForceServerRefresh; + + /// + /// Custom path override for uvx executable. + /// Default: empty string (auto-detect) + /// + public string UvxPathOverride => _uvxPathOverride; + + /// + /// Custom Git URL override for server installation. + /// Default: empty string (use default) + /// + public string GitUrlOverride => _gitUrlOverride; + + /// + /// HTTP base URL for the local MCP server. + /// Default: empty string + /// + public string HttpBaseUrl => _httpBaseUrl; + + /// + /// HTTP base URL for the remote-hosted MCP server. + /// Default: empty string + /// + public string HttpRemoteBaseUrl => _httpRemoteBaseUrl; + + /// + /// Custom path override for Claude CLI executable. + /// Default: empty string (auto-detect) + /// + public string ClaudeCliPathOverride => _claudeCliPathOverride; + + /// + /// HTTP transport scope: "local" or "remote". + /// Default: empty string + /// + public string HttpTransportScope => _httpTransportScope; + + /// + /// Unity socket port for Stdio transport. + /// Default: 0 (auto-assign) + /// + public int UnitySocketPort => _unitySocketPort; + + private EditorConfigurationCache() + { + Refresh(); + } + + /// + /// Refresh all cached values from EditorPrefs. + /// Call this after bulk EditorPrefs changes or domain reload. + /// + public void Refresh() + { + _useHttpTransport = EditorPrefs.GetBool(EditorPrefKeys.UseHttpTransport, true); + _debugLogs = EditorPrefs.GetBool(EditorPrefKeys.DebugLogs, false); + _useBetaServer = EditorPrefs.GetBool(EditorPrefKeys.UseBetaServer, true); + _devModeForceServerRefresh = EditorPrefs.GetBool(EditorPrefKeys.DevModeForceServerRefresh, false); + _uvxPathOverride = EditorPrefs.GetString(EditorPrefKeys.UvxPathOverride, string.Empty); + _gitUrlOverride = EditorPrefs.GetString(EditorPrefKeys.GitUrlOverride, string.Empty); + _httpBaseUrl = EditorPrefs.GetString(EditorPrefKeys.HttpBaseUrl, string.Empty); + _httpRemoteBaseUrl = EditorPrefs.GetString(EditorPrefKeys.HttpRemoteBaseUrl, string.Empty); + _claudeCliPathOverride = EditorPrefs.GetString(EditorPrefKeys.ClaudeCliPathOverride, string.Empty); + _httpTransportScope = EditorPrefs.GetString(EditorPrefKeys.HttpTransportScope, string.Empty); + _unitySocketPort = EditorPrefs.GetInt(EditorPrefKeys.UnitySocketPort, 0); + } + + /// + /// Set UseHttpTransport and update cache + EditorPrefs atomically. + /// + public void SetUseHttpTransport(bool value) + { + if (_useHttpTransport != value) + { + _useHttpTransport = value; + EditorPrefs.SetBool(EditorPrefKeys.UseHttpTransport, value); + OnConfigurationChanged?.Invoke(nameof(UseHttpTransport)); + } + } + + /// + /// Set DebugLogs and update cache + EditorPrefs atomically. + /// + public void SetDebugLogs(bool value) + { + if (_debugLogs != value) + { + _debugLogs = value; + EditorPrefs.SetBool(EditorPrefKeys.DebugLogs, value); + OnConfigurationChanged?.Invoke(nameof(DebugLogs)); + } + } + + /// + /// Set UseBetaServer and update cache + EditorPrefs atomically. + /// + public void SetUseBetaServer(bool value) + { + if (_useBetaServer != value) + { + _useBetaServer = value; + EditorPrefs.SetBool(EditorPrefKeys.UseBetaServer, value); + OnConfigurationChanged?.Invoke(nameof(UseBetaServer)); + } + } + + /// + /// Set DevModeForceServerRefresh and update cache + EditorPrefs atomically. + /// + public void SetDevModeForceServerRefresh(bool value) + { + if (_devModeForceServerRefresh != value) + { + _devModeForceServerRefresh = value; + EditorPrefs.SetBool(EditorPrefKeys.DevModeForceServerRefresh, value); + OnConfigurationChanged?.Invoke(nameof(DevModeForceServerRefresh)); + } + } + + /// + /// Set UvxPathOverride and update cache + EditorPrefs atomically. + /// + public void SetUvxPathOverride(string value) + { + value = value ?? string.Empty; + if (_uvxPathOverride != value) + { + _uvxPathOverride = value; + EditorPrefs.SetString(EditorPrefKeys.UvxPathOverride, value); + OnConfigurationChanged?.Invoke(nameof(UvxPathOverride)); + } + } + + /// + /// Set GitUrlOverride and update cache + EditorPrefs atomically. + /// + public void SetGitUrlOverride(string value) + { + value = value ?? string.Empty; + if (_gitUrlOverride != value) + { + _gitUrlOverride = value; + EditorPrefs.SetString(EditorPrefKeys.GitUrlOverride, value); + OnConfigurationChanged?.Invoke(nameof(GitUrlOverride)); + } + } + + /// + /// Set HttpBaseUrl and update cache + EditorPrefs atomically. + /// + public void SetHttpBaseUrl(string value) + { + value = value ?? string.Empty; + if (_httpBaseUrl != value) + { + _httpBaseUrl = value; + EditorPrefs.SetString(EditorPrefKeys.HttpBaseUrl, value); + OnConfigurationChanged?.Invoke(nameof(HttpBaseUrl)); + } + } + + /// + /// Set HttpRemoteBaseUrl and update cache + EditorPrefs atomically. + /// + public void SetHttpRemoteBaseUrl(string value) + { + value = value ?? string.Empty; + if (_httpRemoteBaseUrl != value) + { + _httpRemoteBaseUrl = value; + EditorPrefs.SetString(EditorPrefKeys.HttpRemoteBaseUrl, value); + OnConfigurationChanged?.Invoke(nameof(HttpRemoteBaseUrl)); + } + } + + /// + /// Set ClaudeCliPathOverride and update cache + EditorPrefs atomically. + /// + public void SetClaudeCliPathOverride(string value) + { + value = value ?? string.Empty; + if (_claudeCliPathOverride != value) + { + _claudeCliPathOverride = value; + EditorPrefs.SetString(EditorPrefKeys.ClaudeCliPathOverride, value); + OnConfigurationChanged?.Invoke(nameof(ClaudeCliPathOverride)); + } + } + + /// + /// Set HttpTransportScope and update cache + EditorPrefs atomically. + /// + public void SetHttpTransportScope(string value) + { + value = value ?? string.Empty; + if (_httpTransportScope != value) + { + _httpTransportScope = value; + EditorPrefs.SetString(EditorPrefKeys.HttpTransportScope, value); + OnConfigurationChanged?.Invoke(nameof(HttpTransportScope)); + } + } + + /// + /// Set UnitySocketPort and update cache + EditorPrefs atomically. + /// + public void SetUnitySocketPort(int value) + { + if (_unitySocketPort != value) + { + _unitySocketPort = value; + EditorPrefs.SetInt(EditorPrefKeys.UnitySocketPort, value); + OnConfigurationChanged?.Invoke(nameof(UnitySocketPort)); + } + } + + /// + /// Force refresh of a single cached value from EditorPrefs. + /// Useful when external code modifies EditorPrefs directly. + /// + public void InvalidateKey(string keyName) + { + switch (keyName) + { + case nameof(UseHttpTransport): + _useHttpTransport = EditorPrefs.GetBool(EditorPrefKeys.UseHttpTransport, true); + break; + case nameof(DebugLogs): + _debugLogs = EditorPrefs.GetBool(EditorPrefKeys.DebugLogs, false); + break; + case nameof(UseBetaServer): + _useBetaServer = EditorPrefs.GetBool(EditorPrefKeys.UseBetaServer, true); + break; + case nameof(DevModeForceServerRefresh): + _devModeForceServerRefresh = EditorPrefs.GetBool(EditorPrefKeys.DevModeForceServerRefresh, false); + break; + case nameof(UvxPathOverride): + _uvxPathOverride = EditorPrefs.GetString(EditorPrefKeys.UvxPathOverride, string.Empty); + break; + case nameof(GitUrlOverride): + _gitUrlOverride = EditorPrefs.GetString(EditorPrefKeys.GitUrlOverride, string.Empty); + break; + case nameof(HttpBaseUrl): + _httpBaseUrl = EditorPrefs.GetString(EditorPrefKeys.HttpBaseUrl, string.Empty); + break; + case nameof(HttpRemoteBaseUrl): + _httpRemoteBaseUrl = EditorPrefs.GetString(EditorPrefKeys.HttpRemoteBaseUrl, string.Empty); + break; + case nameof(ClaudeCliPathOverride): + _claudeCliPathOverride = EditorPrefs.GetString(EditorPrefKeys.ClaudeCliPathOverride, string.Empty); + break; + case nameof(HttpTransportScope): + _httpTransportScope = EditorPrefs.GetString(EditorPrefKeys.HttpTransportScope, string.Empty); + break; + case nameof(UnitySocketPort): + _unitySocketPort = EditorPrefs.GetInt(EditorPrefKeys.UnitySocketPort, 0); + break; + } + OnConfigurationChanged?.Invoke(keyName); + } + } +} diff --git a/Packages/MCPForUnity/Editor/Services/EditorConfigurationCache.cs.meta b/Packages/MCPForUnity/Editor/Services/EditorConfigurationCache.cs.meta new file mode 100644 index 00000000..a6416b44 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/EditorConfigurationCache.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b4a183ac9b63c408886bce40ae58f462 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/EditorPrefsWindowService.cs b/Packages/MCPForUnity/Editor/Services/EditorPrefsWindowService.cs new file mode 100644 index 00000000..2511b03a --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/EditorPrefsWindowService.cs @@ -0,0 +1,54 @@ +using System; +using MCPForUnity.Editor.Windows; +using UnityEditor; + +namespace MCPForUnity.Editor.Services +{ + /// + /// Service for managing the EditorPrefs window + /// Follows the Class-level Singleton pattern + /// + public class EditorPrefsWindowService + { + private static EditorPrefsWindowService _instance; + + /// + /// Get the singleton instance + /// + public static EditorPrefsWindowService Instance + { + get + { + if (_instance == null) + { + throw new Exception("EditorPrefsWindowService not initialized"); + } + return _instance; + } + } + + /// + /// Initialize the service + /// + public static void Initialize() + { + if (_instance == null) + { + _instance = new EditorPrefsWindowService(); + } + } + + private EditorPrefsWindowService() + { + // Private constructor for singleton + } + + /// + /// Show the EditorPrefs window + /// + public void ShowWindow() + { + EditorPrefsWindow.ShowWindow(); + } + } +} diff --git a/Packages/MCPForUnity/Editor/Services/EditorPrefsWindowService.cs.meta b/Packages/MCPForUnity/Editor/Services/EditorPrefsWindowService.cs.meta new file mode 100644 index 00000000..2dc46b1a --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/EditorPrefsWindowService.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2a1c6e4725a484c0abf10f6eaa1d8d5d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/EditorStateCache.cs b/Packages/MCPForUnity/Editor/Services/EditorStateCache.cs new file mode 100644 index 00000000..24fec0f1 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/EditorStateCache.cs @@ -0,0 +1,546 @@ +using System; +using System.Reflection; +using MCPForUnity.Editor.Helpers; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEditorInternal; +using UnityEditor.SceneManagement; +using UnityEngine; + +namespace MCPForUnity.Editor.Services +{ + /// + /// Maintains a cached readiness snapshot (v2) so status reads remain fast even when Unity is busy. + /// Updated on the main thread via Editor callbacks and periodic update ticks. + /// + [InitializeOnLoad] + internal static class EditorStateCache + { + private static readonly object LockObj = new(); + private static long _sequence; + private static long _observedUnixMs; + + private static bool _lastIsCompiling; + private static long? _lastCompileStartedUnixMs; + private static long? _lastCompileFinishedUnixMs; + + private static bool _domainReloadPending; + private static long? _domainReloadBeforeUnixMs; + private static long? _domainReloadAfterUnixMs; + + private static double _lastUpdateTimeSinceStartup; + private const double MinUpdateIntervalSeconds = 1.0; // Reduced frequency: 1s instead of 0.25s + + // State tracking to detect when snapshot actually changes (checked BEFORE building) + private static string _lastTrackedScenePath; + private static string _lastTrackedSceneName; + private static bool _lastTrackedIsFocused; + private static bool _lastTrackedIsPlaying; + private static bool _lastTrackedIsPaused; + private static bool _lastTrackedIsUpdating; + private static bool _lastTrackedTestsRunning; + private static string _lastTrackedActivityPhase; + + private static JObject _cached; + + private sealed class EditorStateSnapshot + { + [JsonProperty("schema_version")] + public string SchemaVersion { get; set; } + + [JsonProperty("observed_at_unix_ms")] + public long ObservedAtUnixMs { get; set; } + + [JsonProperty("sequence")] + public long Sequence { get; set; } + + [JsonProperty("unity")] + public EditorStateUnity Unity { get; set; } + + [JsonProperty("editor")] + public EditorStateEditor Editor { get; set; } + + [JsonProperty("activity")] + public EditorStateActivity Activity { get; set; } + + [JsonProperty("compilation")] + public EditorStateCompilation Compilation { get; set; } + + [JsonProperty("assets")] + public EditorStateAssets Assets { get; set; } + + [JsonProperty("tests")] + public EditorStateTests Tests { get; set; } + + [JsonProperty("transport")] + public EditorStateTransport Transport { get; set; } + } + + private sealed class EditorStateUnity + { + [JsonProperty("instance_id")] + public string InstanceId { get; set; } + + [JsonProperty("unity_version")] + public string UnityVersion { get; set; } + + [JsonProperty("project_id")] + public string ProjectId { get; set; } + + [JsonProperty("platform")] + public string Platform { get; set; } + + [JsonProperty("is_batch_mode")] + public bool? IsBatchMode { get; set; } + } + + private sealed class EditorStateEditor + { + [JsonProperty("is_focused")] + public bool? IsFocused { get; set; } + + [JsonProperty("play_mode")] + public EditorStatePlayMode PlayMode { get; set; } + + [JsonProperty("active_scene")] + public EditorStateActiveScene ActiveScene { get; set; } + } + + private sealed class EditorStatePlayMode + { + [JsonProperty("is_playing")] + public bool? IsPlaying { get; set; } + + [JsonProperty("is_paused")] + public bool? IsPaused { get; set; } + + [JsonProperty("is_changing")] + public bool? IsChanging { get; set; } + } + + private sealed class EditorStateActiveScene + { + [JsonProperty("path")] + public string Path { get; set; } + + [JsonProperty("guid")] + public string Guid { get; set; } + + [JsonProperty("name")] + public string Name { get; set; } + } + + private sealed class EditorStateActivity + { + [JsonProperty("phase")] + public string Phase { get; set; } + + [JsonProperty("since_unix_ms")] + public long SinceUnixMs { get; set; } + + [JsonProperty("reasons")] + public string[] Reasons { get; set; } + } + + private sealed class EditorStateCompilation + { + [JsonProperty("is_compiling")] + public bool? IsCompiling { get; set; } + + [JsonProperty("is_domain_reload_pending")] + public bool? IsDomainReloadPending { get; set; } + + [JsonProperty("last_compile_started_unix_ms")] + public long? LastCompileStartedUnixMs { get; set; } + + [JsonProperty("last_compile_finished_unix_ms")] + public long? LastCompileFinishedUnixMs { get; set; } + + [JsonProperty("last_domain_reload_before_unix_ms")] + public long? LastDomainReloadBeforeUnixMs { get; set; } + + [JsonProperty("last_domain_reload_after_unix_ms")] + public long? LastDomainReloadAfterUnixMs { get; set; } + } + + private sealed class EditorStateAssets + { + [JsonProperty("is_updating")] + public bool? IsUpdating { get; set; } + + [JsonProperty("external_changes_dirty")] + public bool? ExternalChangesDirty { get; set; } + + [JsonProperty("external_changes_last_seen_unix_ms")] + public long? ExternalChangesLastSeenUnixMs { get; set; } + + [JsonProperty("external_changes_dirty_since_unix_ms")] + public long? ExternalChangesDirtySinceUnixMs { get; set; } + + [JsonProperty("external_changes_last_cleared_unix_ms")] + public long? ExternalChangesLastClearedUnixMs { get; set; } + + [JsonProperty("refresh")] + public EditorStateRefresh Refresh { get; set; } + } + + private sealed class EditorStateRefresh + { + [JsonProperty("is_refresh_in_progress")] + public bool? IsRefreshInProgress { get; set; } + + [JsonProperty("last_refresh_requested_unix_ms")] + public long? LastRefreshRequestedUnixMs { get; set; } + + [JsonProperty("last_refresh_finished_unix_ms")] + public long? LastRefreshFinishedUnixMs { get; set; } + } + + private sealed class EditorStateTests + { + [JsonProperty("is_running")] + public bool? IsRunning { get; set; } + + [JsonProperty("mode")] + public string Mode { get; set; } + + [JsonProperty("current_job_id")] + public string CurrentJobId { get; set; } + + [JsonProperty("started_unix_ms")] + public long? StartedUnixMs { get; set; } + + [JsonProperty("started_by")] + public string StartedBy { get; set; } + + [JsonProperty("last_run")] + public EditorStateLastRun LastRun { get; set; } + } + + private sealed class EditorStateLastRun + { + [JsonProperty("finished_unix_ms")] + public long? FinishedUnixMs { get; set; } + + [JsonProperty("result")] + public string Result { get; set; } + + [JsonProperty("counts")] + public object Counts { get; set; } + } + + private sealed class EditorStateTransport + { + [JsonProperty("unity_bridge_connected")] + public bool? UnityBridgeConnected { get; set; } + + [JsonProperty("last_message_unix_ms")] + public long? LastMessageUnixMs { get; set; } + } + + static EditorStateCache() + { + try + { + _sequence = 0; + _observedUnixMs = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(); + _cached = BuildSnapshot("init"); + + EditorApplication.update += OnUpdate; + EditorApplication.playModeStateChanged += _ => ForceUpdate("playmode"); + + AssemblyReloadEvents.beforeAssemblyReload += () => + { + _domainReloadPending = true; + _domainReloadBeforeUnixMs = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(); + ForceUpdate("before_domain_reload"); + }; + AssemblyReloadEvents.afterAssemblyReload += () => + { + _domainReloadPending = false; + _domainReloadAfterUnixMs = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(); + ForceUpdate("after_domain_reload"); + }; + } + catch (Exception ex) + { + McpLog.Error($"[EditorStateCache] Failed to initialise: {ex.Message}\n{ex.StackTrace}"); + } + } + + private static void OnUpdate() + { + // Throttle to reduce overhead while keeping the snapshot fresh enough for polling clients. + double now = EditorApplication.timeSinceStartup; + // Use GetActualIsCompiling() to avoid Play mode false positives (issue #582) + bool isCompiling = GetActualIsCompiling(); + + // Check for compilation edge transitions (always update on these) + bool compilationEdge = isCompiling != _lastIsCompiling; + + if (!compilationEdge && now - _lastUpdateTimeSinceStartup < MinUpdateIntervalSeconds) + { + return; + } + + // Fast state-change detection BEFORE building snapshot. + // This avoids the expensive BuildSnapshot() call entirely when nothing changed. + // These checks are much cheaper than building a full JSON snapshot. + var scene = EditorSceneManager.GetActiveScene(); + string scenePath = string.IsNullOrEmpty(scene.path) ? null : scene.path; + string sceneName = scene.name ?? string.Empty; + bool isFocused = InternalEditorUtility.isApplicationActive; + bool isPlaying = EditorApplication.isPlaying; + bool isPaused = EditorApplication.isPaused; + bool isUpdating = EditorApplication.isUpdating; + bool testsRunning = TestRunStatus.IsRunning; + + var activityPhase = "idle"; + if (testsRunning) + { + activityPhase = "running_tests"; + } + else if (isCompiling) + { + activityPhase = "compiling"; + } + else if (_domainReloadPending) + { + activityPhase = "domain_reload"; + } + else if (isUpdating) + { + activityPhase = "asset_import"; + } + else if (EditorApplication.isPlayingOrWillChangePlaymode) + { + activityPhase = "playmode_transition"; + } + + bool hasChanges = compilationEdge + || _lastTrackedScenePath != scenePath + || _lastTrackedSceneName != sceneName + || _lastTrackedIsFocused != isFocused + || _lastTrackedIsPlaying != isPlaying + || _lastTrackedIsPaused != isPaused + || _lastTrackedIsUpdating != isUpdating + || _lastTrackedTestsRunning != testsRunning + || _lastTrackedActivityPhase != activityPhase; + + if (!hasChanges) + { + // No state change - skip the expensive BuildSnapshot entirely. + // This is the key optimization that prevents the 28ms GC spikes. + return; + } + + // Update tracked state + _lastTrackedScenePath = scenePath; + _lastTrackedSceneName = sceneName; + _lastTrackedIsFocused = isFocused; + _lastTrackedIsPlaying = isPlaying; + _lastTrackedIsPaused = isPaused; + _lastTrackedIsUpdating = isUpdating; + _lastTrackedTestsRunning = testsRunning; + _lastTrackedActivityPhase = activityPhase; + + _lastUpdateTimeSinceStartup = now; + ForceUpdate("tick"); + } + + private static void ForceUpdate(string reason) + { + lock (LockObj) + { + _cached = BuildSnapshot(reason); + } + } + + private static JObject BuildSnapshot(string reason) + { + _sequence++; + _observedUnixMs = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(); + + bool isCompiling = GetActualIsCompiling(); + if (isCompiling && !_lastIsCompiling) + { + _lastCompileStartedUnixMs = _observedUnixMs; + } + else if (!isCompiling && _lastIsCompiling) + { + _lastCompileFinishedUnixMs = _observedUnixMs; + } + _lastIsCompiling = isCompiling; + + var scene = EditorSceneManager.GetActiveScene(); + string scenePath = string.IsNullOrEmpty(scene.path) ? null : scene.path; + string sceneGuid = !string.IsNullOrEmpty(scenePath) ? AssetDatabase.AssetPathToGUID(scenePath) : null; + + bool testsRunning = TestRunStatus.IsRunning; + var testsMode = TestRunStatus.Mode?.ToString(); + string currentJobId = TestJobManager.CurrentJobId; + bool isFocused = InternalEditorUtility.isApplicationActive; + + var activityPhase = "idle"; + if (testsRunning) + { + activityPhase = "running_tests"; + } + else if (isCompiling) + { + activityPhase = "compiling"; + } + else if (_domainReloadPending) + { + activityPhase = "domain_reload"; + } + else if (EditorApplication.isUpdating) + { + activityPhase = "asset_import"; + } + else if (EditorApplication.isPlayingOrWillChangePlaymode) + { + activityPhase = "playmode_transition"; + } + + var snapshot = new EditorStateSnapshot + { + SchemaVersion = "unity-mcp/editor_state@2", + ObservedAtUnixMs = _observedUnixMs, + Sequence = _sequence, + Unity = new EditorStateUnity + { + InstanceId = null, + UnityVersion = Application.unityVersion, + ProjectId = null, + Platform = Application.platform.ToString(), + IsBatchMode = Application.isBatchMode + }, + Editor = new EditorStateEditor + { + IsFocused = isFocused, + PlayMode = new EditorStatePlayMode + { + IsPlaying = EditorApplication.isPlaying, + IsPaused = EditorApplication.isPaused, + IsChanging = EditorApplication.isPlayingOrWillChangePlaymode + }, + ActiveScene = new EditorStateActiveScene + { + Path = scenePath, + Guid = sceneGuid, + Name = scene.name ?? string.Empty + } + }, + Activity = new EditorStateActivity + { + Phase = activityPhase, + SinceUnixMs = _observedUnixMs, + Reasons = new[] { reason } + }, + Compilation = new EditorStateCompilation + { + IsCompiling = isCompiling, + IsDomainReloadPending = _domainReloadPending, + LastCompileStartedUnixMs = _lastCompileStartedUnixMs, + LastCompileFinishedUnixMs = _lastCompileFinishedUnixMs, + LastDomainReloadBeforeUnixMs = _domainReloadBeforeUnixMs, + LastDomainReloadAfterUnixMs = _domainReloadAfterUnixMs + }, + Assets = new EditorStateAssets + { + IsUpdating = EditorApplication.isUpdating, + ExternalChangesDirty = false, + ExternalChangesLastSeenUnixMs = null, + ExternalChangesDirtySinceUnixMs = null, + ExternalChangesLastClearedUnixMs = null, + Refresh = new EditorStateRefresh + { + IsRefreshInProgress = false, + LastRefreshRequestedUnixMs = null, + LastRefreshFinishedUnixMs = null + } + }, + Tests = new EditorStateTests + { + IsRunning = testsRunning, + Mode = testsMode, + CurrentJobId = string.IsNullOrEmpty(currentJobId) ? null : currentJobId, + StartedUnixMs = TestRunStatus.StartedUnixMs, + StartedBy = "unknown", + LastRun = TestRunStatus.FinishedUnixMs.HasValue + ? new EditorStateLastRun + { + FinishedUnixMs = TestRunStatus.FinishedUnixMs, + Result = "unknown", + Counts = null + } + : null + }, + Transport = new EditorStateTransport + { + UnityBridgeConnected = null, + LastMessageUnixMs = null + } + }; + + return JObject.FromObject(snapshot); + } + + public static JObject GetSnapshot() + { + lock (LockObj) + { + // Defensive: if something went wrong early, rebuild once. + if (_cached == null) + { + _cached = BuildSnapshot("rebuild"); + } + + // Always return a fresh clone to prevent mutation bugs. + // The main GC optimization comes from state-change detection (OnUpdate) + // which prevents unnecessary _cached rebuilds, not from caching the clone. + return (JObject)_cached.DeepClone(); + } + } + + /// + /// Returns the actual compilation state, working around a known Unity quirk where + /// EditorApplication.isCompiling can return false positives in Play mode. + /// See: https://github.com/CoplayDev/unity-mcp/issues/549 + /// + private static bool GetActualIsCompiling() + { + // If EditorApplication.isCompiling is false, Unity is definitely not compiling + if (!EditorApplication.isCompiling) + { + return false; + } + + // In Play mode, EditorApplication.isCompiling can have false positives. + // Double-check with CompilationPipeline.isCompiling via reflection. + if (EditorApplication.isPlaying) + { + try + { + Type pipeline = Type.GetType("UnityEditor.Compilation.CompilationPipeline, UnityEditor"); + var prop = pipeline?.GetProperty("isCompiling", BindingFlags.Public | BindingFlags.Static); + if (prop != null) + { + return (bool)prop.GetValue(null); + } + } + catch + { + // If reflection fails, fall back to EditorApplication.isCompiling + } + } + + // Outside Play mode or if reflection failed, trust EditorApplication.isCompiling + return true; + } + } +} + + diff --git a/Packages/MCPForUnity/Editor/Services/EditorStateCache.cs.meta b/Packages/MCPForUnity/Editor/Services/EditorStateCache.cs.meta new file mode 100644 index 00000000..21c5d014 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/EditorStateCache.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: aa7909967ce3c48c493181c978782a54 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/HttpBridgeReloadHandler.cs b/Packages/MCPForUnity/Editor/Services/HttpBridgeReloadHandler.cs new file mode 100644 index 00000000..b0ffd3ec --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/HttpBridgeReloadHandler.cs @@ -0,0 +1,145 @@ +using System; +using System.Threading.Tasks; +using MCPForUnity.Editor.Constants; +using MCPForUnity.Editor.Helpers; +using MCPForUnity.Editor.Services.Transport; +using MCPForUnity.Editor.Windows; +using UnityEditor; + +namespace MCPForUnity.Editor.Services +{ + /// + /// Ensures HTTP transports resume after domain reloads similar to the legacy stdio bridge. + /// + [InitializeOnLoad] + internal static class HttpBridgeReloadHandler + { + static HttpBridgeReloadHandler() + { + AssemblyReloadEvents.beforeAssemblyReload += OnBeforeAssemblyReload; + AssemblyReloadEvents.afterAssemblyReload += OnAfterAssemblyReload; + } + + private static void OnBeforeAssemblyReload() + { + try + { + var transport = MCPServiceLocator.TransportManager; + bool shouldResume = transport.IsRunning(TransportMode.Http); + + if (shouldResume) + { + EditorPrefs.SetBool(EditorPrefKeys.ResumeHttpAfterReload, true); + } + else + { + EditorPrefs.DeleteKey(EditorPrefKeys.ResumeHttpAfterReload); + } + + if (shouldResume) + { + var stopTask = transport.StopAsync(TransportMode.Http); + stopTask.ContinueWith(t => + { + if (t.IsFaulted && t.Exception != null) + { + McpLog.Warn($"Error stopping MCP bridge before reload: {t.Exception.GetBaseException().Message}"); + } + }, TaskScheduler.Default); + } + } + catch (Exception ex) + { + McpLog.Warn($"Failed to evaluate HTTP bridge reload state: {ex.Message}"); + } + } + + private static void OnAfterAssemblyReload() + { + bool resume = false; + try + { + // Only resume HTTP if it is still the selected transport. + bool useHttp = EditorConfigurationCache.Instance.UseHttpTransport; + resume = useHttp && EditorPrefs.GetBool(EditorPrefKeys.ResumeHttpAfterReload, false); + if (resume) + { + EditorPrefs.DeleteKey(EditorPrefKeys.ResumeHttpAfterReload); + } + } + catch (Exception ex) + { + McpLog.Warn($"Failed to read HTTP bridge reload flag: {ex.Message}"); + resume = false; + } + + if (!resume) + { + return; + } + + // If the editor is not compiling, attempt an immediate restart without relying on editor focus. + bool isCompiling = EditorApplication.isCompiling; + try + { + var pipeline = Type.GetType("UnityEditor.Compilation.CompilationPipeline, UnityEditor"); + var prop = pipeline?.GetProperty("isCompiling", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static); + if (prop != null) isCompiling |= (bool)prop.GetValue(null); + } + catch { } + + if (!isCompiling) + { + try + { + var startTask = MCPServiceLocator.TransportManager.StartAsync(TransportMode.Http); + startTask.ContinueWith(t => + { + if (t.IsFaulted) + { + var baseEx = t.Exception?.GetBaseException(); + McpLog.Warn($"Failed to resume HTTP MCP bridge after domain reload: {baseEx?.Message}"); + return; + } + bool started = t.Result; + if (!started) + { + McpLog.Warn("Failed to resume HTTP MCP bridge after domain reload"); + } + else + { + MCPForUnityEditorWindow.RequestHealthVerification(); + } + }, TaskScheduler.Default); + return; + } + catch (Exception ex) + { + McpLog.Error($"Error resuming HTTP MCP bridge: {ex.Message}"); + return; + } + } + + // Fallback when compiling: schedule on the editor loop + EditorApplication.delayCall += async () => + { + try + { + bool started = await MCPServiceLocator.TransportManager.StartAsync(TransportMode.Http); + if (!started) + { + McpLog.Warn("Failed to resume HTTP MCP bridge after domain reload"); + } + else + { + MCPForUnityEditorWindow.RequestHealthVerification(); + } + } + catch (Exception ex) + { + McpLog.Error($"Error resuming HTTP MCP bridge: {ex.Message}"); + } + }; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Services/HttpBridgeReloadHandler.cs.meta b/Packages/MCPForUnity/Editor/Services/HttpBridgeReloadHandler.cs.meta new file mode 100644 index 00000000..ae5e9edd --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/HttpBridgeReloadHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4c0cf970a7b494a659be151dc0124296 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/IBridgeControlService.cs b/Packages/MCPForUnity/Editor/Services/IBridgeControlService.cs new file mode 100644 index 00000000..7cc593e0 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/IBridgeControlService.cs @@ -0,0 +1,82 @@ +using System.Threading.Tasks; +using MCPForUnity.Editor.Services.Transport; + +namespace MCPForUnity.Editor.Services +{ + /// + /// Service for controlling the MCP for Unity Bridge connection + /// + public interface IBridgeControlService + { + /// + /// Gets whether the bridge is currently running + /// + bool IsRunning { get; } + + /// + /// Gets the current port the bridge is listening on + /// + int CurrentPort { get; } + + /// + /// Gets whether the bridge is in auto-connect mode + /// + bool IsAutoConnectMode { get; } + + /// + /// Gets the currently active transport mode, if any + /// + TransportMode? ActiveMode { get; } + + /// + /// Starts the MCP for Unity Bridge asynchronously + /// + /// True if the bridge started successfully + Task StartAsync(); + + /// + /// Stops the MCP for Unity Bridge asynchronously + /// + Task StopAsync(); + + /// + /// Verifies the bridge connection by sending a ping and waiting for a pong response + /// + /// The port to verify + /// Verification result with detailed status + BridgeVerificationResult Verify(int port); + + /// + /// Verifies the connection asynchronously (works for both HTTP and stdio transports) + /// + /// Verification result with detailed status + Task VerifyAsync(); + + } + + /// + /// Result of a bridge verification attempt + /// + public class BridgeVerificationResult + { + /// + /// Whether the verification was successful + /// + public bool Success { get; set; } + + /// + /// Human-readable message about the verification result + /// + public string Message { get; set; } + + /// + /// Whether the handshake was valid (FRAMING=1 protocol) + /// + public bool HandshakeValid { get; set; } + + /// + /// Whether the ping/pong exchange succeeded + /// + public bool PingSucceeded { get; set; } + } +} diff --git a/Packages/MCPForUnity/Editor/Services/IBridgeControlService.cs.meta b/Packages/MCPForUnity/Editor/Services/IBridgeControlService.cs.meta new file mode 100644 index 00000000..ec50da3d --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/IBridgeControlService.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6b5d9f677f6f54fc59e6fe921b260c61 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/IClientConfigurationService.cs b/Packages/MCPForUnity/Editor/Services/IClientConfigurationService.cs new file mode 100644 index 00000000..6172e8fb --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/IClientConfigurationService.cs @@ -0,0 +1,69 @@ +using System.Collections.Generic; +using MCPForUnity.Editor.Clients; +using MCPForUnity.Editor.Models; + +namespace MCPForUnity.Editor.Services +{ + /// + /// Service for configuring MCP clients + /// + public interface IClientConfigurationService + { + /// + /// Configures a specific MCP client + /// + /// The client to configure + void ConfigureClient(IMcpClientConfigurator configurator); + + /// + /// Configures all detected/installed MCP clients (skips clients where CLI/tools not found) + /// + /// Summary of configuration results + ClientConfigurationSummary ConfigureAllDetectedClients(); + + /// + /// Checks the configuration status of a client + /// + /// The client to check + /// If true, attempts to auto-fix mismatched paths + /// True if status changed, false otherwise + bool CheckClientStatus(IMcpClientConfigurator configurator, bool attemptAutoRewrite = true); + + /// Gets the registry of discovered configurators. + IReadOnlyList GetAllClients(); + } + + /// + /// Summary of configuration results for multiple clients + /// + public class ClientConfigurationSummary + { + /// + /// Number of clients successfully configured + /// + public int SuccessCount { get; set; } + + /// + /// Number of clients that failed to configure + /// + public int FailureCount { get; set; } + + /// + /// Number of clients skipped (already configured or tool not found) + /// + public int SkippedCount { get; set; } + + /// + /// Detailed messages for each client + /// + public System.Collections.Generic.List Messages { get; set; } = new(); + + /// + /// Gets a human-readable summary message + /// + public string GetSummaryMessage() + { + return $"✓ {SuccessCount} configured, ⚠ {FailureCount} failed, ➜ {SkippedCount} skipped"; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Services/IClientConfigurationService.cs.meta b/Packages/MCPForUnity/Editor/Services/IClientConfigurationService.cs.meta new file mode 100644 index 00000000..5110b69f --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/IClientConfigurationService.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: aae139cfae7ac4044ac52e2658005ea1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/IPackageDeploymentService.cs b/Packages/MCPForUnity/Editor/Services/IPackageDeploymentService.cs new file mode 100644 index 00000000..743834c0 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/IPackageDeploymentService.cs @@ -0,0 +1,29 @@ +using System; + +namespace MCPForUnity.Editor.Services +{ + public interface IPackageDeploymentService + { + string GetStoredSourcePath(); + void SetStoredSourcePath(string path); + void ClearStoredSourcePath(); + + string GetTargetPath(); + string GetTargetDisplayPath(); + + string GetLastBackupPath(); + bool HasBackup(); + + PackageDeploymentResult DeployFromStoredSource(); + PackageDeploymentResult RestoreLastBackup(); + } + + public class PackageDeploymentResult + { + public bool Success { get; set; } + public string Message { get; set; } + public string SourcePath { get; set; } + public string TargetPath { get; set; } + public string BackupPath { get; set; } + } +} diff --git a/Packages/MCPForUnity/Editor/Services/IPackageDeploymentService.cs.meta b/Packages/MCPForUnity/Editor/Services/IPackageDeploymentService.cs.meta new file mode 100644 index 00000000..d1bf12d2 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/IPackageDeploymentService.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9c7a6f1ce6cd4a8c8a3b5d58d4b760a2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/IPackageUpdateService.cs b/Packages/MCPForUnity/Editor/Services/IPackageUpdateService.cs new file mode 100644 index 00000000..9d4d2e48 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/IPackageUpdateService.cs @@ -0,0 +1,60 @@ +namespace MCPForUnity.Editor.Services +{ + /// + /// Service for checking package updates and version information + /// + public interface IPackageUpdateService + { + /// + /// Checks if a newer version of the package is available + /// + /// The current package version + /// Update check result containing availability and latest version info + UpdateCheckResult CheckForUpdate(string currentVersion); + + /// + /// Compares two version strings to determine if the first is newer than the second + /// + /// First version string + /// Second version string + /// True if version1 is newer than version2 + bool IsNewerVersion(string version1, string version2); + + /// + /// Determines if the package was installed via Git or Asset Store + /// + /// True if installed via Git, false if Asset Store or unknown + bool IsGitInstallation(); + + /// + /// Clears the cached update check data, forcing a fresh check on next request + /// + void ClearCache(); + } + + /// + /// Result of an update check operation + /// + public class UpdateCheckResult + { + /// + /// Whether an update is available + /// + public bool UpdateAvailable { get; set; } + + /// + /// The latest version available (null if check failed or no update) + /// + public string LatestVersion { get; set; } + + /// + /// Whether the check was successful (false if network error, etc.) + /// + public bool CheckSucceeded { get; set; } + + /// + /// Optional message about the check result + /// + public string Message { get; set; } + } +} diff --git a/Packages/MCPForUnity/Editor/Services/IPackageUpdateService.cs.meta b/Packages/MCPForUnity/Editor/Services/IPackageUpdateService.cs.meta new file mode 100644 index 00000000..d9e68455 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/IPackageUpdateService.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e94ae28f193184e4fb5068f62f4f00c6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/IPathResolverService.cs b/Packages/MCPForUnity/Editor/Services/IPathResolverService.cs new file mode 100644 index 00000000..d57581d8 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/IPathResolverService.cs @@ -0,0 +1,77 @@ +namespace MCPForUnity.Editor.Services +{ + /// + /// Service for resolving paths to required tools and supporting user overrides + /// + public interface IPathResolverService + { + /// + /// Gets the uvx package manager path (respects override if set) + /// + /// Path to the uvx executable, or null if not found + string GetUvxPath(); + + /// + /// Gets the Claude CLI path (respects override if set) + /// + /// Path to the claude executable, or null if not found + string GetClaudeCliPath(); + + /// + /// Checks if Python is detected on the system + /// + /// True if Python is found + bool IsPythonDetected(); + + /// + /// Checks if Claude CLI is detected on the system + /// + /// True if Claude CLI is found + bool IsClaudeCliDetected(); + + /// + /// Sets an override for the uvx path + /// + /// Path to override with + void SetUvxPathOverride(string path); + + /// + /// Sets an override for the Claude CLI path + /// + /// Path to override with + void SetClaudeCliPathOverride(string path); + + /// + /// Clears the uvx path override + /// + void ClearUvxPathOverride(); + + /// + /// Clears the Claude CLI path override + /// + void ClearClaudeCliPathOverride(); + + /// + /// Gets whether a uvx path override is active + /// + bool HasUvxPathOverride { get; } + + /// + /// Gets whether a Claude CLI path override is active + /// + bool HasClaudeCliPathOverride { get; } + + /// + /// Gets whether the uvx path used a fallback from override to system path + /// + bool HasUvxPathFallback { get; } + + /// + /// Validates the provided uv executable by running "--version" and parsing the output. + /// + /// Absolute or relative path to the uv/uvx executable. + /// Parsed version string if successful. + /// True when the executable runs and returns a uv version string. + bool TryValidateUvxExecutable(string uvPath, out string version); + } +} diff --git a/Packages/MCPForUnity/Editor/Services/IPathResolverService.cs.meta b/Packages/MCPForUnity/Editor/Services/IPathResolverService.cs.meta new file mode 100644 index 00000000..75634531 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/IPathResolverService.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1e8d388be507345aeb0eaf27fbd3c022 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/IPlatformService.cs b/Packages/MCPForUnity/Editor/Services/IPlatformService.cs new file mode 100644 index 00000000..ec686b24 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/IPlatformService.cs @@ -0,0 +1,20 @@ +namespace MCPForUnity.Editor.Services +{ + /// + /// Service for platform detection and platform-specific environment access + /// + public interface IPlatformService + { + /// + /// Checks if the current platform is Windows + /// + /// True if running on Windows + bool IsWindows(); + + /// + /// Gets the SystemRoot environment variable (Windows-specific) + /// + /// SystemRoot path, or null if not available + string GetSystemRoot(); + } +} diff --git a/Packages/MCPForUnity/Editor/Services/IPlatformService.cs.meta b/Packages/MCPForUnity/Editor/Services/IPlatformService.cs.meta new file mode 100644 index 00000000..e501f58a --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/IPlatformService.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1d90ff7f9a1e84c9bbbbedee2f7eda2a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/IResourceDiscoveryService.cs b/Packages/MCPForUnity/Editor/Services/IResourceDiscoveryService.cs new file mode 100644 index 00000000..6595fc8a --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/IResourceDiscoveryService.cs @@ -0,0 +1,53 @@ +using System.Collections.Generic; + +namespace MCPForUnity.Editor.Services +{ + /// + /// Metadata for a discovered resource + /// + public class ResourceMetadata + { + public string Name { get; set; } + public string Description { get; set; } + public string ClassName { get; set; } + public string Namespace { get; set; } + public string AssemblyName { get; set; } + public bool IsBuiltIn { get; set; } + } + + /// + /// Service for discovering MCP resources via reflection + /// + public interface IResourceDiscoveryService + { + /// + /// Discovers all resources marked with [McpForUnityResource] + /// + List DiscoverAllResources(); + + /// + /// Gets metadata for a specific resource + /// + ResourceMetadata GetResourceMetadata(string resourceName); + + /// + /// Returns only the resources currently enabled + /// + List GetEnabledResources(); + + /// + /// Checks whether a resource is currently enabled + /// + bool IsResourceEnabled(string resourceName); + + /// + /// Updates the enabled state for a resource + /// + void SetResourceEnabled(string resourceName, bool enabled); + + /// + /// Invalidates the resource discovery cache + /// + void InvalidateCache(); + } +} diff --git a/Packages/MCPForUnity/Editor/Services/IResourceDiscoveryService.cs.meta b/Packages/MCPForUnity/Editor/Services/IResourceDiscoveryService.cs.meta new file mode 100644 index 00000000..171d2b27 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/IResourceDiscoveryService.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7afb4739669224c74b4b4d706e6bbb49 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/IServerManagementService.cs b/Packages/MCPForUnity/Editor/Services/IServerManagementService.cs new file mode 100644 index 00000000..299fad51 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/IServerManagementService.cs @@ -0,0 +1,64 @@ +namespace MCPForUnity.Editor.Services +{ + /// + /// Interface for server management operations + /// + public interface IServerManagementService + { + /// + /// Clear the local uvx cache for the MCP server package + /// + /// True if successful, false otherwise + bool ClearUvxCache(); + + /// + /// Start the local HTTP server in a new terminal window. + /// Stops any existing server on the port and clears the uvx cache first. + /// + /// True if server was started successfully, false otherwise + bool StartLocalHttpServer(); + + /// + /// Stop the local HTTP server by finding the process listening on the configured port + /// + bool StopLocalHttpServer(); + + /// + /// Stop the Unity-managed local HTTP server if a handshake/pidfile exists, + /// even if the current transport selection has changed. + /// + bool StopManagedLocalHttpServer(); + + /// + /// Best-effort detection: returns true if a local MCP HTTP server appears to be running + /// on the configured local URL/port (used to drive UI state even if the session is not active). + /// + bool IsLocalHttpServerRunning(); + + /// + /// Fast reachability check: returns true if a local TCP listener is accepting connections + /// for the configured local URL/port (used for UI state without process inspection). + /// + bool IsLocalHttpServerReachable(); + + /// + /// Attempts to get the command that will be executed when starting the local HTTP server + /// + /// The command that will be executed when available + /// Reason why a command could not be produced + /// True if a command is available, false otherwise + bool TryGetLocalHttpServerCommand(out string command, out string error); + + /// + /// Check if the configured HTTP URL is a local address + /// + /// True if URL is local (localhost, 127.0.0.1, etc.) + bool IsLocalUrl(); + + /// + /// Check if the local HTTP server can be started + /// + /// True if HTTP transport is enabled and URL is local + bool CanStartLocalServer(); + } +} diff --git a/Packages/MCPForUnity/Editor/Services/IServerManagementService.cs.meta b/Packages/MCPForUnity/Editor/Services/IServerManagementService.cs.meta new file mode 100644 index 00000000..9f12dc3c --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/IServerManagementService.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d41bfc9780b774affa6afbffd081eb79 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/ITestRunnerService.cs b/Packages/MCPForUnity/Editor/Services/ITestRunnerService.cs new file mode 100644 index 00000000..c24d9e41 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/ITestRunnerService.cs @@ -0,0 +1,52 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using UnityEditor.TestTools.TestRunner.Api; + +namespace MCPForUnity.Editor.Services +{ + /// + /// Options for filtering which tests to run. + /// All properties are optional - null or empty arrays are ignored. + /// + public class TestFilterOptions + { + /// + /// Full names of specific tests to run (e.g., "MyNamespace.MyTests.TestMethod"). + /// + public string[] TestNames { get; set; } + + /// + /// Same as TestNames, except it allows for Regex. + /// + public string[] GroupNames { get; set; } + + /// + /// NUnit category names to filter by (tests marked with [Category] attribute). + /// + public string[] CategoryNames { get; set; } + + /// + /// Assembly names to filter tests by. + /// + public string[] AssemblyNames { get; set; } + } + + /// + /// Provides access to Unity Test Runner data and execution. + /// + public interface ITestRunnerService + { + /// + /// Retrieve the list of tests for the requested mode(s). + /// When is null, tests for both EditMode and PlayMode are returned. + /// + Task>> GetTestsAsync(TestMode? mode); + + /// + /// Execute tests for the supplied mode with optional filtering. + /// + /// The test mode (EditMode or PlayMode). + /// Optional filter options to run specific tests. Pass null to run all tests. + Task RunTestsAsync(TestMode mode, TestFilterOptions filterOptions = null); + } +} diff --git a/Packages/MCPForUnity/Editor/Services/ITestRunnerService.cs.meta b/Packages/MCPForUnity/Editor/Services/ITestRunnerService.cs.meta new file mode 100644 index 00000000..ea325e73 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/ITestRunnerService.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d23bf32361ff444beaf3510818c94bae +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/IToolDiscoveryService.cs b/Packages/MCPForUnity/Editor/Services/IToolDiscoveryService.cs new file mode 100644 index 00000000..ee2c616b --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/IToolDiscoveryService.cs @@ -0,0 +1,70 @@ +using System.Collections.Generic; + +namespace MCPForUnity.Editor.Services +{ + /// + /// Metadata for a discovered tool + /// + public class ToolMetadata + { + public string Name { get; set; } + public string Description { get; set; } + public bool StructuredOutput { get; set; } + public List Parameters { get; set; } + public string ClassName { get; set; } + public string Namespace { get; set; } + public string AssemblyName { get; set; } + public bool AutoRegister { get; set; } = true; + public bool RequiresPolling { get; set; } = false; + public string PollAction { get; set; } = "status"; + public bool IsBuiltIn { get; set; } + } + + /// + /// Metadata for a tool parameter + /// + public class ParameterMetadata + { + public string Name { get; set; } + public string Description { get; set; } + public string Type { get; set; } // "string", "int", "bool", "float", etc. + public bool Required { get; set; } + public string DefaultValue { get; set; } + } + + /// + /// Service for discovering MCP tools via reflection + /// + public interface IToolDiscoveryService + { + /// + /// Discovers all tools marked with [McpForUnityTool] + /// + List DiscoverAllTools(); + + /// + /// Gets metadata for a specific tool + /// + ToolMetadata GetToolMetadata(string toolName); + + /// + /// Returns only the tools currently enabled for registration + /// + List GetEnabledTools(); + + /// + /// Checks whether a tool is currently enabled for registration + /// + bool IsToolEnabled(string toolName); + + /// + /// Updates the enabled state for a tool + /// + void SetToolEnabled(string toolName, bool enabled); + + /// + /// Invalidates the tool discovery cache + /// + void InvalidateCache(); + } +} diff --git a/Packages/MCPForUnity/Editor/Services/IToolDiscoveryService.cs.meta b/Packages/MCPForUnity/Editor/Services/IToolDiscoveryService.cs.meta new file mode 100644 index 00000000..a25b7492 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/IToolDiscoveryService.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 497592a93fd994b2cb9803e7c8636ff7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/MCPServiceLocator.cs b/Packages/MCPForUnity/Editor/Services/MCPServiceLocator.cs new file mode 100644 index 00000000..c8ceb4d5 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/MCPServiceLocator.cs @@ -0,0 +1,98 @@ +using System; +using MCPForUnity.Editor.Helpers; +using MCPForUnity.Editor.Services.Transport; +using MCPForUnity.Editor.Services.Transport.Transports; + +namespace MCPForUnity.Editor.Services +{ + /// + /// Service locator for accessing MCP services without dependency injection + /// + public static class MCPServiceLocator + { + private static IBridgeControlService _bridgeService; + private static IClientConfigurationService _clientService; + private static IPathResolverService _pathService; + private static ITestRunnerService _testRunnerService; + private static IPackageUpdateService _packageUpdateService; + private static IPlatformService _platformService; + private static IToolDiscoveryService _toolDiscoveryService; + private static IResourceDiscoveryService _resourceDiscoveryService; + private static IServerManagementService _serverManagementService; + private static TransportManager _transportManager; + private static IPackageDeploymentService _packageDeploymentService; + + public static IBridgeControlService Bridge => _bridgeService ??= new BridgeControlService(); + public static IClientConfigurationService Client => _clientService ??= new ClientConfigurationService(); + public static IPathResolverService Paths => _pathService ??= new PathResolverService(); + public static ITestRunnerService Tests => _testRunnerService ??= new TestRunnerService(); + public static IPackageUpdateService Updates => _packageUpdateService ??= new PackageUpdateService(); + public static IPlatformService Platform => _platformService ??= new PlatformService(); + public static IToolDiscoveryService ToolDiscovery => _toolDiscoveryService ??= new ToolDiscoveryService(); + public static IResourceDiscoveryService ResourceDiscovery => _resourceDiscoveryService ??= new ResourceDiscoveryService(); + public static IServerManagementService Server => _serverManagementService ??= new ServerManagementService(); + public static TransportManager TransportManager => _transportManager ??= new TransportManager(); + public static IPackageDeploymentService Deployment => _packageDeploymentService ??= new PackageDeploymentService(); + + /// + /// Registers a custom implementation for a service (useful for testing) + /// + /// The service interface type + /// The implementation to register + public static void Register(T implementation) where T : class + { + if (implementation is IBridgeControlService b) + _bridgeService = b; + else if (implementation is IClientConfigurationService c) + _clientService = c; + else if (implementation is IPathResolverService p) + _pathService = p; + else if (implementation is ITestRunnerService t) + _testRunnerService = t; + else if (implementation is IPackageUpdateService pu) + _packageUpdateService = pu; + else if (implementation is IPlatformService ps) + _platformService = ps; + else if (implementation is IToolDiscoveryService td) + _toolDiscoveryService = td; + else if (implementation is IResourceDiscoveryService rd) + _resourceDiscoveryService = rd; + else if (implementation is IServerManagementService sm) + _serverManagementService = sm; + else if (implementation is IPackageDeploymentService pd) + _packageDeploymentService = pd; + else if (implementation is TransportManager tm) + _transportManager = tm; + } + + /// + /// Resets all services to their default implementations (useful for testing) + /// + public static void Reset() + { + (_bridgeService as IDisposable)?.Dispose(); + (_clientService as IDisposable)?.Dispose(); + (_pathService as IDisposable)?.Dispose(); + (_testRunnerService as IDisposable)?.Dispose(); + (_packageUpdateService as IDisposable)?.Dispose(); + (_platformService as IDisposable)?.Dispose(); + (_toolDiscoveryService as IDisposable)?.Dispose(); + (_resourceDiscoveryService as IDisposable)?.Dispose(); + (_serverManagementService as IDisposable)?.Dispose(); + (_transportManager as IDisposable)?.Dispose(); + (_packageDeploymentService as IDisposable)?.Dispose(); + + _bridgeService = null; + _clientService = null; + _pathService = null; + _testRunnerService = null; + _packageUpdateService = null; + _platformService = null; + _toolDiscoveryService = null; + _resourceDiscoveryService = null; + _serverManagementService = null; + _transportManager = null; + _packageDeploymentService = null; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Services/MCPServiceLocator.cs.meta b/Packages/MCPForUnity/Editor/Services/MCPServiceLocator.cs.meta new file mode 100644 index 00000000..cd9b4021 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/MCPServiceLocator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 276d6a9f9a1714ead91573945de78992 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/McpEditorShutdownCleanup.cs b/Packages/MCPForUnity/Editor/Services/McpEditorShutdownCleanup.cs new file mode 100644 index 00000000..9b4bd614 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/McpEditorShutdownCleanup.cs @@ -0,0 +1,77 @@ +using System; +using System.Threading.Tasks; +using MCPForUnity.Editor.Constants; +using MCPForUnity.Editor.Helpers; +using MCPForUnity.Editor.Services.Transport; +using UnityEditor; + +namespace MCPForUnity.Editor.Services +{ + /// + /// Best-effort cleanup when the Unity Editor is quitting. + /// - Stops active transports so clients don't see a "hung" session longer than necessary. + /// - If HTTP Local is selected, attempts to stop the local HTTP server (guarded by PID heuristics). + /// + [InitializeOnLoad] + internal static class McpEditorShutdownCleanup + { + static McpEditorShutdownCleanup() + { + // Guard against duplicate subscriptions across domain reloads. + try { EditorApplication.quitting -= OnEditorQuitting; } catch { } + EditorApplication.quitting += OnEditorQuitting; + } + + private static void OnEditorQuitting() + { + // 1) Stop transports (best-effort, bounded wait). + try + { + var transport = MCPServiceLocator.TransportManager; + + Task stopHttp = transport.StopAsync(TransportMode.Http); + Task stopStdio = transport.StopAsync(TransportMode.Stdio); + + try { Task.WaitAll(new[] { stopHttp, stopStdio }, 750); } catch { } + } + catch (Exception ex) + { + // Avoid hard failures on quit. + McpLog.Warn($"Shutdown cleanup: failed to stop transports: {ex.Message}"); + } + + // 2) Stop local HTTP server if it was Unity-managed (best-effort). + try + { + bool useHttp = EditorConfigurationCache.Instance.UseHttpTransport; + string scope = string.Empty; + try { scope = EditorPrefs.GetString(EditorPrefKeys.HttpTransportScope, string.Empty); } catch { } + + bool stopped = false; + bool httpLocalSelected = + useHttp && + (string.Equals(scope, "local", StringComparison.OrdinalIgnoreCase) + || (string.IsNullOrEmpty(scope) && MCPServiceLocator.Server.IsLocalUrl())); + + if (httpLocalSelected) + { + // StopLocalHttpServer is already guarded to only terminate processes that look like mcp-for-unity. + // If it refuses to stop (e.g. URL was edited away from local), fall back to the Unity-managed stop. + stopped = MCPServiceLocator.Server.StopLocalHttpServer(); + } + + // Always attempt to stop a Unity-managed server if one exists. + // This covers cases where the user switched transports (e.g. to stdio) or StopLocalHttpServer refused. + if (!stopped) + { + MCPServiceLocator.Server.StopManagedLocalHttpServer(); + } + } + catch (Exception ex) + { + McpLog.Warn($"Shutdown cleanup: failed to stop local HTTP server: {ex.Message}"); + } + } + } +} + diff --git a/Packages/MCPForUnity/Editor/Services/McpEditorShutdownCleanup.cs.meta b/Packages/MCPForUnity/Editor/Services/McpEditorShutdownCleanup.cs.meta new file mode 100644 index 00000000..a94395c6 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/McpEditorShutdownCleanup.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4150c04e0907c45d7b332260911a0567 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/PackageDeploymentService.cs b/Packages/MCPForUnity/Editor/Services/PackageDeploymentService.cs new file mode 100644 index 00000000..7c0e27c6 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/PackageDeploymentService.cs @@ -0,0 +1,304 @@ +using System; +using System.IO; +using MCPForUnity.Editor.Constants; +using MCPForUnity.Editor.Helpers; +using UnityEditor; +using UnityEngine; +using PackageInfo = UnityEditor.PackageManager.PackageInfo; + +namespace MCPForUnity.Editor.Services +{ + /// + /// Handles copying a local MCPForUnity folder into the current project's package location with backup/restore support. + /// + public class PackageDeploymentService : IPackageDeploymentService + { + private const string BackupRootFolderName = "MCPForUnityDeployBackups"; + + public string GetStoredSourcePath() + { + return EditorPrefs.GetString(EditorPrefKeys.PackageDeploySourcePath, string.Empty); + } + + public void SetStoredSourcePath(string path) + { + ValidateSource(path); + EditorPrefs.SetString(EditorPrefKeys.PackageDeploySourcePath, Path.GetFullPath(path)); + } + + public void ClearStoredSourcePath() + { + EditorPrefs.DeleteKey(EditorPrefKeys.PackageDeploySourcePath); + } + + public string GetTargetPath() + { + // Prefer Package Manager resolved path for the installed package + var packageInfo = PackageInfo.FindForAssembly(typeof(PackageDeploymentService).Assembly); + if (packageInfo != null) + { + if (!string.IsNullOrEmpty(packageInfo.resolvedPath) && Directory.Exists(packageInfo.resolvedPath)) + { + return packageInfo.resolvedPath; + } + + if (!string.IsNullOrEmpty(packageInfo.assetPath)) + { + string absoluteFromAsset = MakeAbsolute(packageInfo.assetPath); + if (Directory.Exists(absoluteFromAsset)) + { + return absoluteFromAsset; + } + } + } + + // Fallback to computed package root + string packageRoot = AssetPathUtility.GetMcpPackageRootPath(); + if (!string.IsNullOrEmpty(packageRoot)) + { + string absolutePath = MakeAbsolute(packageRoot); + if (Directory.Exists(absolutePath)) + { + return absolutePath; + } + } + + return null; + } + + public string GetTargetDisplayPath() + { + string target = GetTargetPath(); + if (string.IsNullOrEmpty(target)) + return "Not found (check Packages/manifest.json)"; + // Use forward slashes to avoid backslash escape sequence issues in UI text + return target.Replace('\\', '/'); + } + + public string GetLastBackupPath() + { + return EditorPrefs.GetString(EditorPrefKeys.PackageDeployLastBackupPath, string.Empty); + } + + public bool HasBackup() + { + string path = GetLastBackupPath(); + return !string.IsNullOrEmpty(path) && Directory.Exists(path); + } + + public PackageDeploymentResult DeployFromStoredSource() + { + string sourcePath = GetStoredSourcePath(); + if (string.IsNullOrEmpty(sourcePath)) + { + return Fail("Select a MCPForUnity folder first."); + } + + string validationError = ValidateSource(sourcePath, throwOnError: false); + if (!string.IsNullOrEmpty(validationError)) + { + return Fail(validationError); + } + + string targetPath = GetTargetPath(); + if (string.IsNullOrEmpty(targetPath)) + { + return Fail("Could not locate the installed MCP package. Check Packages/manifest.json."); + } + + if (PathsEqual(sourcePath, targetPath)) + { + return Fail("Source and target are the same. Choose a different MCPForUnity folder."); + } + + try + { + EditorUtility.DisplayProgressBar("Deploy MCP for Unity", "Creating backup...", 0.25f); + string backupPath = CreateBackup(targetPath); + + EditorUtility.DisplayProgressBar("Deploy MCP for Unity", "Replacing package contents...", 0.7f); + CopyCoreFolders(sourcePath, targetPath); + + EditorPrefs.SetString(EditorPrefKeys.PackageDeployLastBackupPath, backupPath); + EditorPrefs.SetString(EditorPrefKeys.PackageDeployLastTargetPath, targetPath); + EditorPrefs.SetString(EditorPrefKeys.PackageDeployLastSourcePath, sourcePath); + + AssetDatabase.Refresh(ImportAssetOptions.ForceUpdate); + return Success("Deployment completed.", sourcePath, targetPath, backupPath); + } + catch (Exception ex) + { + McpLog.Error($"Deployment failed: {ex.Message}"); + return Fail($"Deployment failed: {ex.Message}"); + } + finally + { + EditorUtility.ClearProgressBar(); + } + } + + public PackageDeploymentResult RestoreLastBackup() + { + string backupPath = GetLastBackupPath(); + string targetPath = EditorPrefs.GetString(EditorPrefKeys.PackageDeployLastTargetPath, string.Empty); + + if (string.IsNullOrEmpty(backupPath) || !Directory.Exists(backupPath)) + { + return Fail("No backup available to restore."); + } + + if (string.IsNullOrEmpty(targetPath) || !Directory.Exists(targetPath)) + { + targetPath = GetTargetPath(); + } + + if (string.IsNullOrEmpty(targetPath) || !Directory.Exists(targetPath)) + { + return Fail("Could not locate target package path."); + } + + try + { + EditorUtility.DisplayProgressBar("Restore MCP for Unity", "Restoring backup...", 0.5f); + ReplaceDirectory(backupPath, targetPath); + + AssetDatabase.Refresh(ImportAssetOptions.ForceUpdate); + return Success("Restore completed.", null, targetPath, backupPath); + } + catch (Exception ex) + { + McpLog.Error($"Restore failed: {ex.Message}"); + return Fail($"Restore failed: {ex.Message}"); + } + finally + { + EditorUtility.ClearProgressBar(); + } + } + + private void CopyCoreFolders(string sourceRoot, string targetRoot) + { + string sourceEditor = Path.Combine(sourceRoot, "Editor"); + string sourceRuntime = Path.Combine(sourceRoot, "Runtime"); + + ReplaceDirectory(sourceEditor, Path.Combine(targetRoot, "Editor")); + ReplaceDirectory(sourceRuntime, Path.Combine(targetRoot, "Runtime")); + } + + private static void ReplaceDirectory(string source, string destination) + { + if (Directory.Exists(destination)) + { + FileUtil.DeleteFileOrDirectory(destination); + } + + FileUtil.CopyFileOrDirectory(source, destination); + } + + private string CreateBackup(string targetPath) + { + string backupRoot = Path.Combine(GetProjectRoot(), "Library", BackupRootFolderName); + Directory.CreateDirectory(backupRoot); + + string stamp = DateTime.Now.ToString("yyyyMMdd_HHmmss"); + string backupPath = Path.Combine(backupRoot, $"backup_{stamp}"); + + if (Directory.Exists(backupPath)) + { + FileUtil.DeleteFileOrDirectory(backupPath); + } + + FileUtil.CopyFileOrDirectory(targetPath, backupPath); + return backupPath; + } + + private static string ValidateSource(string sourcePath, bool throwOnError = true) + { + if (string.IsNullOrEmpty(sourcePath)) + { + if (throwOnError) + { + throw new ArgumentException("Source path cannot be empty."); + } + + return "Source path is empty."; + } + + if (!Directory.Exists(sourcePath)) + { + if (throwOnError) + { + throw new ArgumentException("Selected folder does not exist."); + } + + return "Selected folder does not exist."; + } + + bool hasEditor = Directory.Exists(Path.Combine(sourcePath, "Editor")); + bool hasRuntime = Directory.Exists(Path.Combine(sourcePath, "Runtime")); + + if (!hasEditor || !hasRuntime) + { + string message = "Folder must contain Editor and Runtime subfolders."; + if (throwOnError) + { + throw new ArgumentException(message); + } + + return message; + } + + return null; + } + + private static string MakeAbsolute(string assetPath) + { + assetPath = assetPath.Replace('\\', '/'); + + if (assetPath.StartsWith("Assets/", StringComparison.OrdinalIgnoreCase)) + { + return Path.GetFullPath(Path.Combine(Application.dataPath, "..", assetPath)); + } + + if (assetPath.StartsWith("Packages/", StringComparison.OrdinalIgnoreCase)) + { + return Path.GetFullPath(Path.Combine(Application.dataPath, "..", assetPath)); + } + + return Path.GetFullPath(assetPath); + } + + private static string GetProjectRoot() + { + return Path.GetFullPath(Path.Combine(Application.dataPath, "..")); + } + + private static bool PathsEqual(string a, string b) + { + string normA = Path.GetFullPath(a).TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); + string normB = Path.GetFullPath(b).TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); + return string.Equals(normA, normB, StringComparison.OrdinalIgnoreCase); + } + + private static PackageDeploymentResult Success(string message, string source, string target, string backup) + { + return new PackageDeploymentResult + { + Success = true, + Message = message, + SourcePath = source, + TargetPath = target, + BackupPath = backup + }; + } + + private static PackageDeploymentResult Fail(string message) + { + return new PackageDeploymentResult + { + Success = false, + Message = message + }; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Services/PackageDeploymentService.cs.meta b/Packages/MCPForUnity/Editor/Services/PackageDeploymentService.cs.meta new file mode 100644 index 00000000..e43e0ccf --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/PackageDeploymentService.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0b1f45e4e5d24413a6f1c8c0d8c5f2f1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/PackageUpdateService.cs b/Packages/MCPForUnity/Editor/Services/PackageUpdateService.cs new file mode 100644 index 00000000..81c0161f --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/PackageUpdateService.cs @@ -0,0 +1,185 @@ +using System; +using System.Net; +using MCPForUnity.Editor.Constants; +using MCPForUnity.Editor.Helpers; +using Newtonsoft.Json.Linq; +using UnityEditor; + +namespace MCPForUnity.Editor.Services +{ + /// + /// Service for checking package updates from GitHub or Asset Store metadata + /// + public class PackageUpdateService : IPackageUpdateService + { + private const string LastCheckDateKey = EditorPrefKeys.LastUpdateCheck; + private const string CachedVersionKey = EditorPrefKeys.LatestKnownVersion; + private const string LastAssetStoreCheckDateKey = EditorPrefKeys.LastAssetStoreUpdateCheck; + private const string CachedAssetStoreVersionKey = EditorPrefKeys.LatestKnownAssetStoreVersion; + private const string PackageJsonUrl = "https://raw.githubusercontent.com/CoplayDev/unity-mcp/main/MCPForUnity/package.json"; + private const string AssetStoreVersionUrl = "https://gqoqjkkptwfbkwyssmnj.supabase.co/storage/v1/object/public/coplay-images/assetstoreversion.json"; + + /// + public UpdateCheckResult CheckForUpdate(string currentVersion) + { + bool isGitInstallation = IsGitInstallation(); + string lastCheckDate = EditorPrefs.GetString(isGitInstallation ? LastCheckDateKey : LastAssetStoreCheckDateKey, ""); + string cachedLatestVersion = EditorPrefs.GetString(isGitInstallation ? CachedVersionKey : CachedAssetStoreVersionKey, ""); + + if (lastCheckDate == DateTime.Now.ToString("yyyy-MM-dd") && !string.IsNullOrEmpty(cachedLatestVersion)) + { + return new UpdateCheckResult + { + CheckSucceeded = true, + LatestVersion = cachedLatestVersion, + UpdateAvailable = IsNewerVersion(cachedLatestVersion, currentVersion), + Message = "Using cached version check" + }; + } + + string latestVersion = isGitInstallation + ? FetchLatestVersionFromGitHub() + : FetchLatestVersionFromAssetStoreJson(); + + if (!string.IsNullOrEmpty(latestVersion)) + { + // Cache the result + EditorPrefs.SetString(isGitInstallation ? LastCheckDateKey : LastAssetStoreCheckDateKey, DateTime.Now.ToString("yyyy-MM-dd")); + EditorPrefs.SetString(isGitInstallation ? CachedVersionKey : CachedAssetStoreVersionKey, latestVersion); + + return new UpdateCheckResult + { + CheckSucceeded = true, + LatestVersion = latestVersion, + UpdateAvailable = IsNewerVersion(latestVersion, currentVersion), + Message = "Successfully checked for updates" + }; + } + + return new UpdateCheckResult + { + CheckSucceeded = false, + UpdateAvailable = false, + Message = isGitInstallation + ? "Failed to check for updates (network issue or offline)" + : "Failed to check for Asset Store updates (network issue or offline)" + }; + } + + /// + public bool IsNewerVersion(string version1, string version2) + { + try + { + // Remove any "v" prefix + version1 = version1.TrimStart('v', 'V'); + version2 = version2.TrimStart('v', 'V'); + + var version1Parts = version1.Split('.'); + var version2Parts = version2.Split('.'); + + for (int i = 0; i < Math.Min(version1Parts.Length, version2Parts.Length); i++) + { + if (int.TryParse(version1Parts[i], out int v1Num) && + int.TryParse(version2Parts[i], out int v2Num)) + { + if (v1Num > v2Num) return true; + if (v1Num < v2Num) return false; + } + } + return false; + } + catch + { + return false; + } + } + + /// + public virtual bool IsGitInstallation() + { + // Git packages are installed via Package Manager and have a package.json in Packages/ + // Asset Store packages are in Assets/ + string packageRoot = AssetPathUtility.GetMcpPackageRootPath(); + + if (string.IsNullOrEmpty(packageRoot)) + { + return false; + } + + // If the package is in Packages/ it's a PM install (likely Git) + // If it's in Assets/ it's an Asset Store install + return packageRoot.StartsWith("Packages/", StringComparison.OrdinalIgnoreCase); + } + + /// + public void ClearCache() + { + EditorPrefs.DeleteKey(LastCheckDateKey); + EditorPrefs.DeleteKey(CachedVersionKey); + EditorPrefs.DeleteKey(LastAssetStoreCheckDateKey); + EditorPrefs.DeleteKey(CachedAssetStoreVersionKey); + } + + /// + /// Fetches the latest version from GitHub's main branch package.json + /// + protected virtual string FetchLatestVersionFromGitHub() + { + try + { + // GitHub API endpoint (Option 1 - has rate limits): + // https://api.github.com/repos/CoplayDev/unity-mcp/releases/latest + // + // We use Option 2 (package.json directly) because: + // - No API rate limits (GitHub serves raw files freely) + // - Simpler - just parse JSON for version field + // - More reliable - doesn't require releases to be published + // - Direct source of truth from the main branch + + using (var client = new WebClient()) + { + client.Headers.Add("User-Agent", "Unity-MCPForUnity-UpdateChecker"); + string jsonContent = client.DownloadString(PackageJsonUrl); + + var packageJson = JObject.Parse(jsonContent); + string version = packageJson["version"]?.ToString(); + + return string.IsNullOrEmpty(version) ? null : version; + } + } + catch (Exception ex) + { + // Silent fail - don't interrupt the user if network is unavailable + McpLog.Info($"Update check failed (this is normal if offline): {ex.Message}"); + return null; + } + } + + /// + /// Fetches the latest Asset Store version from a hosted JSON file. + /// + protected virtual string FetchLatestVersionFromAssetStoreJson() + { + try + { + using (var client = new WebClient()) + { + client.Headers.Add("User-Agent", "Unity-MCPForUnity-AssetStoreUpdateChecker"); + string jsonContent = client.DownloadString(AssetStoreVersionUrl); + + var versionJson = JObject.Parse(jsonContent); + string version = versionJson["version"]?.ToString(); + + return string.IsNullOrEmpty(version) ? null : version; + } + } + catch (Exception ex) + { + // Silent fail - don't interrupt the user if network is unavailable + McpLog.Info($"Asset Store update check failed (this is normal if offline): {ex.Message}"); + return null; + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Services/PackageUpdateService.cs.meta b/Packages/MCPForUnity/Editor/Services/PackageUpdateService.cs.meta new file mode 100644 index 00000000..281cda95 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/PackageUpdateService.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7c3c2304b14e9485ca54182fad73b035 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/PathResolverService.cs b/Packages/MCPForUnity/Editor/Services/PathResolverService.cs new file mode 100644 index 00000000..4181cf4c --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/PathResolverService.cs @@ -0,0 +1,358 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices; +using MCPForUnity.Editor.Constants; +using MCPForUnity.Editor.Helpers; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.Services +{ + /// + /// Implementation of path resolver service with override support + /// + public class PathResolverService : IPathResolverService + { + private bool _hasUvxPathFallback; + + public bool HasUvxPathOverride => !string.IsNullOrEmpty(EditorPrefs.GetString(EditorPrefKeys.UvxPathOverride, null)); + public bool HasClaudeCliPathOverride => !string.IsNullOrEmpty(EditorPrefs.GetString(EditorPrefKeys.ClaudeCliPathOverride, null)); + public bool HasUvxPathFallback => _hasUvxPathFallback; + + public string GetUvxPath() + { + // Reset fallback flag at the start of each resolution + _hasUvxPathFallback = false; + + // Check override first - only validate if explicitly set + if (HasUvxPathOverride) + { + string overridePath = EditorPrefs.GetString(EditorPrefKeys.UvxPathOverride, string.Empty); + // Validate the override - if invalid, fall back to system discovery + if (TryValidateUvxExecutable(overridePath, out string version)) + { + return overridePath; + } + // Override is set but invalid - fall back to system discovery + string fallbackPath = ResolveUvxFromSystem(); + if (!string.IsNullOrEmpty(fallbackPath)) + { + _hasUvxPathFallback = true; + return fallbackPath; + } + // Return null to indicate override is invalid and no system fallback found + return null; + } + + // No override set - try discovery (uvx first, then uv) + string discovered = ResolveUvxFromSystem(); + if (!string.IsNullOrEmpty(discovered)) + { + return discovered; + } + + // Fallback to bare command + return "uvx"; + } + + /// + /// Resolves uv/uvx from system by trying both commands. + /// Returns the full path if found, null otherwise. + /// + private static string ResolveUvxFromSystem() + { + try + { + // Try uvx first, then uv + string[] commandNames = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) + ? new[] { "uvx.exe", "uv.exe" } + : new[] { "uvx", "uv" }; + + foreach (string commandName in commandNames) + { + foreach (string candidate in EnumerateCommandCandidates(commandName)) + { + if (!string.IsNullOrEmpty(candidate) && File.Exists(candidate)) + { + return candidate; + } + } + } + } + catch (Exception ex) + { + McpLog.Debug($"PathResolver error: {ex.Message}"); + } + + return null; + } + + + + public string GetClaudeCliPath() + { + // Check override first - only validate if explicitly set + if (HasClaudeCliPathOverride) + { + string overridePath = EditorPrefs.GetString(EditorPrefKeys.ClaudeCliPathOverride, string.Empty); + // Validate the override - if invalid, don't fall back to discovery + if (File.Exists(overridePath)) + { + return overridePath; + } + // Override is set but invalid - return null (no fallback) + return null; + } + + // No override - use platform-specific discovery + if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) + { + string[] candidates = new[] + { + Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Programs", "claude", "claude.exe"), + Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), "claude", "claude.exe"), + "claude.exe" + }; + + foreach (var c in candidates) + { + if (File.Exists(c)) return c; + } + } + else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) + { + string[] candidates = new[] + { + "/opt/homebrew/bin/claude", + "/usr/local/bin/claude", + Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".local", "bin", "claude") + }; + + foreach (var c in candidates) + { + if (File.Exists(c)) return c; + } + } + else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) + { + string[] candidates = new[] + { + "/usr/bin/claude", + "/usr/local/bin/claude", + Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".local", "bin", "claude") + }; + + foreach (var c in candidates) + { + if (File.Exists(c)) return c; + } + } + + return null; + } + + public bool IsPythonDetected() + { + return ExecPath.TryRun( + RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? "python.exe" : "python3", + "--version", + null, + out _, + out _, + 2000); + } + + public bool IsClaudeCliDetected() + { + return !string.IsNullOrEmpty(GetClaudeCliPath()); + } + + public void SetUvxPathOverride(string path) + { + if (string.IsNullOrEmpty(path)) + { + ClearUvxPathOverride(); + return; + } + + if (!File.Exists(path)) + { + throw new ArgumentException("The selected uvx executable does not exist"); + } + + EditorPrefs.SetString(EditorPrefKeys.UvxPathOverride, path); + } + + public void SetClaudeCliPathOverride(string path) + { + if (string.IsNullOrEmpty(path)) + { + ClearClaudeCliPathOverride(); + return; + } + + if (!File.Exists(path)) + { + throw new ArgumentException("The selected Claude CLI executable does not exist"); + } + + EditorPrefs.SetString(EditorPrefKeys.ClaudeCliPathOverride, path); + } + + public void ClearUvxPathOverride() + { + EditorPrefs.DeleteKey(EditorPrefKeys.UvxPathOverride); + } + + public void ClearClaudeCliPathOverride() + { + EditorPrefs.DeleteKey(EditorPrefKeys.ClaudeCliPathOverride); + } + + /// + /// Validates the provided uv executable by running "--version" and parsing the output. + /// + /// Absolute or relative path to the uv/uvx executable. + /// Parsed version string if successful. + /// True when the executable runs and returns a uvx version string. + public bool TryValidateUvxExecutable(string uvxPath, out string version) + { + version = null; + + if (string.IsNullOrEmpty(uvxPath)) + return false; + + try + { + // Check if the path is just a command name (no directory separator) + bool isBareCommand = !uvxPath.Contains('/') && !uvxPath.Contains('\\'); + + if (isBareCommand) + { + // For bare commands like "uvx" or "uv", use EnumerateCommandCandidates to find full path first + string fullPath = FindUvxExecutableInPath(uvxPath); + if (string.IsNullOrEmpty(fullPath)) + return false; + uvxPath = fullPath; + } + + // Use ExecPath.TryRun which properly handles async output reading and timeouts + if (!ExecPath.TryRun(uvxPath, "--version", null, out string stdout, out string stderr, 5000)) + return false; + + // Check stdout first, then stderr (some tools output to stderr) + string versionOutput = !string.IsNullOrWhiteSpace(stdout) ? stdout.Trim() : stderr.Trim(); + + // uv/uvx outputs "uv x.y.z" or "uvx x.y.z", extract version number + if (versionOutput.StartsWith("uvx ") || versionOutput.StartsWith("uv ")) + { + // Extract version: "uv 0.9.18 (hash date)" -> "0.9.18" + int spaceIndex = versionOutput.IndexOf(' '); + if (spaceIndex >= 0) + { + string afterCommand = versionOutput.Substring(spaceIndex + 1).Trim(); + // Version is up to the first space or parenthesis + int nextSpace = afterCommand.IndexOf(' '); + int parenIndex = afterCommand.IndexOf('('); + int endIndex = Math.Min( + nextSpace >= 0 ? nextSpace : int.MaxValue, + parenIndex >= 0 ? parenIndex : int.MaxValue + ); + version = endIndex < int.MaxValue ? afterCommand.Substring(0, endIndex).Trim() : afterCommand; + return true; + } + } + } + catch + { + // Ignore validation errors + } + + return false; + } + + private string FindUvxExecutableInPath(string commandName) + { + try + { + // Generic search for any command in PATH and common locations + foreach (string candidate in EnumerateCommandCandidates(commandName)) + { + if (!string.IsNullOrEmpty(candidate) && File.Exists(candidate)) + { + return candidate; + } + } + } + catch + { + // Ignore errors + } + + return null; + } + + /// + /// Enumerates candidate paths for a generic command name. + /// Searches PATH and common locations. + /// + private static IEnumerable EnumerateCommandCandidates(string commandName) + { + string exeName = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) && !commandName.EndsWith(".exe") + ? commandName + ".exe" + : commandName; + + // Search PATH first + string pathEnv = Environment.GetEnvironmentVariable("PATH"); + if (!string.IsNullOrEmpty(pathEnv)) + { + foreach (string rawDir in pathEnv.Split(Path.PathSeparator)) + { + if (string.IsNullOrWhiteSpace(rawDir)) continue; + string dir = rawDir.Trim(); + yield return Path.Combine(dir, exeName); + } + } + + // User-local binary directories + string home = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile); + if (!string.IsNullOrEmpty(home)) + { + yield return Path.Combine(home, ".local", "bin", exeName); + yield return Path.Combine(home, ".cargo", "bin", exeName); + } + + // System directories (platform-specific) + if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) + { + yield return "/opt/homebrew/bin/" + exeName; + yield return "/usr/local/bin/" + exeName; + } + else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) + { + yield return "/usr/local/bin/" + exeName; + yield return "/usr/bin/" + exeName; + } + else if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) + { + string localAppData = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); + string programFiles = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles); + + if (!string.IsNullOrEmpty(localAppData)) + { + yield return Path.Combine(localAppData, "Programs", "uv", exeName); + // WinGet creates shim files in this location + yield return Path.Combine(localAppData, "Microsoft", "WinGet", "Links", exeName); + } + + if (!string.IsNullOrEmpty(programFiles)) + { + yield return Path.Combine(programFiles, "uv", exeName); + } + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Services/PathResolverService.cs.meta b/Packages/MCPForUnity/Editor/Services/PathResolverService.cs.meta new file mode 100644 index 00000000..09dbc1ec --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/PathResolverService.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 00a6188fd15a847fa8cc7cb7a4ce3dce +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/PlatformService.cs b/Packages/MCPForUnity/Editor/Services/PlatformService.cs new file mode 100644 index 00000000..6e663717 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/PlatformService.cs @@ -0,0 +1,31 @@ +using System; + +namespace MCPForUnity.Editor.Services +{ + /// + /// Default implementation of platform detection service + /// + public class PlatformService : IPlatformService + { + /// + /// Checks if the current platform is Windows + /// + /// True if running on Windows + public bool IsWindows() + { + return Environment.OSVersion.Platform == PlatformID.Win32NT; + } + + /// + /// Gets the SystemRoot environment variable (Windows-specific) + /// + /// SystemRoot path, or "C:\\Windows" as fallback on Windows, null on other platforms + public string GetSystemRoot() + { + if (!IsWindows()) + return null; + + return Environment.GetEnvironmentVariable("SystemRoot") ?? "C:\\Windows"; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Services/PlatformService.cs.meta b/Packages/MCPForUnity/Editor/Services/PlatformService.cs.meta new file mode 100644 index 00000000..172daf8f --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/PlatformService.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3b2d7f32a595c45dd8c01f141c69761c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/ResourceDiscoveryService.cs b/Packages/MCPForUnity/Editor/Services/ResourceDiscoveryService.cs new file mode 100644 index 00000000..d9642596 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/ResourceDiscoveryService.cs @@ -0,0 +1,167 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using MCPForUnity.Editor.Constants; +using MCPForUnity.Editor.Helpers; +using MCPForUnity.Editor.Resources; +using UnityEditor; + +namespace MCPForUnity.Editor.Services +{ + public class ResourceDiscoveryService : IResourceDiscoveryService + { + private Dictionary _cachedResources; + + public List DiscoverAllResources() + { + if (_cachedResources != null) + { + return _cachedResources.Values.ToList(); + } + + _cachedResources = new Dictionary(); + + var resourceTypes = TypeCache.GetTypesWithAttribute(); + foreach (var type in resourceTypes) + { + McpForUnityResourceAttribute resourceAttr; + try + { + resourceAttr = type.GetCustomAttribute(); + } + catch (Exception ex) + { + McpLog.Warn($"Failed to read [McpForUnityResource] for {type.FullName}: {ex.Message}"); + continue; + } + + if (resourceAttr == null) + { + continue; + } + + var metadata = ExtractResourceMetadata(type, resourceAttr); + if (metadata != null) + { + if (_cachedResources.ContainsKey(metadata.Name)) + { + McpLog.Warn($"Duplicate resource name '{metadata.Name}' from {type.FullName}; overwriting previous registration."); + } + _cachedResources[metadata.Name] = metadata; + EnsurePreferenceInitialized(metadata); + } + } + + McpLog.Info($"Discovered {_cachedResources.Count} MCP resources via reflection", false); + return _cachedResources.Values.ToList(); + } + + public ResourceMetadata GetResourceMetadata(string resourceName) + { + if (string.IsNullOrEmpty(resourceName)) + { + return null; + } + + if (_cachedResources == null) + { + DiscoverAllResources(); + } + + return _cachedResources.TryGetValue(resourceName, out var metadata) ? metadata : null; + } + + public List GetEnabledResources() + { + return DiscoverAllResources() + .Where(r => IsResourceEnabled(r.Name)) + .ToList(); + } + + public bool IsResourceEnabled(string resourceName) + { + if (string.IsNullOrEmpty(resourceName)) + { + return false; + } + + string key = GetResourcePreferenceKey(resourceName); + if (EditorPrefs.HasKey(key)) + { + return EditorPrefs.GetBool(key, true); + } + + // Default: all resources enabled + return true; + } + + public void SetResourceEnabled(string resourceName, bool enabled) + { + if (string.IsNullOrEmpty(resourceName)) + { + return; + } + + string key = GetResourcePreferenceKey(resourceName); + EditorPrefs.SetBool(key, enabled); + } + + public void InvalidateCache() + { + _cachedResources = null; + } + + private ResourceMetadata ExtractResourceMetadata(Type type, McpForUnityResourceAttribute resourceAttr) + { + try + { + string resourceName = resourceAttr.ResourceName; + if (string.IsNullOrEmpty(resourceName)) + { + resourceName = StringCaseUtility.ToSnakeCase(type.Name); + } + + string description = resourceAttr.Description ?? $"Resource: {resourceName}"; + + var metadata = new ResourceMetadata + { + Name = resourceName, + Description = description, + ClassName = type.Name, + Namespace = type.Namespace ?? "", + AssemblyName = type.Assembly.GetName().Name + }; + + metadata.IsBuiltIn = StringCaseUtility.IsBuiltInMcpType( + type, metadata.AssemblyName, "MCPForUnity.Editor.Resources"); + + return metadata; + } + catch (Exception ex) + { + McpLog.Error($"Failed to extract metadata for resource {type.Name}: {ex.Message}"); + return null; + } + } + + private void EnsurePreferenceInitialized(ResourceMetadata metadata) + { + if (metadata == null || string.IsNullOrEmpty(metadata.Name)) + { + return; + } + + string key = GetResourcePreferenceKey(metadata.Name); + if (!EditorPrefs.HasKey(key)) + { + EditorPrefs.SetBool(key, true); + } + } + + private static string GetResourcePreferenceKey(string resourceName) + { + return EditorPrefKeys.ResourceEnabledPrefix + resourceName; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Services/ResourceDiscoveryService.cs.meta b/Packages/MCPForUnity/Editor/Services/ResourceDiscoveryService.cs.meta new file mode 100644 index 00000000..61a096cc --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/ResourceDiscoveryService.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 66ce49d2cc47a4bd3aa85ac9f099b757 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/Server.meta b/Packages/MCPForUnity/Editor/Services/Server.meta new file mode 100644 index 00000000..e1e1dd44 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Server.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1bb072befc9fe4242a501f46dce3fea1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/Server/IPidFileManager.cs b/Packages/MCPForUnity/Editor/Services/Server/IPidFileManager.cs new file mode 100644 index 00000000..b9bd74be --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Server/IPidFileManager.cs @@ -0,0 +1,94 @@ +namespace MCPForUnity.Editor.Services.Server +{ + /// + /// Interface for managing PID files and handshake state for the local HTTP server. + /// Handles persistence of server process information across Unity domain reloads. + /// + public interface IPidFileManager + { + /// + /// Gets the directory where PID files are stored. + /// + /// Path to the PID file directory + string GetPidDirectory(); + + /// + /// Gets the path to the PID file for a specific port. + /// + /// The port number + /// Full path to the PID file + string GetPidFilePath(int port); + + /// + /// Attempts to read the PID from a PID file. + /// + /// Path to the PID file + /// Output: the process ID if found + /// True if a valid PID was read + bool TryReadPid(string pidFilePath, out int pid); + + /// + /// Attempts to extract the port number from a PID file path. + /// + /// Path to the PID file + /// Output: the port number + /// True if the port was extracted successfully + bool TryGetPortFromPidFilePath(string pidFilePath, out int port); + + /// + /// Deletes a PID file. + /// + /// Path to the PID file to delete + void DeletePidFile(string pidFilePath); + + /// + /// Stores the handshake information (PID file path and instance token) in EditorPrefs. + /// + /// Path to the PID file + /// Unique instance token for the server + void StoreHandshake(string pidFilePath, string instanceToken); + + /// + /// Attempts to retrieve stored handshake information from EditorPrefs. + /// + /// Output: stored PID file path + /// Output: stored instance token + /// True if valid handshake information was found + bool TryGetHandshake(out string pidFilePath, out string instanceToken); + + /// + /// Stores PID tracking information in EditorPrefs. + /// + /// The process ID + /// The port number + /// Optional hash of the command arguments + void StoreTracking(int pid, int port, string argsHash = null); + + /// + /// Attempts to retrieve a stored PID for the expected port. + /// Validates that the stored information is still valid (within 6-hour window). + /// + /// The expected port number + /// Output: the stored process ID + /// True if a valid stored PID was found + bool TryGetStoredPid(int expectedPort, out int pid); + + /// + /// Gets the stored args hash for the tracked server. + /// + /// The stored args hash, or empty string if not found + string GetStoredArgsHash(); + + /// + /// Clears all PID tracking information from EditorPrefs. + /// + void ClearTracking(); + + /// + /// Computes a short hash of the input string for fingerprinting. + /// + /// The input string + /// A short hash string (16 hex characters) + string ComputeShortHash(string input); + } +} diff --git a/Packages/MCPForUnity/Editor/Services/Server/IPidFileManager.cs.meta b/Packages/MCPForUnity/Editor/Services/Server/IPidFileManager.cs.meta new file mode 100644 index 00000000..b70da866 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Server/IPidFileManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f4a4c5d093da74ce79fb29a0670a58a7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/Server/IProcessDetector.cs b/Packages/MCPForUnity/Editor/Services/Server/IProcessDetector.cs new file mode 100644 index 00000000..886e29dc --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Server/IProcessDetector.cs @@ -0,0 +1,55 @@ +using System.Collections.Generic; + +namespace MCPForUnity.Editor.Services.Server +{ + /// + /// Interface for platform-specific process inspection operations. + /// Provides methods to detect MCP server processes, query process command lines, + /// and find processes listening on specific ports. + /// + public interface IProcessDetector + { + /// + /// Determines if a process looks like an MCP server process based on its command line. + /// Checks for indicators like uvx, python, mcp-for-unity, uvicorn, etc. + /// + /// The process ID to check + /// True if the process appears to be an MCP server + bool LooksLikeMcpServerProcess(int pid); + + /// + /// Attempts to get the command line arguments for a Unix process. + /// + /// The process ID + /// Output: normalized (lowercase, whitespace removed) command line args + /// True if the command line was retrieved successfully + bool TryGetProcessCommandLine(int pid, out string argsLower); + + /// + /// Gets the process IDs of all processes listening on a specific TCP port. + /// + /// The port number to check + /// List of process IDs listening on the port + List GetListeningProcessIdsForPort(int port); + + /// + /// Gets the current Unity Editor process ID safely. + /// + /// The current process ID, or -1 if it cannot be determined + int GetCurrentProcessId(); + + /// + /// Checks if a process exists on Unix systems. + /// + /// The process ID to check + /// True if the process exists + bool ProcessExists(int pid); + + /// + /// Normalizes a string for matching by removing whitespace and converting to lowercase. + /// + /// The input string + /// Normalized string for matching + string NormalizeForMatch(string input); + } +} diff --git a/Packages/MCPForUnity/Editor/Services/Server/IProcessDetector.cs.meta b/Packages/MCPForUnity/Editor/Services/Server/IProcessDetector.cs.meta new file mode 100644 index 00000000..6524cd20 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Server/IProcessDetector.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 25f32875fb87541b69ead19c08520836 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/Server/IProcessTerminator.cs b/Packages/MCPForUnity/Editor/Services/Server/IProcessTerminator.cs new file mode 100644 index 00000000..0f6e9f88 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Server/IProcessTerminator.cs @@ -0,0 +1,18 @@ +namespace MCPForUnity.Editor.Services.Server +{ + /// + /// Interface for platform-specific process termination. + /// Provides methods to terminate processes gracefully or forcefully. + /// + public interface IProcessTerminator + { + /// + /// Terminates a process using platform-appropriate methods. + /// On Unix: Tries SIGTERM first with grace period, then SIGKILL. + /// On Windows: Tries taskkill, then taskkill /F. + /// + /// The process ID to terminate + /// True if the process was terminated successfully + bool Terminate(int pid); + } +} diff --git a/Packages/MCPForUnity/Editor/Services/Server/IProcessTerminator.cs.meta b/Packages/MCPForUnity/Editor/Services/Server/IProcessTerminator.cs.meta new file mode 100644 index 00000000..c3441e50 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Server/IProcessTerminator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6a55c18e08b534afa85654410da8a463 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/Server/IServerCommandBuilder.cs b/Packages/MCPForUnity/Editor/Services/Server/IServerCommandBuilder.cs new file mode 100644 index 00000000..f32b1ebd --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Server/IServerCommandBuilder.cs @@ -0,0 +1,39 @@ +namespace MCPForUnity.Editor.Services.Server +{ + /// + /// Interface for building uvx/server command strings. + /// Handles platform-specific command construction for starting the MCP HTTP server. + /// + public interface IServerCommandBuilder + { + /// + /// Attempts to build the command parts for starting the local HTTP server. + /// + /// Output: the executable file name (e.g., uvx path) + /// Output: the command arguments + /// Output: the full command string for display + /// Output: error message if the command cannot be built + /// True if the command was built successfully + bool TryBuildCommand(out string fileName, out string arguments, out string displayCommand, out string error); + + /// + /// Builds the uv path from the uvx path by replacing uvx with uv. + /// + /// Path to uvx executable + /// Path to uv executable + string BuildUvPathFromUvx(string uvxPath); + + /// + /// Gets the platform-specific PATH prepend string for finding uv/uvx. + /// + /// Paths to prepend to PATH environment variable + string GetPlatformSpecificPathPrepend(); + + /// + /// Quotes a string if it contains spaces. + /// + /// The input string + /// The string, wrapped in quotes if it contains spaces + string QuoteIfNeeded(string input); + } +} diff --git a/Packages/MCPForUnity/Editor/Services/Server/IServerCommandBuilder.cs.meta b/Packages/MCPForUnity/Editor/Services/Server/IServerCommandBuilder.cs.meta new file mode 100644 index 00000000..995c5842 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Server/IServerCommandBuilder.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 12e80005e3f5b45239c48db981675ccf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/Server/ITerminalLauncher.cs b/Packages/MCPForUnity/Editor/Services/Server/ITerminalLauncher.cs new file mode 100644 index 00000000..3a896842 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Server/ITerminalLauncher.cs @@ -0,0 +1,25 @@ +using System.Diagnostics; + +namespace MCPForUnity.Editor.Services.Server +{ + /// + /// Interface for launching commands in platform-specific terminal windows. + /// Supports macOS Terminal, Windows cmd, and Linux terminal emulators. + /// + public interface ITerminalLauncher + { + /// + /// Creates a ProcessStartInfo for opening a terminal window with the given command. + /// Works cross-platform: macOS, Windows, and Linux. + /// + /// The command to execute in the terminal + /// A configured ProcessStartInfo for launching the terminal + ProcessStartInfo CreateTerminalProcessStartInfo(string command); + + /// + /// Gets the project root path for storing terminal scripts. + /// + /// Path to the project root directory + string GetProjectRootPath(); + } +} diff --git a/Packages/MCPForUnity/Editor/Services/Server/ITerminalLauncher.cs.meta b/Packages/MCPForUnity/Editor/Services/Server/ITerminalLauncher.cs.meta new file mode 100644 index 00000000..dcb86ab6 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Server/ITerminalLauncher.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a5990e868c0cd4999858ce1c1a2defed +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/Server/PidFileManager.cs b/Packages/MCPForUnity/Editor/Services/Server/PidFileManager.cs new file mode 100644 index 00000000..eca60ee2 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Server/PidFileManager.cs @@ -0,0 +1,275 @@ +using System; +using System.Globalization; +using System.IO; +using System.Linq; +using System.Security.Cryptography; +using System.Text; +using MCPForUnity.Editor.Constants; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.Services.Server +{ + /// + /// Manages PID files and handshake state for the local HTTP server. + /// Handles persistence of server process information across Unity domain reloads. + /// + public class PidFileManager : IPidFileManager + { + /// + public string GetPidDirectory() + { + return Path.Combine(GetProjectRootPath(), "Library", "MCPForUnity", "RunState"); + } + + /// + public string GetPidFilePath(int port) + { + string dir = GetPidDirectory(); + Directory.CreateDirectory(dir); + return Path.Combine(dir, $"mcp_http_{port}.pid"); + } + + /// + public bool TryReadPid(string pidFilePath, out int pid) + { + pid = 0; + try + { + if (string.IsNullOrEmpty(pidFilePath) || !File.Exists(pidFilePath)) + { + return false; + } + + string text = File.ReadAllText(pidFilePath).Trim(); + if (int.TryParse(text, out pid)) + { + return pid > 0; + } + + // Best-effort: tolerate accidental extra whitespace/newlines. + var firstLine = text.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries).FirstOrDefault(); + if (int.TryParse(firstLine, out pid)) + { + return pid > 0; + } + + pid = 0; + return false; + } + catch + { + pid = 0; + return false; + } + } + + /// + public bool TryGetPortFromPidFilePath(string pidFilePath, out int port) + { + port = 0; + if (string.IsNullOrEmpty(pidFilePath)) + { + return false; + } + + try + { + string fileName = Path.GetFileNameWithoutExtension(pidFilePath); + if (string.IsNullOrEmpty(fileName)) + { + return false; + } + + const string prefix = "mcp_http_"; + if (!fileName.StartsWith(prefix, StringComparison.OrdinalIgnoreCase)) + { + return false; + } + + string portText = fileName.Substring(prefix.Length); + return int.TryParse(portText, out port) && port > 0; + } + catch + { + port = 0; + return false; + } + } + + /// + public void DeletePidFile(string pidFilePath) + { + try + { + if (!string.IsNullOrEmpty(pidFilePath) && File.Exists(pidFilePath)) + { + File.Delete(pidFilePath); + } + } + catch { } + } + + /// + public void StoreHandshake(string pidFilePath, string instanceToken) + { + try + { + if (!string.IsNullOrEmpty(pidFilePath)) + { + EditorPrefs.SetString(EditorPrefKeys.LastLocalHttpServerPidFilePath, pidFilePath); + } + } + catch { } + + try + { + if (!string.IsNullOrEmpty(instanceToken)) + { + EditorPrefs.SetString(EditorPrefKeys.LastLocalHttpServerInstanceToken, instanceToken); + } + } + catch { } + } + + /// + public bool TryGetHandshake(out string pidFilePath, out string instanceToken) + { + pidFilePath = null; + instanceToken = null; + try + { + pidFilePath = EditorPrefs.GetString(EditorPrefKeys.LastLocalHttpServerPidFilePath, string.Empty); + instanceToken = EditorPrefs.GetString(EditorPrefKeys.LastLocalHttpServerInstanceToken, string.Empty); + if (string.IsNullOrEmpty(pidFilePath) || string.IsNullOrEmpty(instanceToken)) + { + pidFilePath = null; + instanceToken = null; + return false; + } + return true; + } + catch + { + pidFilePath = null; + instanceToken = null; + return false; + } + } + + /// + public void StoreTracking(int pid, int port, string argsHash = null) + { + try { EditorPrefs.SetInt(EditorPrefKeys.LastLocalHttpServerPid, pid); } catch { } + try { EditorPrefs.SetInt(EditorPrefKeys.LastLocalHttpServerPort, port); } catch { } + try { EditorPrefs.SetString(EditorPrefKeys.LastLocalHttpServerStartedUtc, DateTime.UtcNow.ToString("O", CultureInfo.InvariantCulture)); } catch { } + try + { + if (!string.IsNullOrEmpty(argsHash)) + { + EditorPrefs.SetString(EditorPrefKeys.LastLocalHttpServerPidArgsHash, argsHash); + } + else + { + EditorPrefs.DeleteKey(EditorPrefKeys.LastLocalHttpServerPidArgsHash); + } + } + catch { } + } + + /// + public bool TryGetStoredPid(int expectedPort, out int pid) + { + pid = 0; + try + { + int storedPid = EditorPrefs.GetInt(EditorPrefKeys.LastLocalHttpServerPid, 0); + int storedPort = EditorPrefs.GetInt(EditorPrefKeys.LastLocalHttpServerPort, 0); + string storedUtc = EditorPrefs.GetString(EditorPrefKeys.LastLocalHttpServerStartedUtc, string.Empty); + + if (storedPid <= 0 || storedPort != expectedPort) + { + return false; + } + + // Only trust the stored PID for a short window to avoid PID reuse issues. + // (We still verify the PID is listening on the expected port before killing.) + if (!string.IsNullOrEmpty(storedUtc) + && DateTime.TryParse(storedUtc, CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal | DateTimeStyles.AssumeUniversal, out var startedAt)) + { + if ((DateTime.UtcNow - startedAt) > TimeSpan.FromHours(6)) + { + return false; + } + } + + pid = storedPid; + return true; + } + catch + { + return false; + } + } + + /// + public string GetStoredArgsHash() + { + try + { + return EditorPrefs.GetString(EditorPrefKeys.LastLocalHttpServerPidArgsHash, string.Empty); + } + catch + { + return string.Empty; + } + } + + /// + public void ClearTracking() + { + try { EditorPrefs.DeleteKey(EditorPrefKeys.LastLocalHttpServerPid); } catch { } + try { EditorPrefs.DeleteKey(EditorPrefKeys.LastLocalHttpServerPort); } catch { } + try { EditorPrefs.DeleteKey(EditorPrefKeys.LastLocalHttpServerStartedUtc); } catch { } + try { EditorPrefs.DeleteKey(EditorPrefKeys.LastLocalHttpServerPidArgsHash); } catch { } + try { EditorPrefs.DeleteKey(EditorPrefKeys.LastLocalHttpServerPidFilePath); } catch { } + try { EditorPrefs.DeleteKey(EditorPrefKeys.LastLocalHttpServerInstanceToken); } catch { } + } + + /// + public string ComputeShortHash(string input) + { + if (string.IsNullOrEmpty(input)) return string.Empty; + try + { + using var sha = SHA256.Create(); + byte[] bytes = Encoding.UTF8.GetBytes(input); + byte[] hash = sha.ComputeHash(bytes); + // 8 bytes => 16 hex chars is plenty as a stable fingerprint for our purposes. + var sb = new StringBuilder(16); + for (int i = 0; i < 8 && i < hash.Length; i++) + { + sb.Append(hash[i].ToString("x2")); + } + return sb.ToString(); + } + catch + { + return string.Empty; + } + } + + private static string GetProjectRootPath() + { + try + { + // Application.dataPath is "...//Assets" + return Path.GetFullPath(Path.Combine(Application.dataPath, "..")); + } + catch + { + return Application.dataPath; + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Services/Server/PidFileManager.cs.meta b/Packages/MCPForUnity/Editor/Services/Server/PidFileManager.cs.meta new file mode 100644 index 00000000..d3610250 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Server/PidFileManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 57875f281fda94a4ea17cb74d4b13378 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/Server/ProcessDetector.cs b/Packages/MCPForUnity/Editor/Services/Server/ProcessDetector.cs new file mode 100644 index 00000000..b553cb3c --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Server/ProcessDetector.cs @@ -0,0 +1,268 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using MCPForUnity.Editor.Helpers; +using UnityEngine; + +namespace MCPForUnity.Editor.Services.Server +{ + /// + /// Platform-specific process inspection for detecting MCP server processes. + /// + public class ProcessDetector : IProcessDetector + { + /// + public string NormalizeForMatch(string input) + { + if (string.IsNullOrEmpty(input)) return string.Empty; + var sb = new StringBuilder(input.Length); + foreach (char c in input) + { + if (char.IsWhiteSpace(c)) continue; + sb.Append(char.ToLowerInvariant(c)); + } + return sb.ToString(); + } + + /// + public int GetCurrentProcessId() + { + try { return System.Diagnostics.Process.GetCurrentProcess().Id; } + catch { return -1; } + } + + /// + public bool ProcessExists(int pid) + { + try + { + if (Application.platform == RuntimePlatform.WindowsEditor) + { + // On Windows, use tasklist to check if process exists + bool ok = ExecPath.TryRun("tasklist", $"/FI \"PID eq {pid}\"", Application.dataPath, out var stdout, out var stderr, 5000); + string combined = ((stdout ?? string.Empty) + "\n" + (stderr ?? string.Empty)).ToLowerInvariant(); + return ok && combined.Contains(pid.ToString()); + } + + // Unix: ps exits non-zero when PID is not found. + string psPath = "/bin/ps"; + if (!File.Exists(psPath)) psPath = "ps"; + ExecPath.TryRun(psPath, $"-p {pid} -o pid=", Application.dataPath, out var psStdout, out var psStderr, 2000); + string combined2 = ((psStdout ?? string.Empty) + "\n" + (psStderr ?? string.Empty)).Trim(); + return !string.IsNullOrEmpty(combined2) && combined2.Any(char.IsDigit); + } + catch + { + return true; // Assume it exists if we cannot verify. + } + } + + /// + public bool TryGetProcessCommandLine(int pid, out string argsLower) + { + argsLower = string.Empty; + try + { + if (Application.platform == RuntimePlatform.WindowsEditor) + { + // Windows: use wmic to get command line + ExecPath.TryRun("cmd.exe", $"/c wmic process where \"ProcessId={pid}\" get CommandLine /value", Application.dataPath, out var wmicOut, out var wmicErr, 5000); + string wmicCombined = ((wmicOut ?? string.Empty) + "\n" + (wmicErr ?? string.Empty)); + if (!string.IsNullOrEmpty(wmicCombined) && wmicCombined.ToLowerInvariant().Contains("commandline=")) + { + argsLower = NormalizeForMatch(wmicOut ?? string.Empty); + return true; + } + return false; + } + + // Unix: ps -p pid -ww -o args= + string psPath = "/bin/ps"; + if (!File.Exists(psPath)) psPath = "ps"; + + bool ok = ExecPath.TryRun(psPath, $"-p {pid} -ww -o args=", Application.dataPath, out var stdout, out var stderr, 5000); + if (!ok && string.IsNullOrWhiteSpace(stdout)) + { + return false; + } + string combined = ((stdout ?? string.Empty) + "\n" + (stderr ?? string.Empty)).Trim(); + if (string.IsNullOrEmpty(combined)) return false; + // Normalize for matching to tolerate ps wrapping/newlines. + argsLower = NormalizeForMatch(combined); + return true; + } + catch + { + return false; + } + } + + /// + public List GetListeningProcessIdsForPort(int port) + { + var results = new List(); + try + { + string stdout, stderr; + bool success; + + if (Application.platform == RuntimePlatform.WindowsEditor) + { + // Run netstat -ano directly (without findstr) and filter in C#. + // Using findstr in a pipe causes the entire command to return exit code 1 when no matches are found, + // which ExecPath.TryRun interprets as failure. Running netstat alone gives us exit code 0 on success. + success = ExecPath.TryRun("netstat.exe", "-ano", Application.dataPath, out stdout, out stderr); + + // Process stdout regardless of success flag - netstat might still produce valid output + if (!string.IsNullOrEmpty(stdout)) + { + string portSuffix = $":{port}"; + var lines = stdout.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); + foreach (var line in lines) + { + // Windows netstat format: Proto Local Address Foreign Address State PID + // Example: TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 12345 + if (line.Contains("LISTENING") && line.Contains(portSuffix)) + { + var parts = line.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); + // Verify the local address column actually ends with :{port} + // parts[0] = Proto (TCP), parts[1] = Local Address, parts[2] = Foreign Address, parts[3] = State, parts[4] = PID + if (parts.Length >= 5) + { + string localAddr = parts[1]; + if (localAddr.EndsWith(portSuffix) && int.TryParse(parts[parts.Length - 1], out int parsedPid)) + { + results.Add(parsedPid); + } + } + } + } + } + } + else + { + // lsof: only return LISTENers (avoids capturing random clients) + // Use /usr/sbin/lsof directly as it might not be in PATH for Unity + string lsofPath = "/usr/sbin/lsof"; + if (!File.Exists(lsofPath)) lsofPath = "lsof"; // Fallback + + // -nP: avoid DNS/service name lookups; faster and less error-prone + success = ExecPath.TryRun(lsofPath, $"-nP -iTCP:{port} -sTCP:LISTEN -t", Application.dataPath, out stdout, out stderr); + if (success && !string.IsNullOrWhiteSpace(stdout)) + { + var pidStrings = stdout.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); + foreach (var pidString in pidStrings) + { + if (int.TryParse(pidString.Trim(), out int parsedPid)) + { + results.Add(parsedPid); + } + } + } + } + } + catch (Exception ex) + { + McpLog.Warn($"Error checking port {port}: {ex.Message}"); + } + return results.Distinct().ToList(); + } + + /// + public bool LooksLikeMcpServerProcess(int pid) + { + try + { + // Windows best-effort: First check process name with tasklist, then try to get command line with wmic + if (Application.platform == RuntimePlatform.WindowsEditor) + { + // Step 1: Check if process name matches known server executables + ExecPath.TryRun("cmd.exe", $"/c tasklist /FI \"PID eq {pid}\"", Application.dataPath, out var tasklistOut, out var tasklistErr, 5000); + string tasklistCombined = ((tasklistOut ?? string.Empty) + "\n" + (tasklistErr ?? string.Empty)).ToLowerInvariant(); + + // Check for common process names + bool isPythonOrUv = tasklistCombined.Contains("python") || tasklistCombined.Contains("uvx") || tasklistCombined.Contains("uv.exe"); + if (!isPythonOrUv) + { + return false; + } + + // Step 2: Try to get command line with wmic for better validation + ExecPath.TryRun("cmd.exe", $"/c wmic process where \"ProcessId={pid}\" get CommandLine /value", Application.dataPath, out var wmicOut, out var wmicErr, 5000); + string wmicCombined = ((wmicOut ?? string.Empty) + "\n" + (wmicErr ?? string.Empty)).ToLowerInvariant(); + string wmicCompact = NormalizeForMatch(wmicOut ?? string.Empty); + + // If we can see the command line, validate it's our server + if (!string.IsNullOrEmpty(wmicCombined) && wmicCombined.Contains("commandline=")) + { + bool mentionsMcp = wmicCompact.Contains("mcp-for-unity") + || wmicCompact.Contains("mcp_for_unity") + || wmicCompact.Contains("mcpforunity") + || wmicCompact.Contains("mcpforunityserver"); + bool mentionsTransport = wmicCompact.Contains("--transporthttp") || (wmicCompact.Contains("--transport") && wmicCompact.Contains("http")); + bool mentionsUvicorn = wmicCombined.Contains("uvicorn"); + + if (mentionsMcp || mentionsTransport || mentionsUvicorn) + { + return true; + } + } + + // Fall back to just checking for python/uv processes if wmic didn't give us details + // This is less precise but necessary for cases where wmic access is restricted + return isPythonOrUv; + } + + // macOS/Linux: ps -p pid -ww -o comm= -o args= + // Use -ww to avoid truncating long command lines (important for reliably spotting 'mcp-for-unity'). + // Use an absolute ps path to avoid relying on PATH inside the Unity Editor process. + string psPath = "/bin/ps"; + if (!File.Exists(psPath)) psPath = "ps"; + // Important: ExecPath.TryRun returns false when exit code != 0, but ps output can still be useful. + // Always parse stdout/stderr regardless of exit code to avoid false negatives. + ExecPath.TryRun(psPath, $"-p {pid} -ww -o comm= -o args=", Application.dataPath, out var psOut, out var psErr, 5000); + string raw = ((psOut ?? string.Empty) + "\n" + (psErr ?? string.Empty)).Trim(); + string s = raw.ToLowerInvariant(); + string sCompact = NormalizeForMatch(raw); + if (!string.IsNullOrEmpty(s)) + { + bool mentionsMcp = sCompact.Contains("mcp-for-unity") + || sCompact.Contains("mcp_for_unity") + || sCompact.Contains("mcpforunity"); + + // If it explicitly mentions the server package/entrypoint, that is sufficient. + // Note: Check before Unity exclusion since "mcp-for-unity" contains "unity". + if (mentionsMcp) + { + return true; + } + + // Explicitly never kill Unity / Unity Hub processes + // Note: explicit !mentionsMcp is defensive; we already return early for mentionsMcp above. + if (s.Contains("unityhub") || s.Contains("unity hub") || (s.Contains("unity") && !mentionsMcp)) + { + return false; + } + + // Positive indicators + bool mentionsUvx = s.Contains("uvx") || s.Contains(" uvx "); + bool mentionsUv = s.Contains("uv ") || s.Contains("/uv"); + bool mentionsPython = s.Contains("python"); + bool mentionsUvicorn = s.Contains("uvicorn"); + bool mentionsTransport = sCompact.Contains("--transporthttp") || (sCompact.Contains("--transport") && sCompact.Contains("http")); + + // Accept if it looks like uv/uvx/python launching our server package/entrypoint + if ((mentionsUvx || mentionsUv || mentionsPython || mentionsUvicorn) && mentionsTransport) + { + return true; + } + } + } + catch { } + + return false; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Services/Server/ProcessDetector.cs.meta b/Packages/MCPForUnity/Editor/Services/Server/ProcessDetector.cs.meta new file mode 100644 index 00000000..6cd7c465 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Server/ProcessDetector.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4df6fa24a35d74d1cb9b67e40e50b45d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/Server/ProcessTerminator.cs b/Packages/MCPForUnity/Editor/Services/Server/ProcessTerminator.cs new file mode 100644 index 00000000..7e803b11 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Server/ProcessTerminator.cs @@ -0,0 +1,89 @@ +using System; +using System.IO; +using MCPForUnity.Editor.Helpers; +using UnityEngine; + +namespace MCPForUnity.Editor.Services.Server +{ + /// + /// Platform-specific process termination for stopping MCP server processes. + /// + public class ProcessTerminator : IProcessTerminator + { + private readonly IProcessDetector _processDetector; + + /// + /// Creates a new ProcessTerminator with the specified process detector. + /// + /// Process detector for checking process existence + public ProcessTerminator(IProcessDetector processDetector) + { + _processDetector = processDetector ?? throw new ArgumentNullException(nameof(processDetector)); + } + + /// + public bool Terminate(int pid) + { + // CRITICAL: Validate PID before any kill operation. + // On Unix, kill(-1) kills ALL processes the user can signal! + // On Unix, kill(0) signals all processes in the process group. + // PID 1 is init/launchd and must never be killed. + // Only positive PIDs > 1 are valid for targeted termination. + if (pid <= 1) + { + return false; + } + + // Never kill the current Unity process + int currentPid = _processDetector.GetCurrentProcessId(); + if (currentPid > 0 && pid == currentPid) + { + return false; + } + + try + { + string stdout, stderr; + if (Application.platform == RuntimePlatform.WindowsEditor) + { + // taskkill without /F first; fall back to /F if needed. + bool ok = ExecPath.TryRun("taskkill", $"/PID {pid} /T", Application.dataPath, out stdout, out stderr); + if (!ok) + { + ok = ExecPath.TryRun("taskkill", $"/F /PID {pid} /T", Application.dataPath, out stdout, out stderr); + } + return ok; + } + else + { + // Try a graceful termination first, then escalate if the process is still alive. + // Note: `kill -15` can succeed (exit 0) even if the process takes time to exit, + // so we verify and only escalate when needed. + string killPath = "/bin/kill"; + if (!File.Exists(killPath)) killPath = "kill"; + ExecPath.TryRun(killPath, $"-15 {pid}", Application.dataPath, out stdout, out stderr); + + // Wait briefly for graceful shutdown. + var deadline = DateTime.UtcNow + TimeSpan.FromSeconds(8); + while (DateTime.UtcNow < deadline) + { + if (!_processDetector.ProcessExists(pid)) + { + return true; + } + System.Threading.Thread.Sleep(100); + } + + // Escalate. + ExecPath.TryRun(killPath, $"-9 {pid}", Application.dataPath, out stdout, out stderr); + return !_processDetector.ProcessExists(pid); + } + } + catch (Exception ex) + { + McpLog.Error($"Error killing process {pid}: {ex.Message}"); + return false; + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Services/Server/ProcessTerminator.cs.meta b/Packages/MCPForUnity/Editor/Services/Server/ProcessTerminator.cs.meta new file mode 100644 index 00000000..7961fd89 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Server/ProcessTerminator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 900df88b4d0844704af9cb47633d44a9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/Server/ServerCommandBuilder.cs b/Packages/MCPForUnity/Editor/Services/Server/ServerCommandBuilder.cs new file mode 100644 index 00000000..47b46755 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Server/ServerCommandBuilder.cs @@ -0,0 +1,151 @@ +using System; +using System.IO; +using System.Linq; +using MCPForUnity.Editor.Constants; +using MCPForUnity.Editor.Helpers; +using MCPForUnity.Editor.Services; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.Services.Server +{ + /// + /// Builds uvx/server command strings for starting the MCP HTTP server. + /// Handles platform-specific command construction. + /// + public class ServerCommandBuilder : IServerCommandBuilder + { + /// + public bool TryBuildCommand(out string fileName, out string arguments, out string displayCommand, out string error) + { + fileName = null; + arguments = null; + displayCommand = null; + error = null; + + bool useHttpTransport = EditorConfigurationCache.Instance.UseHttpTransport; + if (!useHttpTransport) + { + error = "HTTP transport is disabled. Enable it in the MCP For Unity window first."; + return false; + } + + string httpUrl = HttpEndpointUtility.GetLocalBaseUrl(); + if (!IsLocalUrl(httpUrl)) + { + error = $"The configured URL ({httpUrl}) is not a local address. Local server launch only works for localhost."; + return false; + } + + var (uvxPath, fromUrl, packageName) = AssetPathUtility.GetUvxCommandParts(); + if (string.IsNullOrEmpty(uvxPath)) + { + error = "uv is not installed or found in PATH. Install it or set an override in Advanced Settings."; + return false; + } + + // Use central helper that checks both DevModeForceServerRefresh AND local path detection. + // Note: --reinstall is not supported by uvx, use --no-cache --refresh instead + string devFlags = AssetPathUtility.ShouldForceUvxRefresh() ? "--no-cache --refresh " : string.Empty; + bool projectScopedTools = EditorPrefs.GetBool( + EditorPrefKeys.ProjectScopedToolsLocalHttp, + true + ); + string scopedFlag = projectScopedTools ? " --project-scoped-tools" : string.Empty; + + // Use centralized helper for beta server / prerelease args + string fromArgs = AssetPathUtility.GetBetaServerFromArgs(quoteFromPath: true); + + string args = string.IsNullOrEmpty(fromArgs) + ? $"{devFlags}{packageName} --transport http --http-url {httpUrl}{scopedFlag}" + : $"{devFlags}{fromArgs} {packageName} --transport http --http-url {httpUrl}{scopedFlag}"; + + fileName = uvxPath; + arguments = args; + displayCommand = $"{QuoteIfNeeded(uvxPath)} {args}"; + return true; + } + + /// + public string BuildUvPathFromUvx(string uvxPath) + { + if (string.IsNullOrWhiteSpace(uvxPath)) + { + return uvxPath; + } + + string directory = Path.GetDirectoryName(uvxPath); + string extension = Path.GetExtension(uvxPath); + string uvFileName = "uv" + extension; + + return string.IsNullOrEmpty(directory) + ? uvFileName + : Path.Combine(directory, uvFileName); + } + + /// + public string GetPlatformSpecificPathPrepend() + { + if (Application.platform == RuntimePlatform.OSXEditor) + { + return string.Join(Path.PathSeparator.ToString(), new[] + { + "/opt/homebrew/bin", + "/usr/local/bin", + "/usr/bin", + "/bin" + }); + } + + if (Application.platform == RuntimePlatform.LinuxEditor) + { + return string.Join(Path.PathSeparator.ToString(), new[] + { + "/usr/local/bin", + "/usr/bin", + "/bin" + }); + } + + if (Application.platform == RuntimePlatform.WindowsEditor) + { + string localAppData = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); + string programFiles = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles); + + return string.Join(Path.PathSeparator.ToString(), new[] + { + !string.IsNullOrEmpty(localAppData) ? Path.Combine(localAppData, "Programs", "uv") : null, + !string.IsNullOrEmpty(programFiles) ? Path.Combine(programFiles, "uv") : null + }.Where(p => !string.IsNullOrEmpty(p)).ToArray()); + } + + return null; + } + + /// + public string QuoteIfNeeded(string input) + { + if (string.IsNullOrEmpty(input)) return input; + return input.IndexOf(' ') >= 0 ? $"\"{input}\"" : input; + } + + /// + /// Check if a URL is local (localhost, 127.0.0.1, 0.0.0.0, ::1) + /// + private static bool IsLocalUrl(string url) + { + if (string.IsNullOrEmpty(url)) return false; + + try + { + var uri = new Uri(url); + string host = uri.Host.ToLower(); + return host == "localhost" || host == "127.0.0.1" || host == "0.0.0.0" || host == "::1"; + } + catch + { + return false; + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Services/Server/ServerCommandBuilder.cs.meta b/Packages/MCPForUnity/Editor/Services/Server/ServerCommandBuilder.cs.meta new file mode 100644 index 00000000..8a58c647 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Server/ServerCommandBuilder.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: db917800a5c2948088ede8a5d230b56e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/Server/TerminalLauncher.cs b/Packages/MCPForUnity/Editor/Services/Server/TerminalLauncher.cs new file mode 100644 index 00000000..fd8bd5d3 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Server/TerminalLauncher.cs @@ -0,0 +1,143 @@ +using System; +using System.IO; +using MCPForUnity.Editor.Helpers; +using UnityEngine; + +namespace MCPForUnity.Editor.Services.Server +{ + /// + /// Launches commands in platform-specific terminal windows. + /// Supports macOS Terminal, Windows cmd, and Linux terminal emulators. + /// + public class TerminalLauncher : ITerminalLauncher + { + /// + public string GetProjectRootPath() + { + try + { + // Application.dataPath is "...//Assets" + return Path.GetFullPath(Path.Combine(Application.dataPath, "..")); + } + catch + { + return Application.dataPath; + } + } + + /// + public System.Diagnostics.ProcessStartInfo CreateTerminalProcessStartInfo(string command) + { + if (string.IsNullOrWhiteSpace(command)) + throw new ArgumentException("Command cannot be empty", nameof(command)); + + command = command.Replace("\r", "").Replace("\n", ""); + +#if UNITY_EDITOR_OSX + // macOS: Avoid AppleScript (automation permission prompts). Use a .command script and open it. + string scriptsDir = Path.Combine(GetProjectRootPath(), "Library", "MCPForUnity", "TerminalScripts"); + Directory.CreateDirectory(scriptsDir); + string scriptPath = Path.Combine(scriptsDir, "mcp-terminal.command"); + File.WriteAllText( + scriptPath, + "#!/bin/bash\n" + + "set -e\n" + + "clear\n" + + $"{command}\n"); + ExecPath.TryRun("/bin/chmod", $"+x \"{scriptPath}\"", Application.dataPath, out _, out _, 3000); + return new System.Diagnostics.ProcessStartInfo + { + FileName = "/usr/bin/open", + Arguments = $"-a Terminal \"{scriptPath}\"", + UseShellExecute = false, + CreateNoWindow = true + }; +#elif UNITY_EDITOR_WIN + // Windows: Avoid brittle nested-quote escaping by writing a .cmd script and starting it in a new window. + string scriptsDir = Path.Combine(GetProjectRootPath(), "Library", "MCPForUnity", "TerminalScripts"); + Directory.CreateDirectory(scriptsDir); + string scriptPath = Path.Combine(scriptsDir, "mcp-terminal.cmd"); + File.WriteAllText( + scriptPath, + "@echo off\r\n" + + "cls\r\n" + + command + "\r\n"); + return new System.Diagnostics.ProcessStartInfo + { + FileName = "cmd.exe", + Arguments = $"/c start \"MCP Server\" cmd.exe /k \"{scriptPath}\"", + UseShellExecute = false, + CreateNoWindow = true + }; +#else + // Linux: Try common terminal emulators + // We use bash -c to execute the command, so we must properly quote/escape for bash + // Escape single quotes for the inner bash string + string escapedCommandLinux = command.Replace("'", "'\\''"); + // Wrap the command in single quotes for bash -c + string script = $"'{escapedCommandLinux}; exec bash'"; + // Escape double quotes for the outer Process argument string + string escapedScriptForArg = script.Replace("\"", "\\\""); + string bashCmdArgs = $"bash -c \"{escapedScriptForArg}\""; + + string[] terminals = { "gnome-terminal", "xterm", "konsole", "xfce4-terminal" }; + string terminalCmd = null; + + foreach (var term in terminals) + { + try + { + var which = System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo + { + FileName = "which", + Arguments = term, + UseShellExecute = false, + RedirectStandardOutput = true, + CreateNoWindow = true + }); + which.WaitForExit(5000); // Wait for up to 5 seconds, the command is typically instantaneous + if (which.ExitCode == 0) + { + terminalCmd = term; + break; + } + } + catch { } + } + + if (terminalCmd == null) + { + terminalCmd = "xterm"; // Fallback + } + + // Different terminals have different argument formats + string args; + if (terminalCmd == "gnome-terminal") + { + args = $"-- {bashCmdArgs}"; + } + else if (terminalCmd == "konsole") + { + args = $"-e {bashCmdArgs}"; + } + else if (terminalCmd == "xfce4-terminal") + { + // xfce4-terminal expects -e "command string" or -e command arg + args = $"--hold -e \"{bashCmdArgs.Replace("\"", "\\\"")}\""; + } + else // xterm and others + { + args = $"-hold -e {bashCmdArgs}"; + } + + return new System.Diagnostics.ProcessStartInfo + { + FileName = terminalCmd, + Arguments = args, + UseShellExecute = false, + CreateNoWindow = true + }; +#endif + } + } +} diff --git a/Packages/MCPForUnity/Editor/Services/Server/TerminalLauncher.cs.meta b/Packages/MCPForUnity/Editor/Services/Server/TerminalLauncher.cs.meta new file mode 100644 index 00000000..ec239f76 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Server/TerminalLauncher.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d9693a18d706548b3aae28ea87f1ed08 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/ServerManagementService.cs b/Packages/MCPForUnity/Editor/Services/ServerManagementService.cs new file mode 100644 index 00000000..1df3384f --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/ServerManagementService.cs @@ -0,0 +1,876 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Net.Sockets; +using MCPForUnity.Editor.Constants; +using MCPForUnity.Editor.Helpers; +using MCPForUnity.Editor.Services.Server; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.Services +{ + /// + /// Service for managing MCP server lifecycle + /// + public class ServerManagementService : IServerManagementService + { + private readonly IProcessDetector _processDetector; + private readonly IPidFileManager _pidFileManager; + private readonly IProcessTerminator _processTerminator; + private readonly IServerCommandBuilder _commandBuilder; + private readonly ITerminalLauncher _terminalLauncher; + + /// + /// Creates a new ServerManagementService with default dependencies. + /// + public ServerManagementService() : this(null, null, null, null, null) { } + + /// + /// Creates a new ServerManagementService with injected dependencies (for testing). + /// + /// Process detector implementation (null for default) + /// PID file manager implementation (null for default) + /// Process terminator implementation (null for default) + /// Server command builder implementation (null for default) + /// Terminal launcher implementation (null for default) + public ServerManagementService( + IProcessDetector processDetector, + IPidFileManager pidFileManager = null, + IProcessTerminator processTerminator = null, + IServerCommandBuilder commandBuilder = null, + ITerminalLauncher terminalLauncher = null) + { + _processDetector = processDetector ?? new ProcessDetector(); + _pidFileManager = pidFileManager ?? new PidFileManager(); + _processTerminator = processTerminator ?? new ProcessTerminator(_processDetector); + _commandBuilder = commandBuilder ?? new ServerCommandBuilder(); + _terminalLauncher = terminalLauncher ?? new TerminalLauncher(); + } + + private string QuoteIfNeeded(string s) + { + return _commandBuilder.QuoteIfNeeded(s); + } + + private string NormalizeForMatch(string s) + { + return _processDetector.NormalizeForMatch(s); + } + + private void ClearLocalServerPidTracking() + { + _pidFileManager.ClearTracking(); + } + + private void StoreLocalHttpServerHandshake(string pidFilePath, string instanceToken) + { + _pidFileManager.StoreHandshake(pidFilePath, instanceToken); + } + + private bool TryGetLocalHttpServerHandshake(out string pidFilePath, out string instanceToken) + { + return _pidFileManager.TryGetHandshake(out pidFilePath, out instanceToken); + } + + private string GetLocalHttpServerPidFilePath(int port) + { + return _pidFileManager.GetPidFilePath(port); + } + + private bool TryReadPidFromPidFile(string pidFilePath, out int pid) + { + return _pidFileManager.TryReadPid(pidFilePath, out pid); + } + + private bool TryProcessCommandLineContainsInstanceToken(int pid, string instanceToken, out bool containsToken) + { + containsToken = false; + if (pid <= 0 || string.IsNullOrEmpty(instanceToken)) + { + return false; + } + + try + { + string tokenNeedle = instanceToken.ToLowerInvariant(); + + if (Application.platform == RuntimePlatform.WindowsEditor) + { + // Query full command line so we can validate token (reduces PID reuse risk). + // Use CIM via PowerShell (wmic is deprecated). + string ps = $"(Get-CimInstance Win32_Process -Filter \\\"ProcessId={pid}\\\").CommandLine"; + bool ok = ExecPath.TryRun("powershell", $"-NoProfile -Command \"{ps}\"", Application.dataPath, out var stdout, out var stderr, 5000); + string combined = ((stdout ?? string.Empty) + "\n" + (stderr ?? string.Empty)).ToLowerInvariant(); + containsToken = combined.Contains(tokenNeedle); + return ok; + } + + if (TryGetUnixProcessArgs(pid, out var argsLowerNow)) + { + containsToken = argsLowerNow.Contains(NormalizeForMatch(tokenNeedle)); + return true; + } + } + catch { } + + return false; + } + + private string ComputeShortHash(string input) + { + return _pidFileManager.ComputeShortHash(input); + } + + private bool TryGetStoredLocalServerPid(int expectedPort, out int pid) + { + return _pidFileManager.TryGetStoredPid(expectedPort, out pid); + } + + private string GetStoredArgsHash() + { + return _pidFileManager.GetStoredArgsHash(); + } + + /// + /// Clear the local uvx cache for the MCP server package + /// + /// True if successful, false otherwise + public bool ClearUvxCache() + { + try + { + string uvxPath = MCPServiceLocator.Paths.GetUvxPath(); + string uvCommand = BuildUvPathFromUvx(uvxPath); + + // Get the package name + string packageName = "mcp-for-unity"; + + // Run uvx cache clean command + string args = $"cache clean {packageName}"; + + bool success; + string stdout; + string stderr; + + success = ExecuteUvCommand(uvCommand, args, out stdout, out stderr); + + if (success) + { + McpLog.Info($"uv cache cleared successfully: {stdout}"); + return true; + } + string combinedOutput = string.Join( + Environment.NewLine, + new[] { stderr, stdout }.Where(s => !string.IsNullOrWhiteSpace(s)).Select(s => s.Trim())); + + string lockHint = (!string.IsNullOrEmpty(combinedOutput) && + combinedOutput.IndexOf("currently in-use", StringComparison.OrdinalIgnoreCase) >= 0) + ? "Another uv process may be holding the cache lock; wait a moment and try again or clear with '--force' from a terminal." + : string.Empty; + + if (string.IsNullOrEmpty(combinedOutput)) + { + combinedOutput = "Command failed with no output. Ensure uv is installed, on PATH, or set an override in Advanced Settings."; + } + + McpLog.Error( + $"Failed to clear uv cache using '{uvCommand} {args}'. " + + $"Details: {combinedOutput}{(string.IsNullOrEmpty(lockHint) ? string.Empty : " Hint: " + lockHint)}"); + return false; + } + catch (Exception ex) + { + McpLog.Error($"Error clearing uv cache: {ex.Message}"); + return false; + } + } + + private bool ExecuteUvCommand(string uvCommand, string args, out string stdout, out string stderr) + { + stdout = null; + stderr = null; + + string uvxPath = MCPServiceLocator.Paths.GetUvxPath(); + string uvPath = BuildUvPathFromUvx(uvxPath); + + if (!string.Equals(uvCommand, uvPath, StringComparison.OrdinalIgnoreCase)) + { + return ExecPath.TryRun(uvCommand, args, Application.dataPath, out stdout, out stderr, 30000); + } + + string command = $"{uvPath} {args}"; + string extraPathPrepend = GetPlatformSpecificPathPrepend(); + + if (Application.platform == RuntimePlatform.WindowsEditor) + { + return ExecPath.TryRun("cmd.exe", $"/c {command}", Application.dataPath, out stdout, out stderr, 30000, extraPathPrepend); + } + + string shell = File.Exists("/bin/bash") ? "/bin/bash" : "/bin/sh"; + + if (!string.IsNullOrEmpty(shell) && File.Exists(shell)) + { + string escaped = command.Replace("\"", "\\\""); + return ExecPath.TryRun(shell, $"-lc \"{escaped}\"", Application.dataPath, out stdout, out stderr, 30000, extraPathPrepend); + } + + return ExecPath.TryRun(uvPath, args, Application.dataPath, out stdout, out stderr, 30000, extraPathPrepend); + } + + private string BuildUvPathFromUvx(string uvxPath) + { + return _commandBuilder.BuildUvPathFromUvx(uvxPath); + } + + private string GetPlatformSpecificPathPrepend() + { + return _commandBuilder.GetPlatformSpecificPathPrepend(); + } + + /// + /// Start the local HTTP server in a separate terminal window. + /// Stops any existing server on the port and clears the uvx cache first. + /// + public bool StartLocalHttpServer() + { + /// Clean stale Python build artifacts when using a local dev server path + AssetPathUtility.CleanLocalServerBuildArtifacts(); + + if (!TryGetLocalHttpServerCommandParts(out _, out _, out var displayCommand, out var error)) + { + EditorUtility.DisplayDialog( + "Cannot Start HTTP Server", + error ?? "The server command could not be constructed with the current settings.", + "OK"); + return false; + } + + // First, try to stop any existing server (quietly; we'll only warn if the port remains occupied). + StopLocalHttpServerInternal(quiet: true); + + // If the port is still occupied, don't start and explain why (avoid confusing "refusing to stop" warnings). + try + { + string httpUrl = HttpEndpointUtility.GetLocalBaseUrl(); + if (Uri.TryCreate(httpUrl, UriKind.Absolute, out var uri) && uri.Port > 0) + { + var remaining = GetListeningProcessIdsForPort(uri.Port); + if (remaining.Count > 0) + { + EditorUtility.DisplayDialog( + "Port In Use", + $"Cannot start the local HTTP server because port {uri.Port} is already in use by PID(s): " + + $"{string.Join(", ", remaining)}\n\n" + + "MCP For Unity will not terminate unrelated processes. Stop the owning process manually or change the HTTP URL.", + "OK"); + return false; + } + } + } + catch { } + + // Note: Dev mode cache-busting is handled by `uvx --no-cache --refresh` in the generated command. + + // Create a per-launch token + pidfile path so Stop can be deterministic without relying on port/PID heuristics. + string baseUrlForPid = HttpEndpointUtility.GetLocalBaseUrl(); + Uri.TryCreate(baseUrlForPid, UriKind.Absolute, out var uriForPid); + int portForPid = uriForPid?.Port ?? 0; + string instanceToken = Guid.NewGuid().ToString("N"); + string pidFilePath = portForPid > 0 ? GetLocalHttpServerPidFilePath(portForPid) : null; + + string launchCommand = displayCommand; + if (!string.IsNullOrEmpty(pidFilePath)) + { + launchCommand = $"{displayCommand} --pidfile {QuoteIfNeeded(pidFilePath)} --unity-instance-token {instanceToken}"; + } + + if (EditorUtility.DisplayDialog( + "Start Local HTTP Server", + $"This will start the MCP server in HTTP mode in a new terminal window:\n\n{launchCommand}\n\n" + + "Continue?", + "Start Server", + "Cancel")) + { + try + { + // Clear any stale handshake state from prior launches. + ClearLocalServerPidTracking(); + + // Best-effort: delete stale pidfile if it exists. + try + { + if (!string.IsNullOrEmpty(pidFilePath) && File.Exists(pidFilePath)) + { + DeletePidFile(pidFilePath); + } + } + catch { } + + // Launch the server in a new terminal window (keeps user-visible logs). + var startInfo = CreateTerminalProcessStartInfo(launchCommand); + System.Diagnostics.Process.Start(startInfo); + if (!string.IsNullOrEmpty(pidFilePath)) + { + StoreLocalHttpServerHandshake(pidFilePath, instanceToken); + } + McpLog.Info($"Started local HTTP server in terminal: {launchCommand}"); + return true; + } + catch (Exception ex) + { + McpLog.Error($"Failed to start server: {ex.Message}"); + EditorUtility.DisplayDialog( + "Error", + $"Failed to start server: {ex.Message}", + "OK"); + return false; + } + } + + return false; + } + + /// + /// Stop the local HTTP server by finding the process listening on the configured port + /// + public bool StopLocalHttpServer() + { + return StopLocalHttpServerInternal(quiet: false); + } + + public bool StopManagedLocalHttpServer() + { + if (!TryGetLocalHttpServerHandshake(out var pidFilePath, out _)) + { + return false; + } + + int port = 0; + if (!TryGetPortFromPidFilePath(pidFilePath, out port) || port <= 0) + { + string baseUrl = HttpEndpointUtility.GetLocalBaseUrl(); + if (IsLocalUrl(baseUrl) + && Uri.TryCreate(baseUrl, UriKind.Absolute, out var uri) + && uri.Port > 0) + { + port = uri.Port; + } + } + + if (port <= 0) + { + return false; + } + + return StopLocalHttpServerInternal(quiet: true, portOverride: port, allowNonLocalUrl: true); + } + + public bool IsLocalHttpServerRunning() + { + try + { + string httpUrl = HttpEndpointUtility.GetLocalBaseUrl(); + if (!IsLocalUrl(httpUrl)) + { + return false; + } + + if (!Uri.TryCreate(httpUrl, UriKind.Absolute, out var uri) || uri.Port <= 0) + { + return false; + } + + int port = uri.Port; + + // Handshake path: if we have a pidfile+token and the PID is still the listener, treat as running. + if (TryGetLocalHttpServerHandshake(out var pidFilePath, out var instanceToken) + && TryReadPidFromPidFile(pidFilePath, out var pidFromFile) + && pidFromFile > 0) + { + var pidsNow = GetListeningProcessIdsForPort(port); + if (pidsNow.Contains(pidFromFile)) + { + return true; + } + } + + var pids = GetListeningProcessIdsForPort(port); + if (pids.Count == 0) + { + return false; + } + + // Strong signal: stored PID is still the listener. + if (TryGetStoredLocalServerPid(port, out int storedPid) && storedPid > 0) + { + if (pids.Contains(storedPid)) + { + return true; + } + } + + // Best-effort: if anything listening looks like our server, treat as running. + foreach (var pid in pids) + { + if (pid <= 0) continue; + if (LooksLikeMcpServerProcess(pid)) + { + return true; + } + } + + return false; + } + catch + { + return false; + } + } + + public bool IsLocalHttpServerReachable() + { + try + { + string httpUrl = HttpEndpointUtility.GetLocalBaseUrl(); + if (!IsLocalUrl(httpUrl)) + { + return false; + } + + if (!Uri.TryCreate(httpUrl, UriKind.Absolute, out var uri) || uri.Port <= 0) + { + return false; + } + + return TryConnectToLocalPort(uri.Host, uri.Port, timeoutMs: 50); + } + catch + { + return false; + } + } + + private static bool TryConnectToLocalPort(string host, int port, int timeoutMs) + { + try + { + if (string.IsNullOrEmpty(host)) + { + host = "127.0.0.1"; + } + + var hosts = new HashSet(StringComparer.OrdinalIgnoreCase) { host }; + if (host == "localhost" || host == "0.0.0.0") + { + hosts.Add("127.0.0.1"); + } + if (host == "::" || host == "0:0:0:0:0:0:0:0") + { + hosts.Add("::1"); + } + + foreach (var target in hosts) + { + try + { + using (var client = new TcpClient()) + { + var connectTask = client.ConnectAsync(target, port); + if (connectTask.Wait(timeoutMs) && client.Connected) + { + return true; + } + } + } + catch + { + // Ignore per-host failures. + } + } + } + catch + { + // Ignore probe failures and treat as unreachable. + } + + return false; + } + + private bool StopLocalHttpServerInternal(bool quiet, int? portOverride = null, bool allowNonLocalUrl = false) + { + string httpUrl = HttpEndpointUtility.GetLocalBaseUrl(); + if (!allowNonLocalUrl && !IsLocalUrl(httpUrl)) + { + if (!quiet) + { + McpLog.Warn("Cannot stop server: URL is not local."); + } + return false; + } + + try + { + int port = 0; + if (portOverride.HasValue) + { + port = portOverride.Value; + } + else + { + var uri = new Uri(httpUrl); + port = uri.Port; + } + + if (port <= 0) + { + if (!quiet) + { + McpLog.Warn("Cannot stop server: Invalid port."); + } + return false; + } + + // Guardrails: + // - Never terminate the Unity Editor process. + // - Only terminate processes that look like the MCP server (uv/uvx/python running mcp-for-unity). + // This prevents accidental termination of unrelated services (including Unity itself). + int unityPid = GetCurrentProcessIdSafe(); + bool stoppedAny = false; + + // Preferred deterministic stop path: if we have a pidfile+token from a Unity-managed launch, + // validate and terminate exactly that PID. + if (TryGetLocalHttpServerHandshake(out var pidFilePath, out var instanceToken)) + { + // Prefer deterministic stop when Unity started the server (pidfile+token). + // If the pidfile isn't available yet (fast quit after start), we can optionally fall back + // to port-based heuristics when a port override was supplied (managed-stop path). + if (!TryReadPidFromPidFile(pidFilePath, out var pidFromFile) || pidFromFile <= 0) + { + if (!portOverride.HasValue) + { + if (!quiet) + { + McpLog.Warn( + $"Cannot stop local HTTP server on port {port}: pidfile not available yet at '{pidFilePath}'. " + + "If you just started the server, wait a moment and try again."); + } + return false; + } + + // Managed-stop fallback: proceed with port-based heuristics below. + // We intentionally do NOT clear handshake state here; it will be cleared if we successfully + // stop a server process and/or the port is freed. + } + else + { + // Never kill Unity/Hub. + if (unityPid > 0 && pidFromFile == unityPid) + { + if (!quiet) + { + McpLog.Warn($"Refusing to stop port {port}: pidfile PID {pidFromFile} is the Unity Editor process."); + } + } + else + { + var listeners = GetListeningProcessIdsForPort(port); + if (listeners.Count == 0) + { + // Nothing is listening anymore; clear stale handshake state. + try { DeletePidFile(pidFilePath); } catch { } + ClearLocalServerPidTracking(); + if (!quiet) + { + McpLog.Info($"No process found listening on port {port}"); + } + return false; + } + bool pidIsListener = listeners.Contains(pidFromFile); + bool tokenQueryOk = TryProcessCommandLineContainsInstanceToken(pidFromFile, instanceToken, out bool tokenMatches); + bool allowKill; + if (tokenQueryOk) + { + allowKill = tokenMatches; + } + else + { + // If token validation is unavailable (e.g. Windows CIM permission issues), + // fall back to a stricter heuristic: only allow stop if the PID still looks like our server. + allowKill = LooksLikeMcpServerProcess(pidFromFile); + } + + if (pidIsListener && allowKill) + { + if (TerminateProcess(pidFromFile)) + { + stoppedAny = true; + try { DeletePidFile(pidFilePath); } catch { } + ClearLocalServerPidTracking(); + if (!quiet) + { + McpLog.Info($"Stopped local HTTP server on port {port} (PID: {pidFromFile})"); + } + return true; + } + if (!quiet) + { + McpLog.Warn($"Failed to terminate local HTTP server on port {port} (PID: {pidFromFile})."); + } + return false; + } + if (!quiet) + { + McpLog.Warn( + $"Refusing to stop port {port}: pidfile PID {pidFromFile} failed validation " + + $"(listener={pidIsListener}, tokenMatch={tokenMatches}, tokenQueryOk={tokenQueryOk})."); + } + return false; + } + } + } + + var pids = GetListeningProcessIdsForPort(port); + if (pids.Count == 0) + { + if (stoppedAny) + { + // We stopped what Unity started; the port is now free. + if (!quiet) + { + McpLog.Info($"Stopped local HTTP server on port {port}"); + } + ClearLocalServerPidTracking(); + return true; + } + + if (!quiet) + { + McpLog.Info($"No process found listening on port {port}"); + } + ClearLocalServerPidTracking(); + return false; + } + + // Prefer killing the PID that we previously observed binding this port (if still valid). + if (TryGetStoredLocalServerPid(port, out int storedPid)) + { + if (pids.Contains(storedPid)) + { + string expectedHash = string.Empty; + expectedHash = GetStoredArgsHash(); + + // Prefer a fingerprint match (reduces PID reuse risk). If missing (older installs), + // fall back to a looser check to avoid leaving orphaned servers after domain reload. + if (TryGetUnixProcessArgs(storedPid, out var storedArgsLowerNow)) + { + // Never kill Unity/Hub. + // Note: "mcp-for-unity" includes "unity", so detect MCP indicators first. + bool storedMentionsMcp = storedArgsLowerNow.Contains("mcp-for-unity") + || storedArgsLowerNow.Contains("mcp_for_unity") + || storedArgsLowerNow.Contains("mcpforunity"); + if (storedArgsLowerNow.Contains("unityhub") + || storedArgsLowerNow.Contains("unity hub") + || (storedArgsLowerNow.Contains("unity") && !storedMentionsMcp)) + { + if (!quiet) + { + McpLog.Warn($"Refusing to stop port {port}: stored PID {storedPid} appears to be a Unity process."); + } + } + else + { + bool allowKill = false; + if (!string.IsNullOrEmpty(expectedHash)) + { + allowKill = string.Equals(expectedHash, ComputeShortHash(storedArgsLowerNow), StringComparison.OrdinalIgnoreCase); + } + else + { + // Older versions didn't store a fingerprint; accept common server indicators. + allowKill = storedArgsLowerNow.Contains("uvicorn") + || storedArgsLowerNow.Contains("fastmcp") + || storedArgsLowerNow.Contains("mcpforunity") + || storedArgsLowerNow.Contains("mcp-for-unity") + || storedArgsLowerNow.Contains("mcp_for_unity") + || storedArgsLowerNow.Contains("uvx") + || storedArgsLowerNow.Contains("python"); + } + + if (allowKill && TerminateProcess(storedPid)) + { + if (!quiet) + { + McpLog.Info($"Stopped local HTTP server on port {port} (PID: {storedPid})"); + } + stoppedAny = true; + ClearLocalServerPidTracking(); + // Refresh the PID list to avoid double-work. + pids = GetListeningProcessIdsForPort(port); + } + else if (!allowKill && !quiet) + { + McpLog.Warn($"Refusing to stop port {port}: stored PID {storedPid} did not match expected server fingerprint."); + } + } + } + } + else + { + // Stale PID (no longer listening). Clear. + ClearLocalServerPidTracking(); + } + } + + foreach (var pid in pids) + { + if (pid <= 0) continue; + if (unityPid > 0 && pid == unityPid) + { + if (!quiet) + { + McpLog.Warn($"Refusing to stop port {port}: owning PID appears to be the Unity Editor process (PID {pid})."); + } + continue; + } + + if (!LooksLikeMcpServerProcess(pid)) + { + if (!quiet) + { + McpLog.Warn($"Refusing to stop port {port}: owning PID {pid} does not look like mcp-for-unity."); + } + continue; + } + + if (TerminateProcess(pid)) + { + McpLog.Info($"Stopped local HTTP server on port {port} (PID: {pid})"); + stoppedAny = true; + } + else + { + if (!quiet) + { + McpLog.Warn($"Failed to stop process PID {pid} on port {port}"); + } + } + } + + if (stoppedAny) + { + ClearLocalServerPidTracking(); + } + return stoppedAny; + } + catch (Exception ex) + { + if (!quiet) + { + McpLog.Error($"Failed to stop server: {ex.Message}"); + } + return false; + } + } + + private bool TryGetUnixProcessArgs(int pid, out string argsLower) + { + return _processDetector.TryGetProcessCommandLine(pid, out argsLower); + } + + private bool TryGetPortFromPidFilePath(string pidFilePath, out int port) + { + return _pidFileManager.TryGetPortFromPidFilePath(pidFilePath, out port); + } + + private void DeletePidFile(string pidFilePath) + { + _pidFileManager.DeletePidFile(pidFilePath); + } + + private List GetListeningProcessIdsForPort(int port) + { + return _processDetector.GetListeningProcessIdsForPort(port); + } + + private int GetCurrentProcessIdSafe() + { + return _processDetector.GetCurrentProcessId(); + } + + private bool LooksLikeMcpServerProcess(int pid) + { + return _processDetector.LooksLikeMcpServerProcess(pid); + } + + private bool TerminateProcess(int pid) + { + return _processTerminator.Terminate(pid); + } + + /// + /// Attempts to build the command used for starting the local HTTP server + /// + public bool TryGetLocalHttpServerCommand(out string command, out string error) + { + command = null; + error = null; + if (!TryGetLocalHttpServerCommandParts(out var fileName, out var args, out var displayCommand, out error)) + { + return false; + } + + // Maintain existing behavior: return a single command string suitable for display/copy. + command = displayCommand; + return true; + } + + private bool TryGetLocalHttpServerCommandParts(out string fileName, out string arguments, out string displayCommand, out string error) + { + return _commandBuilder.TryBuildCommand(out fileName, out arguments, out displayCommand, out error); + } + + /// + /// Check if the configured HTTP URL is a local address + /// + public bool IsLocalUrl() + { + string httpUrl = HttpEndpointUtility.GetLocalBaseUrl(); + return IsLocalUrl(httpUrl); + } + + /// + /// Check if a URL is local (localhost, 127.0.0.1, 0.0.0.0) + /// + private static bool IsLocalUrl(string url) + { + if (string.IsNullOrEmpty(url)) return false; + + try + { + var uri = new Uri(url); + string host = uri.Host.ToLower(); + return host == "localhost" || host == "127.0.0.1" || host == "0.0.0.0" || host == "::1"; + } + catch + { + return false; + } + } + + /// + /// Check if the local HTTP server can be started + /// + public bool CanStartLocalServer() + { + bool useHttpTransport = EditorConfigurationCache.Instance.UseHttpTransport; + return useHttpTransport && IsLocalUrl(); + } + + private System.Diagnostics.ProcessStartInfo CreateTerminalProcessStartInfo(string command) + { + return _terminalLauncher.CreateTerminalProcessStartInfo(command); + } + } +} diff --git a/Packages/MCPForUnity/Editor/Services/ServerManagementService.cs.meta b/Packages/MCPForUnity/Editor/Services/ServerManagementService.cs.meta new file mode 100644 index 00000000..8b0fea06 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/ServerManagementService.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8e60df35c5a76462d8aaa8078da86d75 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/StdioBridgeReloadHandler.cs b/Packages/MCPForUnity/Editor/Services/StdioBridgeReloadHandler.cs new file mode 100644 index 00000000..a7c5f39d --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/StdioBridgeReloadHandler.cs @@ -0,0 +1,116 @@ +using System; +using MCPForUnity.Editor.Constants; +using MCPForUnity.Editor.Helpers; +using MCPForUnity.Editor.Services.Transport; +using MCPForUnity.Editor.Services.Transport.Transports; +using UnityEditor; + +namespace MCPForUnity.Editor.Services +{ + /// + /// Ensures the legacy stdio bridge resumes after domain reloads, mirroring the HTTP handler. + /// + [InitializeOnLoad] + internal static class StdioBridgeReloadHandler + { + static StdioBridgeReloadHandler() + { + AssemblyReloadEvents.beforeAssemblyReload += OnBeforeAssemblyReload; + AssemblyReloadEvents.afterAssemblyReload += OnAfterAssemblyReload; + } + + private static void OnBeforeAssemblyReload() + { + try + { + // Only persist resume intent when stdio is the active transport and the bridge is running. + bool useHttp = EditorConfigurationCache.Instance.UseHttpTransport; + // Check both TransportManager AND StdioBridgeHost directly, because CI starts via StdioBridgeHost + // bypassing TransportManager state. + bool tmRunning = MCPServiceLocator.TransportManager.IsRunning(TransportMode.Stdio); + bool hostRunning = StdioBridgeHost.IsRunning; + bool isRunning = tmRunning || hostRunning; + bool shouldResume = !useHttp && isRunning; + + if (shouldResume) + { + EditorPrefs.SetBool(EditorPrefKeys.ResumeStdioAfterReload, true); + + // Stop only the stdio bridge; leave HTTP untouched if it is running concurrently. + var stopTask = MCPServiceLocator.TransportManager.StopAsync(TransportMode.Stdio); + + // Wait for stop to complete (which deletes the status file) + try { stopTask.Wait(500); } catch { } + + // Write reloading status so clients don't think we vanished + StdioBridgeHost.WriteHeartbeat(true, "reloading"); + } + else + { + EditorPrefs.DeleteKey(EditorPrefKeys.ResumeStdioAfterReload); + } + } + catch (Exception ex) + { + McpLog.Warn($"Failed to persist stdio reload flag: {ex.Message}"); + } + } + + private static void OnAfterAssemblyReload() + { + bool resume = false; + try + { + bool resumeFlag = EditorPrefs.GetBool(EditorPrefKeys.ResumeStdioAfterReload, false); + bool useHttp = EditorConfigurationCache.Instance.UseHttpTransport; + resume = resumeFlag && !useHttp; + + // If we're not going to resume, clear the flag immediately to avoid stuck "Resuming..." state + if (!resume) + { + EditorPrefs.DeleteKey(EditorPrefKeys.ResumeStdioAfterReload); + } + } + catch (Exception ex) + { + McpLog.Warn($"Failed to read stdio reload flag: {ex.Message}"); + } + + if (!resume) + { + return; + } + + // Restart via TransportManager so state stays in sync; if it fails (port busy), rely on UI to retry. + TryStartBridgeImmediate(); + } + + private static void TryStartBridgeImmediate() + { + var startTask = MCPServiceLocator.TransportManager.StartAsync(TransportMode.Stdio); + startTask.ContinueWith(t => + { + // Clear the flag after attempting to start (success or failure). + // This prevents getting stuck in "Resuming..." state. + // We do this synchronously on the continuation thread - it's safe because + // EditorPrefs operations are thread-safe and any new reload will set the flag + // fresh in OnBeforeAssemblyReload before we get here. + try { EditorPrefs.DeleteKey(EditorPrefKeys.ResumeStdioAfterReload); } catch { } + + if (t.IsFaulted) + { + var baseEx = t.Exception?.GetBaseException(); + McpLog.Warn($"Failed to resume stdio bridge after reload: {baseEx?.Message}"); + return; + } + if (!t.Result) + { + McpLog.Warn("Failed to resume stdio bridge after domain reload"); + return; + } + + MCPForUnity.Editor.Windows.MCPForUnityEditorWindow.RequestHealthVerification(); + }, System.Threading.Tasks.TaskScheduler.Default); + } + } +} diff --git a/Packages/MCPForUnity/Editor/Services/StdioBridgeReloadHandler.cs.meta b/Packages/MCPForUnity/Editor/Services/StdioBridgeReloadHandler.cs.meta new file mode 100644 index 00000000..d4e43fa9 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/StdioBridgeReloadHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6e603c72a87974cf5b495cd683165fbf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/TestJobManager.cs b/Packages/MCPForUnity/Editor/Services/TestJobManager.cs new file mode 100644 index 00000000..bf2ffec4 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/TestJobManager.cs @@ -0,0 +1,673 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using MCPForUnity.Editor.Helpers; +using Newtonsoft.Json; +using UnityEditor; +using UnityEditorInternal; +using UnityEditor.TestTools.TestRunner.Api; + +namespace MCPForUnity.Editor.Services +{ + internal enum TestJobStatus + { + Running, + Succeeded, + Failed + } + + internal sealed class TestJobFailure + { + public string FullName { get; set; } + public string Message { get; set; } + } + + internal sealed class TestJob + { + public string JobId { get; set; } + public TestJobStatus Status { get; set; } + public string Mode { get; set; } + public long StartedUnixMs { get; set; } + public long? FinishedUnixMs { get; set; } + public long LastUpdateUnixMs { get; set; } + public int? TotalTests { get; set; } + public int CompletedTests { get; set; } + public string CurrentTestFullName { get; set; } + public long? CurrentTestStartedUnixMs { get; set; } + public string LastFinishedTestFullName { get; set; } + public long? LastFinishedUnixMs { get; set; } + public List FailuresSoFar { get; set; } + public string Error { get; set; } + public TestRunResult Result { get; set; } + } + + /// + /// Tracks async test jobs started via MCP tools. This is not intended to capture manual Test Runner UI runs. + /// + internal static class TestJobManager + { + // Keep this small to avoid ballooning payloads during polling. + private const int FailureCap = 25; + private const long StuckThresholdMs = 60_000; + private const long InitializationTimeoutMs = 15_000; // 15 seconds to call OnRunStarted, else fail + private const int MaxJobsToKeep = 10; + private const long MinPersistIntervalMs = 1000; // Throttle persistence to reduce overhead + + // SessionState survives domain reloads within the same Unity Editor session. + private const string SessionKeyJobs = "MCPForUnity.TestJobsV1"; + private const string SessionKeyCurrentJobId = "MCPForUnity.CurrentTestJobIdV1"; + + private static readonly object LockObj = new(); + private static readonly Dictionary Jobs = new(); + private static string _currentJobId; + private static long _lastPersistUnixMs; + + static TestJobManager() + { + // Restore after domain reloads (e.g., compilation while a job is running). + TryRestoreFromSessionState(); + } + + public static string CurrentJobId + { + get { lock (LockObj) return _currentJobId; } + } + + public static bool HasRunningJob + { + get + { + lock (LockObj) + { + return !string.IsNullOrEmpty(_currentJobId); + } + } + } + + /// + /// Force-clears any stuck or orphaned test job. Call this when tests get stuck due to + /// assembly reloads or other interruptions. + /// + /// True if a job was cleared, false if no running job exists. + public static bool ClearStuckJob() + { + bool cleared = false; + lock (LockObj) + { + if (string.IsNullOrEmpty(_currentJobId)) + { + return false; + } + + if (Jobs.TryGetValue(_currentJobId, out var job) && job.Status == TestJobStatus.Running) + { + long now = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(); + job.Status = TestJobStatus.Failed; + job.Error = "Job cleared manually (stuck or orphaned)"; + job.FinishedUnixMs = now; + job.LastUpdateUnixMs = now; + McpLog.Warn($"[TestJobManager] Manually cleared stuck job {_currentJobId}"); + cleared = true; + } + + _currentJobId = null; + } + PersistToSessionState(force: true); + return cleared; + } + + private sealed class PersistedState + { + public string current_job_id { get; set; } + public List jobs { get; set; } + } + + private sealed class PersistedJob + { + public string job_id { get; set; } + public string status { get; set; } + public string mode { get; set; } + public long started_unix_ms { get; set; } + public long? finished_unix_ms { get; set; } + public long last_update_unix_ms { get; set; } + public int? total_tests { get; set; } + public int completed_tests { get; set; } + public string current_test_full_name { get; set; } + public long? current_test_started_unix_ms { get; set; } + public string last_finished_test_full_name { get; set; } + public long? last_finished_unix_ms { get; set; } + public List failures_so_far { get; set; } + public string error { get; set; } + } + + private static TestJobStatus ParseStatus(string status) + { + if (string.IsNullOrWhiteSpace(status)) + { + return TestJobStatus.Running; + } + + string s = status.Trim().ToLowerInvariant(); + return s switch + { + "succeeded" => TestJobStatus.Succeeded, + "failed" => TestJobStatus.Failed, + _ => TestJobStatus.Running + }; + } + + private static void TryRestoreFromSessionState() + { + try + { + string json = SessionState.GetString(SessionKeyJobs, string.Empty); + if (string.IsNullOrWhiteSpace(json)) + { + var legacy = SessionState.GetString(SessionKeyCurrentJobId, string.Empty); + _currentJobId = string.IsNullOrWhiteSpace(legacy) ? null : legacy; + return; + } + + var state = JsonConvert.DeserializeObject(json); + if (state?.jobs == null) + { + return; + } + + lock (LockObj) + { + Jobs.Clear(); + foreach (var pj in state.jobs) + { + if (pj == null || string.IsNullOrWhiteSpace(pj.job_id)) + { + continue; + } + + Jobs[pj.job_id] = new TestJob + { + JobId = pj.job_id, + Status = ParseStatus(pj.status), + Mode = pj.mode, + StartedUnixMs = pj.started_unix_ms, + FinishedUnixMs = pj.finished_unix_ms, + LastUpdateUnixMs = pj.last_update_unix_ms, + TotalTests = pj.total_tests, + CompletedTests = pj.completed_tests, + CurrentTestFullName = pj.current_test_full_name, + CurrentTestStartedUnixMs = pj.current_test_started_unix_ms, + LastFinishedTestFullName = pj.last_finished_test_full_name, + LastFinishedUnixMs = pj.last_finished_unix_ms, + FailuresSoFar = pj.failures_so_far ?? new List(), + Error = pj.error, + // Intentionally not persisted to avoid ballooning SessionState. + Result = null + }; + } + + _currentJobId = string.IsNullOrWhiteSpace(state.current_job_id) ? null : state.current_job_id; + if (!string.IsNullOrEmpty(_currentJobId) && !Jobs.ContainsKey(_currentJobId)) + { + _currentJobId = null; + } + + // Detect and clean up stale "running" jobs that were orphaned by domain reload. + // After a domain reload, TestRunStatus resets to not-running, but _currentJobId + // may still be set. If the job hasn't been updated recently, it's likely orphaned. + if (!string.IsNullOrEmpty(_currentJobId) && Jobs.TryGetValue(_currentJobId, out var currentJob)) + { + if (currentJob.Status == TestJobStatus.Running) + { + long now = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(); + long staleCutoffMs = 5 * 60 * 1000; // 5 minutes + if (now - currentJob.LastUpdateUnixMs > staleCutoffMs) + { + McpLog.Warn($"[TestJobManager] Clearing stale job {_currentJobId} (last update {(now - currentJob.LastUpdateUnixMs) / 1000}s ago)"); + currentJob.Status = TestJobStatus.Failed; + currentJob.Error = "Job orphaned after domain reload"; + currentJob.FinishedUnixMs = now; + _currentJobId = null; + } + } + } + } + } + catch (Exception ex) + { + // Restoration is best-effort; never block editor load. + McpLog.Warn($"[TestJobManager] Failed to restore SessionState: {ex.Message}"); + } + } + + private static void PersistToSessionState(bool force = false) + { + long now = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(); + + // Throttle non-critical updates to reduce overhead during large test runs + if (!force && (now - _lastPersistUnixMs) < MinPersistIntervalMs) + { + return; + } + + try + { + PersistedState snapshot; + lock (LockObj) + { + var jobs = Jobs.Values + .OrderByDescending(j => j.LastUpdateUnixMs) + .Take(MaxJobsToKeep) + .Select(j => new PersistedJob + { + job_id = j.JobId, + status = j.Status.ToString().ToLowerInvariant(), + mode = j.Mode, + started_unix_ms = j.StartedUnixMs, + finished_unix_ms = j.FinishedUnixMs, + last_update_unix_ms = j.LastUpdateUnixMs, + total_tests = j.TotalTests, + completed_tests = j.CompletedTests, + current_test_full_name = j.CurrentTestFullName, + current_test_started_unix_ms = j.CurrentTestStartedUnixMs, + last_finished_test_full_name = j.LastFinishedTestFullName, + last_finished_unix_ms = j.LastFinishedUnixMs, + failures_so_far = (j.FailuresSoFar ?? new List()).Take(FailureCap).ToList(), + error = j.Error + }) + .ToList(); + + snapshot = new PersistedState + { + current_job_id = _currentJobId, + jobs = jobs + }; + } + + SessionState.SetString(SessionKeyCurrentJobId, snapshot.current_job_id ?? string.Empty); + SessionState.SetString(SessionKeyJobs, JsonConvert.SerializeObject(snapshot)); + _lastPersistUnixMs = now; + } + catch (Exception ex) + { + McpLog.Warn($"[TestJobManager] Failed to persist SessionState: {ex.Message}"); + } + } + + public static string StartJob(TestMode mode, TestFilterOptions filterOptions = null) + { + string jobId = Guid.NewGuid().ToString("N"); + long started = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(); + string modeStr = mode.ToString(); + + var job = new TestJob + { + JobId = jobId, + Status = TestJobStatus.Running, + Mode = modeStr, + StartedUnixMs = started, + FinishedUnixMs = null, + LastUpdateUnixMs = started, + TotalTests = null, + CompletedTests = 0, + CurrentTestFullName = null, + CurrentTestStartedUnixMs = null, + LastFinishedTestFullName = null, + LastFinishedUnixMs = null, + FailuresSoFar = new List(), + Error = null, + Result = null + }; + + // Single lock scope for check-and-set to avoid TOCTOU race + lock (LockObj) + { + if (!string.IsNullOrEmpty(_currentJobId)) + { + throw new InvalidOperationException("A Unity test run is already in progress."); + } + Jobs[jobId] = job; + _currentJobId = jobId; + } + PersistToSessionState(force: true); + + // Kick the run (must be called on main thread; our command handlers already run there). + Task task = MCPServiceLocator.Tests.RunTestsAsync(mode, filterOptions); + + void FinalizeJob(Action finalize) + { + // Ensure state mutation happens on main thread to avoid Unity API surprises. + EditorApplication.delayCall += () => + { + try { finalize(); } + catch (Exception ex) { McpLog.Error($"[TestJobManager] Finalize failed: {ex.Message}\n{ex.StackTrace}"); } + }; + } + + task.ContinueWith(t => + { + // NOTE: We now finalize jobs deterministically from the TestRunnerService RunFinished callback. + // This continuation is retained as a safety net in case RunFinished is not delivered. + FinalizeJob(() => FinalizeFromTask(jobId, t)); + }, TaskScheduler.Default); + + return jobId; + } + + public static void FinalizeCurrentJobFromRunFinished(TestRunResult resultPayload) + { + long now = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(); + lock (LockObj) + { + if (string.IsNullOrEmpty(_currentJobId) || !Jobs.TryGetValue(_currentJobId, out var job)) + { + return; + } + + job.LastUpdateUnixMs = now; + job.FinishedUnixMs = now; + job.Status = resultPayload != null && resultPayload.Failed > 0 + ? TestJobStatus.Failed + : TestJobStatus.Succeeded; + job.Error = null; + job.Result = resultPayload; + job.CurrentTestFullName = null; + _currentJobId = null; + } + PersistToSessionState(force: true); + } + + public static void OnRunStarted(int? totalTests) + { + long now = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(); + lock (LockObj) + { + if (string.IsNullOrEmpty(_currentJobId) || !Jobs.TryGetValue(_currentJobId, out var job)) + { + return; + } + + job.LastUpdateUnixMs = now; + job.TotalTests = totalTests; + job.CompletedTests = 0; + job.CurrentTestFullName = null; + job.CurrentTestStartedUnixMs = null; + job.LastFinishedTestFullName = null; + job.LastFinishedUnixMs = null; + job.FailuresSoFar ??= new List(); + job.FailuresSoFar.Clear(); + } + PersistToSessionState(force: true); + } + + public static void OnTestStarted(string testFullName) + { + if (string.IsNullOrWhiteSpace(testFullName)) + { + return; + } + + long now = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(); + lock (LockObj) + { + if (string.IsNullOrEmpty(_currentJobId) || !Jobs.TryGetValue(_currentJobId, out var job)) + { + return; + } + + job.LastUpdateUnixMs = now; + job.CurrentTestFullName = testFullName; + job.CurrentTestStartedUnixMs = now; + } + PersistToSessionState(); + } + + public static void OnLeafTestFinished(string testFullName, bool isFailure, string message) + { + long now = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(); + lock (LockObj) + { + if (string.IsNullOrEmpty(_currentJobId) || !Jobs.TryGetValue(_currentJobId, out var job)) + { + return; + } + + job.LastUpdateUnixMs = now; + job.CompletedTests = Math.Max(0, job.CompletedTests + 1); + job.LastFinishedTestFullName = testFullName; + job.LastFinishedUnixMs = now; + + if (isFailure) + { + job.FailuresSoFar ??= new List(); + if (job.FailuresSoFar.Count < FailureCap) + { + job.FailuresSoFar.Add(new TestJobFailure + { + FullName = testFullName, + Message = string.IsNullOrWhiteSpace(message) ? "Test failed" : message + }); + } + } + } + PersistToSessionState(); + } + + public static void OnRunFinished() + { + long now = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(); + lock (LockObj) + { + if (string.IsNullOrEmpty(_currentJobId) || !Jobs.TryGetValue(_currentJobId, out var job)) + { + return; + } + + job.LastUpdateUnixMs = now; + job.CurrentTestFullName = null; + } + PersistToSessionState(force: true); + } + + internal static TestJob GetJob(string jobId) + { + if (string.IsNullOrWhiteSpace(jobId)) + { + return null; + } + + TestJob jobToReturn = null; + bool shouldPersist = false; + lock (LockObj) + { + if (!Jobs.TryGetValue(jobId, out var job)) + { + return null; + } + + // Check if job is stuck in "running" state without having called OnRunStarted (TotalTests still null). + // This happens when tests fail to initialize (e.g., unsaved scene, compilation issues). + // After 15 seconds without initialization, auto-fail the job to prevent hanging. + if (job.Status == TestJobStatus.Running && job.TotalTests == null) + { + long now = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(); + if (!EditorApplication.isCompiling && !EditorApplication.isUpdating && now - job.StartedUnixMs > InitializationTimeoutMs) + { + McpLog.Warn($"[TestJobManager] Job {jobId} failed to initialize within {InitializationTimeoutMs}ms, auto-failing"); + job.Status = TestJobStatus.Failed; + job.Error = "Test job failed to initialize (tests did not start within timeout)"; + job.FinishedUnixMs = now; + job.LastUpdateUnixMs = now; + if (_currentJobId == jobId) + { + _currentJobId = null; + } + shouldPersist = true; + } + } + + jobToReturn = job; + } + + if (shouldPersist) + { + PersistToSessionState(force: true); + } + return jobToReturn; + } + + internal static object ToSerializable(TestJob job, bool includeDetails, bool includeFailedTests) + { + if (job == null) + { + return null; + } + + object resultPayload = null; + if (job.Status == TestJobStatus.Succeeded && job.Result != null) + { + resultPayload = job.Result.ToSerializable(job.Mode, includeDetails, includeFailedTests); + } + + return new + { + job_id = job.JobId, + status = job.Status.ToString().ToLowerInvariant(), + mode = job.Mode, + started_unix_ms = job.StartedUnixMs, + finished_unix_ms = job.FinishedUnixMs, + last_update_unix_ms = job.LastUpdateUnixMs, + progress = new + { + completed = job.CompletedTests, + total = job.TotalTests, + current_test_full_name = job.CurrentTestFullName, + current_test_started_unix_ms = job.CurrentTestStartedUnixMs, + last_finished_test_full_name = job.LastFinishedTestFullName, + last_finished_unix_ms = job.LastFinishedUnixMs, + stuck_suspected = IsStuck(job), + editor_is_focused = InternalEditorUtility.isApplicationActive, + blocked_reason = GetBlockedReason(job), + failures_so_far = BuildFailuresPayload(job.FailuresSoFar), + failures_capped = (job.FailuresSoFar != null && job.FailuresSoFar.Count >= FailureCap) + }, + error = job.Error, + result = resultPayload + }; + } + + private static string GetBlockedReason(TestJob job) + { + if (job == null || job.Status != TestJobStatus.Running) + { + return null; + } + + if (!IsStuck(job)) + { + return null; + } + + // This matches the real-world symptom you observed: background Unity can get heavily throttled by OS/Editor. + if (!InternalEditorUtility.isApplicationActive) + { + return "editor_unfocused"; + } + + if (EditorApplication.isCompiling) + { + return "compiling"; + } + + if (EditorApplication.isUpdating) + { + return "asset_import"; + } + + return "unknown"; + } + + private static bool IsStuck(TestJob job) + { + if (job == null || job.Status != TestJobStatus.Running) + { + return false; + } + + if (string.IsNullOrWhiteSpace(job.CurrentTestFullName) || !job.CurrentTestStartedUnixMs.HasValue) + { + return false; + } + + long now = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(); + return (now - job.CurrentTestStartedUnixMs.Value) > StuckThresholdMs; + } + + private static object[] BuildFailuresPayload(List failures) + { + if (failures == null || failures.Count == 0) + { + return Array.Empty(); + } + + var list = new object[failures.Count]; + for (int i = 0; i < failures.Count; i++) + { + var f = failures[i]; + list[i] = new { full_name = f?.FullName, message = f?.Message }; + } + return list; + } + + private static void FinalizeFromTask(string jobId, Task task) + { + lock (LockObj) + { + if (!Jobs.TryGetValue(jobId, out var existing)) + { + if (_currentJobId == jobId) _currentJobId = null; + return; + } + + // If RunFinished already finalized the job, do nothing. + if (existing.Status != TestJobStatus.Running) + { + if (_currentJobId == jobId) _currentJobId = null; + return; + } + + existing.LastUpdateUnixMs = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(); + existing.FinishedUnixMs = existing.LastUpdateUnixMs; + + if (task.IsFaulted) + { + existing.Status = TestJobStatus.Failed; + existing.Error = task.Exception?.GetBaseException()?.Message ?? "Unknown test job failure"; + existing.Result = null; + } + else if (task.IsCanceled) + { + existing.Status = TestJobStatus.Failed; + existing.Error = "Test job canceled"; + existing.Result = null; + } + else + { + var result = task.Result; + existing.Status = result != null && result.Failed > 0 + ? TestJobStatus.Failed + : TestJobStatus.Succeeded; + existing.Error = null; + existing.Result = result; + } + + if (_currentJobId == jobId) + { + _currentJobId = null; + } + } + PersistToSessionState(force: true); + } + } +} + diff --git a/Packages/MCPForUnity/Editor/Services/TestJobManager.cs.meta b/Packages/MCPForUnity/Editor/Services/TestJobManager.cs.meta new file mode 100644 index 00000000..00255997 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/TestJobManager.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 2d7a9b8c0e1f4a6b9c3d2e1f0a9b8c7d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: + + diff --git a/Packages/MCPForUnity/Editor/Services/TestRunStatus.cs b/Packages/MCPForUnity/Editor/Services/TestRunStatus.cs new file mode 100644 index 00000000..da3ae6c2 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/TestRunStatus.cs @@ -0,0 +1,62 @@ +using System; +using UnityEditor.TestTools.TestRunner.Api; + +namespace MCPForUnity.Editor.Services +{ + /// + /// Thread-safe, minimal shared status for Unity Test Runner execution. + /// Used by editor readiness snapshots so callers can avoid starting overlapping runs. + /// + internal static class TestRunStatus + { + private static readonly object LockObj = new(); + + private static bool _isRunning; + private static TestMode? _mode; + private static long? _startedUnixMs; + private static long? _finishedUnixMs; + + public static bool IsRunning + { + get { lock (LockObj) return _isRunning; } + } + + public static TestMode? Mode + { + get { lock (LockObj) return _mode; } + } + + public static long? StartedUnixMs + { + get { lock (LockObj) return _startedUnixMs; } + } + + public static long? FinishedUnixMs + { + get { lock (LockObj) return _finishedUnixMs; } + } + + public static void MarkStarted(TestMode mode) + { + lock (LockObj) + { + _isRunning = true; + _mode = mode; + _startedUnixMs = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(); + _finishedUnixMs = null; + } + } + + public static void MarkFinished() + { + lock (LockObj) + { + _isRunning = false; + _finishedUnixMs = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(); + _mode = null; + } + } + } +} + + diff --git a/Packages/MCPForUnity/Editor/Services/TestRunStatus.cs.meta b/Packages/MCPForUnity/Editor/Services/TestRunStatus.cs.meta new file mode 100644 index 00000000..8f499e04 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/TestRunStatus.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b3d140c288f6e4b6aa2b7e8181a09c1e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/TestRunnerNoThrottle.cs b/Packages/MCPForUnity/Editor/Services/TestRunnerNoThrottle.cs new file mode 100644 index 00000000..ddcfe870 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/TestRunnerNoThrottle.cs @@ -0,0 +1,150 @@ +// TestRunnerNoThrottle.cs +// Sets Unity Editor to "No Throttling" mode during test runs. +// This helps tests that don't trigger compilation run smoothly in the background. +// Note: Tests that trigger mid-run compilation may still stall due to OS-level throttling. + +using System; +using System.Reflection; +using MCPForUnity.Editor.Helpers; +using UnityEditor; +using UnityEditor.TestTools.TestRunner.Api; +using UnityEngine; + +namespace MCPForUnity.Editor.Services +{ + /// + /// Automatically sets the editor to "No Throttling" mode during test runs. + /// + /// This helps prevent background stalls for normal tests. However, tests that trigger + /// script compilation mid-run may still stall because: + /// - Internal Unity coroutine waits rely on editor ticks + /// - OS-level throttling affects the main thread when Unity is backgrounded + /// - No amount of internal nudging can overcome OS thread scheduling + /// + /// The MCP workflow is unaffected because socket messages provide external stimulus + /// that wakes Unity's main thread. + /// + [InitializeOnLoad] + public static class TestRunnerNoThrottle + { + private const string ApplicationIdleTimeKey = "ApplicationIdleTime"; + private const string InteractionModeKey = "InteractionMode"; + + // SessionState keys to persist across domain reload + private const string SessionKey_TestRunActive = "TestRunnerNoThrottle_TestRunActive"; + private const string SessionKey_PrevIdleTime = "TestRunnerNoThrottle_PrevIdleTime"; + private const string SessionKey_PrevInteractionMode = "TestRunnerNoThrottle_PrevInteractionMode"; + private const string SessionKey_SettingsCaptured = "TestRunnerNoThrottle_SettingsCaptured"; + + // Keep reference to avoid GC and set HideFlags to avoid serialization issues + private static TestRunnerApi _api; + + static TestRunnerNoThrottle() + { + try + { + _api = ScriptableObject.CreateInstance(); + _api.hideFlags = HideFlags.HideAndDontSave; + _api.RegisterCallbacks(new TestCallbacks()); + + // Check if recovering from domain reload during an active test run + if (IsTestRunActive()) + { + McpLog.Info("[TestRunnerNoThrottle] Recovered from domain reload - reapplying No Throttling."); + ApplyNoThrottling(); + } + } + catch (Exception e) + { + McpLog.Warn($"[TestRunnerNoThrottle] Failed to register callbacks: {e}"); + } + } + + #region State Persistence + + private static bool IsTestRunActive() => SessionState.GetBool(SessionKey_TestRunActive, false); + private static void SetTestRunActive(bool active) => SessionState.SetBool(SessionKey_TestRunActive, active); + private static bool AreSettingsCaptured() => SessionState.GetBool(SessionKey_SettingsCaptured, false); + private static void SetSettingsCaptured(bool captured) => SessionState.SetBool(SessionKey_SettingsCaptured, captured); + private static int GetPrevIdleTime() => SessionState.GetInt(SessionKey_PrevIdleTime, 4); + private static void SetPrevIdleTime(int value) => SessionState.SetInt(SessionKey_PrevIdleTime, value); + private static int GetPrevInteractionMode() => SessionState.GetInt(SessionKey_PrevInteractionMode, 0); + private static void SetPrevInteractionMode(int value) => SessionState.SetInt(SessionKey_PrevInteractionMode, value); + + #endregion + + /// + /// Apply no-throttling preemptively before tests start. + /// Call this before Execute() for PlayMode tests to ensure Unity isn't throttled + /// during the Play mode transition (before RunStarted fires). + /// + public static void ApplyNoThrottlingPreemptive() + { + SetTestRunActive(true); + ApplyNoThrottling(); + } + + private static void ApplyNoThrottling() + { + if (!AreSettingsCaptured()) + { + SetPrevIdleTime(EditorPrefs.GetInt(ApplicationIdleTimeKey, 4)); + SetPrevInteractionMode(EditorPrefs.GetInt(InteractionModeKey, 0)); + SetSettingsCaptured(true); + } + + // 0ms idle + InteractionMode=1 (No Throttling) + EditorPrefs.SetInt(ApplicationIdleTimeKey, 0); + EditorPrefs.SetInt(InteractionModeKey, 1); + + ForceEditorToApplyInteractionPrefs(); + McpLog.Info("[TestRunnerNoThrottle] Applied No Throttling for test run."); + } + + private static void RestoreThrottling() + { + if (!AreSettingsCaptured()) return; + + EditorPrefs.SetInt(ApplicationIdleTimeKey, GetPrevIdleTime()); + EditorPrefs.SetInt(InteractionModeKey, GetPrevInteractionMode()); + ForceEditorToApplyInteractionPrefs(); + + SetSettingsCaptured(false); + SetTestRunActive(false); + McpLog.Info("[TestRunnerNoThrottle] Restored Interaction Mode after test run."); + } + + private static void ForceEditorToApplyInteractionPrefs() + { + try + { + var method = typeof(EditorApplication).GetMethod( + "UpdateInteractionModeSettings", + BindingFlags.Static | BindingFlags.NonPublic + ); + method?.Invoke(null, null); + } + catch + { + // Ignore reflection errors + } + } + + private sealed class TestCallbacks : ICallbacks + { + public void RunStarted(ITestAdaptor testsToRun) + { + SetTestRunActive(true); + ApplyNoThrottling(); + } + + public void RunFinished(ITestResultAdaptor result) + { + RestoreThrottling(); + } + + public void TestStarted(ITestAdaptor test) { } + public void TestFinished(ITestResultAdaptor result) { } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Services/TestRunnerNoThrottle.cs.meta b/Packages/MCPForUnity/Editor/Services/TestRunnerNoThrottle.cs.meta new file mode 100644 index 00000000..8e9a8d4d --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/TestRunnerNoThrottle.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 07a60b029782d464a9506fa520d2a8c8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/TestRunnerService.cs b/Packages/MCPForUnity/Editor/Services/TestRunnerService.cs new file mode 100644 index 00000000..374715b1 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/TestRunnerService.cs @@ -0,0 +1,619 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using MCPForUnity.Editor.Helpers; +using UnityEditor; +using UnityEditor.SceneManagement; +using UnityEditor.TestTools.TestRunner.Api; +using UnityEngine; +using UnityEngine.SceneManagement; + +namespace MCPForUnity.Editor.Services +{ + /// + /// Concrete implementation of . + /// Coordinates Unity Test Runner operations and produces structured results. + /// + internal sealed class TestRunnerService : ITestRunnerService, ICallbacks, IDisposable + { + private static readonly TestMode[] AllModes = { TestMode.EditMode, TestMode.PlayMode }; + + private readonly TestRunnerApi _testRunnerApi; + private readonly SemaphoreSlim _operationLock = new SemaphoreSlim(1, 1); + private readonly List _leafResults = new List(); + private TaskCompletionSource _runCompletionSource; + + public TestRunnerService() + { + _testRunnerApi = ScriptableObject.CreateInstance(); + _testRunnerApi.RegisterCallbacks(this); + } + + public async Task>> GetTestsAsync(TestMode? mode) + { + await _operationLock.WaitAsync().ConfigureAwait(true); + try + { + var modes = mode.HasValue ? new[] { mode.Value } : AllModes; + + var results = new List>(); + var seen = new HashSet(StringComparer.Ordinal); + + foreach (var m in modes) + { + var root = await RetrieveTestRootAsync(m).ConfigureAwait(true); + if (root != null) + { + CollectFromNode(root, m, results, seen, new List()); + } + } + + return results; + } + finally + { + _operationLock.Release(); + } + } + + public async Task RunTestsAsync(TestMode mode, TestFilterOptions filterOptions = null) + { + await _operationLock.WaitAsync().ConfigureAwait(true); + Task runTask; + bool adjustedPlayModeOptions = false; + bool originalEnterPlayModeOptionsEnabled = false; + EnterPlayModeOptions originalEnterPlayModeOptions = EnterPlayModeOptions.None; + try + { + if (_runCompletionSource != null && !_runCompletionSource.Task.IsCompleted) + { + throw new InvalidOperationException("A Unity test run is already in progress."); + } + + if (EditorApplication.isPlaying || EditorApplication.isPlayingOrWillChangePlaymode) + { + throw new InvalidOperationException("Cannot start a test run while the Editor is in or entering Play Mode. Stop Play Mode and try again."); + } + + if (mode == TestMode.PlayMode) + { + // PlayMode runs transition the editor into play across multiple update ticks. Unity's + // built-in pipeline schedules SaveModifiedSceneTask early, but that task uses + // EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo which throws once play mode is + // active. To minimize that window we pre-save dirty scenes and disable domain reload (so the + // MCP bridge stays alive). We do NOT force runSynchronously here because that can freeze the + // editor in some projects. If the TestRunner still hits the save task after entering play, the + // run can fail; in that case, rerun from a clean Edit Mode state. + adjustedPlayModeOptions = EnsurePlayModeRunsWithoutDomainReload( + out originalEnterPlayModeOptionsEnabled, + out originalEnterPlayModeOptions); + } + + _leafResults.Clear(); + _runCompletionSource = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + // Mark running immediately so readiness snapshots reflect the busy state even before callbacks fire. + TestRunStatus.MarkStarted(mode); + + var filter = new Filter + { + testMode = mode, + testNames = filterOptions?.TestNames, + groupNames = filterOptions?.GroupNames, + categoryNames = filterOptions?.CategoryNames, + assemblyNames = filterOptions?.AssemblyNames + }; + var settings = new ExecutionSettings(filter); + + // Save dirty scenes for all test modes to prevent modal dialogs blocking MCP + // (Issue #525: EditMode tests were blocked by save dialog) + SaveDirtyScenesIfNeeded(); + + // Apply no-throttling preemptively for PlayMode tests. This ensures Unity + // isn't throttled during the Play mode transition (which requires multiple + // editor frames). Without this, unfocused Unity may never reach RunStarted + // where throttling would normally be disabled. + if (mode == TestMode.PlayMode) + { + TestRunnerNoThrottle.ApplyNoThrottlingPreemptive(); + } + + _testRunnerApi.Execute(settings); + + runTask = _runCompletionSource.Task; + } + catch + { + // Ensure the status is cleared if we failed to start the run. + TestRunStatus.MarkFinished(); + if (adjustedPlayModeOptions) + { + RestoreEnterPlayModeOptions(originalEnterPlayModeOptionsEnabled, originalEnterPlayModeOptions); + } + + _operationLock.Release(); + throw; + } + + try + { + return await runTask.ConfigureAwait(true); + } + finally + { + if (adjustedPlayModeOptions) + { + RestoreEnterPlayModeOptions(originalEnterPlayModeOptionsEnabled, originalEnterPlayModeOptions); + } + + _operationLock.Release(); + } + } + + public void Dispose() + { + try + { + _testRunnerApi?.UnregisterCallbacks(this); + } + catch + { + // Ignore cleanup errors + } + + if (_testRunnerApi != null) + { + ScriptableObject.DestroyImmediate(_testRunnerApi); + } + + _operationLock.Dispose(); + } + + #region TestRunnerApi callbacks + + public void RunStarted(ITestAdaptor testsToRun) + { + _leafResults.Clear(); + try + { + // Best-effort progress info for async polling (avoid heavy payloads). + int? total = null; + if (testsToRun != null) + { + total = CountLeafTests(testsToRun); + } + TestJobManager.OnRunStarted(total); + } + catch + { + TestJobManager.OnRunStarted(null); + } + } + + public void RunFinished(ITestResultAdaptor result) + { + // Always create payload and clean up job state, even if _runCompletionSource is null. + // This handles domain reload scenarios (e.g., PlayMode tests) where the TestRunnerService + // is recreated and _runCompletionSource is lost, but TestJobManager state persists via + // SessionState and the Test Runner still delivers the RunFinished callback. + var payload = TestRunResult.Create(result, _leafResults); + + // Clean up state regardless of _runCompletionSource - these methods safely handle + // the case where no MCP job exists (e.g., manual test runs via Unity UI). + TestRunStatus.MarkFinished(); + TestJobManager.OnRunFinished(); + TestJobManager.FinalizeCurrentJobFromRunFinished(payload); + + // Report result to awaiting caller if we have a completion source + if (_runCompletionSource != null) + { + _runCompletionSource.TrySetResult(payload); + _runCompletionSource = null; + } + } + + public void TestStarted(ITestAdaptor test) + { + try + { + // Prefer FullName for uniqueness; fall back to Name. + string fullName = test?.FullName; + if (string.IsNullOrWhiteSpace(fullName)) + { + fullName = test?.Name; + } + TestJobManager.OnTestStarted(fullName); + } + catch + { + // ignore + } + } + + public void TestFinished(ITestResultAdaptor result) + { + if (result == null) + { + return; + } + + if (!result.HasChildren) + { + _leafResults.Add(result); + try + { + string fullName = result.Test?.FullName; + if (string.IsNullOrWhiteSpace(fullName)) + { + fullName = result.Test?.Name; + } + + bool isFailure = false; + string message = null; + try + { + // NUnit outcomes are strings in the adaptor; keep it simple. + string outcome = result.ResultState; + if (!string.IsNullOrWhiteSpace(outcome)) + { + var o = outcome.Trim().ToLowerInvariant(); + isFailure = o.Contains("failed") || o.Contains("error"); + } + message = result.Message; + } + catch + { + // ignore adaptor quirks + } + + TestJobManager.OnLeafTestFinished(fullName, isFailure, message); + } + catch + { + // ignore + } + } + } + + #endregion + + private static int CountLeafTests(ITestAdaptor node) + { + if (node == null) + { + return 0; + } + + if (!node.HasChildren) + { + return 1; + } + + int total = 0; + try + { + foreach (var child in node.Children) + { + total += CountLeafTests(child); + } + } + catch + { + // If Unity changes the adaptor behavior, treat it as "unknown total". + return 0; + } + + return total; + } + + private static bool EnsurePlayModeRunsWithoutDomainReload( + out bool originalEnterPlayModeOptionsEnabled, + out EnterPlayModeOptions originalEnterPlayModeOptions) + { + originalEnterPlayModeOptionsEnabled = EditorSettings.enterPlayModeOptionsEnabled; + originalEnterPlayModeOptions = EditorSettings.enterPlayModeOptions; + + // When Play Mode triggers a domain reload, the MCP connection is torn down and the pending + // test run response never makes it back to the caller. To keep the bridge alive for this + // invocation, temporarily enable Enter Play Mode Options with domain reload disabled. + bool domainReloadDisabled = (originalEnterPlayModeOptions & EnterPlayModeOptions.DisableDomainReload) != 0; + bool needsChange = !originalEnterPlayModeOptionsEnabled || !domainReloadDisabled; + if (!needsChange) + { + return false; + } + + var desired = originalEnterPlayModeOptions | EnterPlayModeOptions.DisableDomainReload; + EditorSettings.enterPlayModeOptionsEnabled = true; + EditorSettings.enterPlayModeOptions = desired; + return true; + } + + private static void RestoreEnterPlayModeOptions(bool originalEnabled, EnterPlayModeOptions originalOptions) + { + EditorSettings.enterPlayModeOptions = originalOptions; + EditorSettings.enterPlayModeOptionsEnabled = originalEnabled; + } + + private static void SaveDirtyScenesIfNeeded() + { + int sceneCount = SceneManager.sceneCount; + for (int i = 0; i < sceneCount; i++) + { + var scene = SceneManager.GetSceneAt(i); + if (scene.isDirty) + { + if (string.IsNullOrEmpty(scene.path)) + { + McpLog.Warn($"[TestRunnerService] Skipping unsaved scene '{scene.name}': save it manually before running tests."); + continue; + } + try + { + EditorSceneManager.SaveScene(scene); + } + catch (Exception ex) + { + McpLog.Warn($"[TestRunnerService] Failed to save dirty scene '{scene.name}': {ex.Message}"); + } + } + } + } + + #region Test list helpers + + private async Task RetrieveTestRootAsync(TestMode mode) + { + var tcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + + _testRunnerApi.RetrieveTestList(mode, root => + { + tcs.TrySetResult(root); + }); + + // Ensure the editor pumps at least one additional update in case the window is unfocused. + EditorApplication.QueuePlayerLoopUpdate(); + + var completed = await Task.WhenAny(tcs.Task, Task.Delay(TimeSpan.FromSeconds(30))).ConfigureAwait(true); + if (completed != tcs.Task) + { + McpLog.Warn($"[TestRunnerService] Timeout waiting for test retrieval callback for {mode}"); + return null; + } + + try + { + return await tcs.Task.ConfigureAwait(true); + } + catch (Exception ex) + { + McpLog.Error($"[TestRunnerService] Error retrieving tests for {mode}: {ex.Message}\n{ex.StackTrace}"); + return null; + } + } + + private static void CollectFromNode( + ITestAdaptor node, + TestMode mode, + List> output, + HashSet seen, + List path) + { + if (node == null) + { + return; + } + + bool hasName = !string.IsNullOrEmpty(node.Name); + if (hasName) + { + path.Add(node.Name); + } + + bool hasChildren = node.HasChildren && node.Children != null; + + if (!hasChildren) + { + string fullName = string.IsNullOrEmpty(node.FullName) ? node.Name ?? string.Empty : node.FullName; + string key = $"{mode}:{fullName}"; + + if (!string.IsNullOrEmpty(fullName) && seen.Add(key)) + { + string computedPath = path.Count > 0 ? string.Join("/", path) : fullName; + output.Add(new Dictionary + { + ["name"] = node.Name ?? fullName, + ["full_name"] = fullName, + ["path"] = computedPath, + ["mode"] = mode.ToString(), + }); + } + } + else if (node.Children != null) + { + foreach (var child in node.Children) + { + CollectFromNode(child, mode, output, seen, path); + } + } + + if (hasName && path.Count > 0) + { + path.RemoveAt(path.Count - 1); + } + } + + #endregion + } + + /// + /// Summary of a Unity test run. + /// + public sealed class TestRunResult + { + internal TestRunResult(TestRunSummary summary, IReadOnlyList results) + { + Summary = summary; + Results = results; + } + + public TestRunSummary Summary { get; } + public IReadOnlyList Results { get; } + + public int Total => Summary.Total; + public int Passed => Summary.Passed; + public int Failed => Summary.Failed; + public int Skipped => Summary.Skipped; + + public object ToSerializable(string mode, bool includeDetails = false, bool includeFailedTests = false) + { + // Determine which results to include + IEnumerable resultsToSerialize; + if (includeDetails) + { + // Include all test results + resultsToSerialize = Results.Select(r => r.ToSerializable()); + } + else if (includeFailedTests) + { + // Include only failed and skipped tests + resultsToSerialize = Results + .Where(r => !string.Equals(r.State, "Passed", StringComparison.OrdinalIgnoreCase)) + .Select(r => r.ToSerializable()); + } + else + { + // No individual test results + resultsToSerialize = null; + } + + return new + { + mode, + summary = Summary.ToSerializable(), + results = resultsToSerialize?.ToList(), + }; + } + + internal static TestRunResult Create(ITestResultAdaptor summary, IReadOnlyList tests) + { + var materializedTests = tests.Select(TestRunTestResult.FromAdaptor).ToList(); + + int passed = summary?.PassCount + ?? materializedTests.Count(t => string.Equals(t.State, "Passed", StringComparison.OrdinalIgnoreCase)); + int failed = summary?.FailCount + ?? materializedTests.Count(t => string.Equals(t.State, "Failed", StringComparison.OrdinalIgnoreCase)); + int skipped = summary?.SkipCount + ?? materializedTests.Count(t => string.Equals(t.State, "Skipped", StringComparison.OrdinalIgnoreCase)); + + double duration = summary?.Duration + ?? materializedTests.Sum(t => t.DurationSeconds); + + int total = summary != null ? passed + failed + skipped : materializedTests.Count; + + var summaryPayload = new TestRunSummary( + total, + passed, + failed, + skipped, + duration, + summary?.ResultState ?? "Unknown"); + + return new TestRunResult(summaryPayload, materializedTests); + } + } + + public sealed class TestRunSummary + { + internal TestRunSummary(int total, int passed, int failed, int skipped, double durationSeconds, string resultState) + { + Total = total; + Passed = passed; + Failed = failed; + Skipped = skipped; + DurationSeconds = durationSeconds; + ResultState = resultState; + } + + public int Total { get; } + public int Passed { get; } + public int Failed { get; } + public int Skipped { get; } + public double DurationSeconds { get; } + public string ResultState { get; } + + internal object ToSerializable() + { + return new + { + total = Total, + passed = Passed, + failed = Failed, + skipped = Skipped, + durationSeconds = DurationSeconds, + resultState = ResultState, + }; + } + } + + public sealed class TestRunTestResult + { + internal TestRunTestResult( + string name, + string fullName, + string state, + double durationSeconds, + string message, + string stackTrace, + string output) + { + Name = name; + FullName = fullName; + State = state; + DurationSeconds = durationSeconds; + Message = message; + StackTrace = stackTrace; + Output = output; + } + + public string Name { get; } + public string FullName { get; } + public string State { get; } + public double DurationSeconds { get; } + public string Message { get; } + public string StackTrace { get; } + public string Output { get; } + + internal object ToSerializable() + { + return new + { + name = Name, + fullName = FullName, + state = State, + durationSeconds = DurationSeconds, + message = Message, + stackTrace = StackTrace, + output = Output, + }; + } + + internal static TestRunTestResult FromAdaptor(ITestResultAdaptor adaptor) + { + if (adaptor == null) + { + return new TestRunTestResult(string.Empty, string.Empty, "Unknown", 0.0, string.Empty, string.Empty, string.Empty); + } + + return new TestRunTestResult( + adaptor.Name, + adaptor.FullName, + adaptor.ResultState, + adaptor.Duration, + adaptor.Message, + adaptor.StackTrace, + adaptor.Output); + } + } +} diff --git a/Packages/MCPForUnity/Editor/Services/TestRunnerService.cs.meta b/Packages/MCPForUnity/Editor/Services/TestRunnerService.cs.meta new file mode 100644 index 00000000..20d0e402 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/TestRunnerService.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 18db1e25b13e14b0b9b186c751e397d0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/ToolDiscoveryService.cs b/Packages/MCPForUnity/Editor/Services/ToolDiscoveryService.cs new file mode 100644 index 00000000..b5b86c0a --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/ToolDiscoveryService.cs @@ -0,0 +1,248 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using MCPForUnity.Editor.Constants; +using MCPForUnity.Editor.Helpers; +using MCPForUnity.Editor.Tools; +using UnityEditor; + +namespace MCPForUnity.Editor.Services +{ + public class ToolDiscoveryService : IToolDiscoveryService + { + private Dictionary _cachedTools; + + + public List DiscoverAllTools() + { + if (_cachedTools != null) + { + return _cachedTools.Values.ToList(); + } + + _cachedTools = new Dictionary(); + + var toolTypes = TypeCache.GetTypesWithAttribute(); + foreach (var type in toolTypes) + { + McpForUnityToolAttribute toolAttr; + try + { + toolAttr = type.GetCustomAttribute(); + } + catch (Exception ex) + { + McpLog.Warn($"Failed to read [McpForUnityTool] for {type.FullName}: {ex.Message}"); + continue; + } + + if (toolAttr == null) + { + continue; + } + + var metadata = ExtractToolMetadata(type, toolAttr); + if (metadata != null) + { + if (_cachedTools.ContainsKey(metadata.Name)) + { + McpLog.Warn($"Duplicate tool name '{metadata.Name}' from {type.FullName}; overwriting previous registration."); + } + _cachedTools[metadata.Name] = metadata; + EnsurePreferenceInitialized(metadata); + } + } + + McpLog.Info($"Discovered {_cachedTools.Count} MCP tools via reflection", false); + return _cachedTools.Values.ToList(); + } + + public ToolMetadata GetToolMetadata(string toolName) + { + if (_cachedTools == null) + { + DiscoverAllTools(); + } + + return _cachedTools.TryGetValue(toolName, out var metadata) ? metadata : null; + } + + public List GetEnabledTools() + { + return DiscoverAllTools() + .Where(tool => IsToolEnabled(tool.Name)) + .ToList(); + } + + public bool IsToolEnabled(string toolName) + { + if (string.IsNullOrEmpty(toolName)) + { + return false; + } + + string key = GetToolPreferenceKey(toolName); + if (EditorPrefs.HasKey(key)) + { + return EditorPrefs.GetBool(key, true); + } + + var metadata = GetToolMetadata(toolName); + return metadata?.AutoRegister ?? false; + } + + public void SetToolEnabled(string toolName, bool enabled) + { + if (string.IsNullOrEmpty(toolName)) + { + return; + } + + string key = GetToolPreferenceKey(toolName); + EditorPrefs.SetBool(key, enabled); + } + + private ToolMetadata ExtractToolMetadata(Type type, McpForUnityToolAttribute toolAttr) + { + try + { + // Get tool name + string toolName = toolAttr.Name; + if (string.IsNullOrEmpty(toolName)) + { + // Derive from class name: CaptureScreenshotTool -> capture_screenshot + toolName = ConvertToSnakeCase(type.Name.Replace("Tool", "")); + } + + // Get description + string description = toolAttr.Description ?? $"Tool: {toolName}"; + + // Extract parameters + var parameters = ExtractParameters(type); + + var metadata = new ToolMetadata + { + Name = toolName, + Description = description, + StructuredOutput = toolAttr.StructuredOutput, + Parameters = parameters, + ClassName = type.Name, + Namespace = type.Namespace ?? "", + AssemblyName = type.Assembly.GetName().Name, + AutoRegister = toolAttr.AutoRegister, + RequiresPolling = toolAttr.RequiresPolling, + PollAction = string.IsNullOrEmpty(toolAttr.PollAction) ? "status" : toolAttr.PollAction + }; + + metadata.IsBuiltIn = StringCaseUtility.IsBuiltInMcpType( + type, metadata.AssemblyName, "MCPForUnity.Editor.Tools"); + + return metadata; + + } + catch (Exception ex) + { + McpLog.Error($"Failed to extract metadata for {type.Name}: {ex.Message}"); + return null; + } + } + + private List ExtractParameters(Type type) + { + var parameters = new List(); + + // Look for nested Parameters class + var parametersType = type.GetNestedType("Parameters"); + if (parametersType == null) + { + return parameters; + } + + // Get all properties with [ToolParameter] + var properties = parametersType.GetProperties(BindingFlags.Public | BindingFlags.Instance); + + foreach (var prop in properties) + { + var paramAttr = prop.GetCustomAttribute(); + if (paramAttr == null) + continue; + + string paramName = prop.Name; + string paramType = GetParameterType(prop.PropertyType); + + parameters.Add(new ParameterMetadata + { + Name = paramName, + Description = paramAttr.Description, + Type = paramType, + Required = paramAttr.Required, + DefaultValue = paramAttr.DefaultValue + }); + } + + return parameters; + } + + private string GetParameterType(Type type) + { + // Handle nullable types + if (Nullable.GetUnderlyingType(type) != null) + { + type = Nullable.GetUnderlyingType(type); + } + + // Map C# types to JSON schema types + if (type == typeof(string)) + return "string"; + if (type == typeof(int) || type == typeof(long)) + return "integer"; + if (type == typeof(float) || type == typeof(double)) + return "number"; + if (type == typeof(bool)) + return "boolean"; + if (type.IsArray || typeof(System.Collections.IEnumerable).IsAssignableFrom(type)) + return "array"; + + return "object"; + } + + private string ConvertToSnakeCase(string input) => StringCaseUtility.ToSnakeCase(input); + + public void InvalidateCache() + { + _cachedTools = null; + } + + private void EnsurePreferenceInitialized(ToolMetadata metadata) + { + if (metadata == null || string.IsNullOrEmpty(metadata.Name)) + { + return; + } + + string key = GetToolPreferenceKey(metadata.Name); + if (!EditorPrefs.HasKey(key)) + { + bool defaultValue = metadata.AutoRegister || metadata.IsBuiltIn; + EditorPrefs.SetBool(key, defaultValue); + return; + } + + if (metadata.IsBuiltIn && !metadata.AutoRegister) + { + bool currentValue = EditorPrefs.GetBool(key, metadata.AutoRegister); + if (currentValue == metadata.AutoRegister) + { + EditorPrefs.SetBool(key, true); + } + } + } + + private static string GetToolPreferenceKey(string toolName) + { + return EditorPrefKeys.ToolEnabledPrefix + toolName; + } + + } +} diff --git a/Packages/MCPForUnity/Editor/Services/ToolDiscoveryService.cs.meta b/Packages/MCPForUnity/Editor/Services/ToolDiscoveryService.cs.meta new file mode 100644 index 00000000..46b74032 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/ToolDiscoveryService.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ec81a561be4c14c9cb243855d3273a94 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/Transport.meta b/Packages/MCPForUnity/Editor/Services/Transport.meta new file mode 100644 index 00000000..58fe0d71 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Transport.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8d189635a5d364f55a810203798c09ba +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/Transport/IMcpTransportClient.cs b/Packages/MCPForUnity/Editor/Services/Transport/IMcpTransportClient.cs new file mode 100644 index 00000000..3d8584fd --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Transport/IMcpTransportClient.cs @@ -0,0 +1,18 @@ +using System.Threading.Tasks; + +namespace MCPForUnity.Editor.Services.Transport +{ + /// + /// Abstraction for MCP transport implementations (e.g. WebSocket push, stdio). + /// + public interface IMcpTransportClient + { + bool IsConnected { get; } + string TransportName { get; } + TransportState State { get; } + + Task StartAsync(); + Task StopAsync(); + Task VerifyAsync(); + } +} diff --git a/Packages/MCPForUnity/Editor/Services/Transport/IMcpTransportClient.cs.meta b/Packages/MCPForUnity/Editor/Services/Transport/IMcpTransportClient.cs.meta new file mode 100644 index 00000000..2bdf0951 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Transport/IMcpTransportClient.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 042446a50a4744170bb294acf827376f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/Transport/TransportCommandDispatcher.cs b/Packages/MCPForUnity/Editor/Services/Transport/TransportCommandDispatcher.cs new file mode 100644 index 00000000..447db69b --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Transport/TransportCommandDispatcher.cs @@ -0,0 +1,450 @@ +using System; +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; +using MCPForUnity.Editor.Helpers; +using MCPForUnity.Editor.Models; +using MCPForUnity.Editor.Services; +using MCPForUnity.Editor.Tools; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using UnityEditor; + +namespace MCPForUnity.Editor.Services.Transport +{ + /// + /// Centralised command execution pipeline shared by all transport implementations. + /// Guarantees that MCP commands are executed on the Unity main thread while preserving + /// the legacy response format expected by the server. + /// + [InitializeOnLoad] + internal static class TransportCommandDispatcher + { + private static SynchronizationContext _mainThreadContext; + private static int _mainThreadId; + private static int _processingFlag; + + private sealed class PendingCommand + { + public PendingCommand( + string commandJson, + TaskCompletionSource completionSource, + CancellationToken cancellationToken, + CancellationTokenRegistration registration) + { + CommandJson = commandJson; + CompletionSource = completionSource; + CancellationToken = cancellationToken; + CancellationRegistration = registration; + QueuedAt = DateTime.UtcNow; + } + + public string CommandJson { get; } + public TaskCompletionSource CompletionSource { get; } + public CancellationToken CancellationToken { get; } + public CancellationTokenRegistration CancellationRegistration { get; } + public bool IsExecuting { get; set; } + public DateTime QueuedAt { get; } + + public void Dispose() + { + CancellationRegistration.Dispose(); + } + + public void TrySetResult(string payload) + { + CompletionSource.TrySetResult(payload); + } + + public void TrySetCanceled() + { + CompletionSource.TrySetCanceled(CancellationToken); + } + } + + private static readonly Dictionary Pending = new(); + private static readonly object PendingLock = new(); + private static bool updateHooked; + private static bool initialised; + + static TransportCommandDispatcher() + { + // Ensure this runs on the Unity main thread at editor load. + _mainThreadContext = SynchronizationContext.Current; + _mainThreadId = Thread.CurrentThread.ManagedThreadId; + + EnsureInitialised(); + + // Always keep the update hook installed so commands arriving from background + // websocket tasks don't depend on a background-thread event subscription. + if (!updateHooked) + { + updateHooked = true; + EditorApplication.update += ProcessQueue; + } + } + + /// + /// Schedule a command for execution on the Unity main thread and await its JSON response. + /// + public static Task ExecuteCommandJsonAsync(string commandJson, CancellationToken cancellationToken) + { + if (commandJson is null) + { + throw new ArgumentNullException(nameof(commandJson)); + } + + EnsureInitialised(); + + var id = Guid.NewGuid().ToString("N"); + var tcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + + var registration = cancellationToken.CanBeCanceled + ? cancellationToken.Register(() => CancelPending(id, cancellationToken)) + : default; + + var pending = new PendingCommand(commandJson, tcs, cancellationToken, registration); + + lock (PendingLock) + { + Pending[id] = pending; + } + + // Proactively wake up the main thread execution loop. This improves responsiveness + // in scenarios where EditorApplication.update is throttled or temporarily not firing + // (e.g., Unity unfocused, compiling, or during domain reload transitions). + RequestMainThreadPump(); + + return tcs.Task; + } + + internal static Task RunOnMainThreadAsync(Func func, CancellationToken cancellationToken) + { + if (func is null) + { + throw new ArgumentNullException(nameof(func)); + } + + var tcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + + var registration = cancellationToken.CanBeCanceled + ? cancellationToken.Register(() => tcs.TrySetCanceled(cancellationToken)) + : default; + + void Invoke() + { + try + { + if (tcs.Task.IsCompleted) + { + return; + } + + var result = func(); + tcs.TrySetResult(result); + } + catch (Exception ex) + { + tcs.TrySetException(ex); + } + finally + { + registration.Dispose(); + } + } + + // Best-effort nudge: if we're posting from a background thread (e.g., websocket receive), + // encourage Unity to run a loop iteration so the posted callback can execute even when unfocused. + try { EditorApplication.QueuePlayerLoopUpdate(); } catch { } + + if (_mainThreadContext != null && Thread.CurrentThread.ManagedThreadId != _mainThreadId) + { + _mainThreadContext.Post(_ => Invoke(), null); + return tcs.Task; + } + + Invoke(); + return tcs.Task; + } + + private static void RequestMainThreadPump() + { + void Pump() + { + try + { + // Hint Unity to run a loop iteration soon. + EditorApplication.QueuePlayerLoopUpdate(); + } + catch + { + // Best-effort only. + } + + ProcessQueue(); + } + + if (_mainThreadContext != null && Thread.CurrentThread.ManagedThreadId != _mainThreadId) + { + _mainThreadContext.Post(_ => Pump(), null); + return; + } + + Pump(); + } + + private static void EnsureInitialised() + { + if (initialised) + { + return; + } + + CommandRegistry.Initialize(); + initialised = true; + } + + private static void HookUpdate() + { + // Deprecated: we keep the update hook installed permanently (see static ctor). + if (updateHooked) return; + updateHooked = true; + EditorApplication.update += ProcessQueue; + } + + private static void UnhookUpdateIfIdle() + { + // Intentionally no-op: keep update hook installed so background commands always process. + // This avoids "must focus Unity to re-establish contact" edge cases. + return; + } + + private static void ProcessQueue() + { + if (Interlocked.Exchange(ref _processingFlag, 1) == 1) + { + return; + } + + try + { + List<(string id, PendingCommand pending)> ready; + + lock (PendingLock) + { + // Early exit inside lock to prevent per-frame List allocations (GitHub issue #577) + if (Pending.Count == 0) + { + return; + } + + ready = new List<(string, PendingCommand)>(Pending.Count); + foreach (var kvp in Pending) + { + if (kvp.Value.IsExecuting) + { + continue; + } + + kvp.Value.IsExecuting = true; + ready.Add((kvp.Key, kvp.Value)); + } + + if (ready.Count == 0) + { + UnhookUpdateIfIdle(); + return; + } + } + + foreach (var (id, pending) in ready) + { + ProcessCommand(id, pending); + } + } + finally + { + Interlocked.Exchange(ref _processingFlag, 0); + } + } + + private static void ProcessCommand(string id, PendingCommand pending) + { + if (pending.CancellationToken.IsCancellationRequested) + { + RemovePending(id, pending); + pending.TrySetCanceled(); + return; + } + + string commandText = pending.CommandJson?.Trim(); + if (string.IsNullOrEmpty(commandText)) + { + pending.TrySetResult(SerializeError("Empty command received")); + RemovePending(id, pending); + return; + } + + if (string.Equals(commandText, "ping", StringComparison.OrdinalIgnoreCase)) + { + var pingResponse = new + { + status = "success", + result = new { message = "pong" } + }; + pending.TrySetResult(JsonConvert.SerializeObject(pingResponse)); + RemovePending(id, pending); + return; + } + + if (!IsValidJson(commandText)) + { + var invalidJsonResponse = new + { + status = "error", + error = "Invalid JSON format", + receivedText = commandText.Length > 50 ? commandText[..50] + "..." : commandText + }; + pending.TrySetResult(JsonConvert.SerializeObject(invalidJsonResponse)); + RemovePending(id, pending); + return; + } + + try + { + var command = JsonConvert.DeserializeObject(commandText); + if (command == null) + { + pending.TrySetResult(SerializeError("Command deserialized to null", "Unknown", commandText)); + RemovePending(id, pending); + return; + } + + if (string.IsNullOrWhiteSpace(command.type)) + { + pending.TrySetResult(SerializeError("Command type cannot be empty")); + RemovePending(id, pending); + return; + } + + if (string.Equals(command.type, "ping", StringComparison.OrdinalIgnoreCase)) + { + var pingResponse = new + { + status = "success", + result = new { message = "pong" } + }; + pending.TrySetResult(JsonConvert.SerializeObject(pingResponse)); + RemovePending(id, pending); + return; + } + + var parameters = command.@params ?? new JObject(); + + // Block execution of disabled resources + var resourceMeta = MCPServiceLocator.ResourceDiscovery.GetResourceMetadata(command.type); + if (resourceMeta != null && !MCPServiceLocator.ResourceDiscovery.IsResourceEnabled(command.type)) + { + pending.TrySetResult(SerializeError( + $"Resource '{command.type}' is disabled in the Unity Editor.")); + RemovePending(id, pending); + return; + } + + // Block execution of disabled tools + var toolMeta = MCPServiceLocator.ToolDiscovery.GetToolMetadata(command.type); + if (toolMeta != null && !MCPServiceLocator.ToolDiscovery.IsToolEnabled(command.type)) + { + pending.TrySetResult(SerializeError( + $"Tool '{command.type}' is disabled in the Unity Editor.")); + RemovePending(id, pending); + return; + } + + var result = CommandRegistry.ExecuteCommand(command.type, parameters, pending.CompletionSource); + + if (result == null) + { + // Async command – cleanup after completion on next editor frame to preserve order. + pending.CompletionSource.Task.ContinueWith(_ => + { + EditorApplication.delayCall += () => RemovePending(id, pending); + }, TaskScheduler.Default); + return; + } + + var response = new { status = "success", result }; + pending.TrySetResult(JsonConvert.SerializeObject(response)); + RemovePending(id, pending); + } + catch (Exception ex) + { + McpLog.Error($"Error processing command: {ex.Message}\n{ex.StackTrace}"); + pending.TrySetResult(SerializeError(ex.Message, "Unknown (error during processing)", ex.StackTrace)); + RemovePending(id, pending); + } + } + + private static void CancelPending(string id, CancellationToken token) + { + PendingCommand pending = null; + lock (PendingLock) + { + if (Pending.Remove(id, out pending)) + { + UnhookUpdateIfIdle(); + } + } + + pending?.TrySetCanceled(); + pending?.Dispose(); + } + + private static void RemovePending(string id, PendingCommand pending) + { + lock (PendingLock) + { + Pending.Remove(id); + UnhookUpdateIfIdle(); + } + + pending.Dispose(); + } + + private static string SerializeError(string message, string commandType = null, string stackTrace = null) + { + var errorResponse = new + { + status = "error", + error = message, + command = commandType ?? "Unknown", + stackTrace + }; + return JsonConvert.SerializeObject(errorResponse); + } + + private static bool IsValidJson(string text) + { + if (string.IsNullOrWhiteSpace(text)) + { + return false; + } + + text = text.Trim(); + if ((text.StartsWith("{") && text.EndsWith("}")) || (text.StartsWith("[") && text.EndsWith("]"))) + { + try + { + JToken.Parse(text); + return true; + } + catch + { + return false; + } + } + + return false; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Services/Transport/TransportCommandDispatcher.cs.meta b/Packages/MCPForUnity/Editor/Services/Transport/TransportCommandDispatcher.cs.meta new file mode 100644 index 00000000..494c010c --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Transport/TransportCommandDispatcher.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 27407cc9c1ea0412d80b9f8964a5a29d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/Transport/TransportManager.cs b/Packages/MCPForUnity/Editor/Services/Transport/TransportManager.cs new file mode 100644 index 00000000..1204e701 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Transport/TransportManager.cs @@ -0,0 +1,152 @@ +using System; +using System.Threading.Tasks; +using MCPForUnity.Editor.Helpers; +using MCPForUnity.Editor.Services.Transport.Transports; + +namespace MCPForUnity.Editor.Services.Transport +{ + /// + /// Coordinates the active transport client and exposes lifecycle helpers. + /// + public class TransportManager + { + private IMcpTransportClient _httpClient; + private IMcpTransportClient _stdioClient; + private TransportState _httpState = TransportState.Disconnected("http"); + private TransportState _stdioState = TransportState.Disconnected("stdio"); + private Func _webSocketFactory; + private Func _stdioFactory; + + public TransportManager() + { + Configure( + () => new WebSocketTransportClient(MCPServiceLocator.ToolDiscovery), + () => new StdioTransportClient()); + } + + public void Configure( + Func webSocketFactory, + Func stdioFactory) + { + _webSocketFactory = webSocketFactory ?? throw new ArgumentNullException(nameof(webSocketFactory)); + _stdioFactory = stdioFactory ?? throw new ArgumentNullException(nameof(stdioFactory)); + } + + private IMcpTransportClient GetOrCreateClient(TransportMode mode) + { + return mode switch + { + TransportMode.Http => _httpClient ??= _webSocketFactory(), + TransportMode.Stdio => _stdioClient ??= _stdioFactory(), + _ => throw new ArgumentOutOfRangeException(nameof(mode), mode, "Unsupported transport mode"), + }; + } + + private IMcpTransportClient GetClient(TransportMode mode) + { + return mode switch + { + TransportMode.Http => _httpClient, + TransportMode.Stdio => _stdioClient, + _ => throw new ArgumentOutOfRangeException(nameof(mode), mode, "Unsupported transport mode"), + }; + } + + public async Task StartAsync(TransportMode mode) + { + IMcpTransportClient client = GetOrCreateClient(mode); + + bool started = await client.StartAsync(); + if (!started) + { + try + { + await client.StopAsync(); + } + catch (Exception ex) + { + McpLog.Warn($"Error while stopping transport {client.TransportName}: {ex.Message}"); + } + UpdateState(mode, TransportState.Disconnected(client.TransportName, client.State?.Error ?? "Failed to start")); + return false; + } + + UpdateState(mode, client.State ?? TransportState.Connected(client.TransportName)); + return true; + } + + public async Task StopAsync(TransportMode? mode = null) + { + async Task StopClient(IMcpTransportClient client, TransportMode clientMode) + { + if (client == null) return; + try { await client.StopAsync(); } + catch (Exception ex) { McpLog.Warn($"Error while stopping transport {client.TransportName}: {ex.Message}"); } + finally { UpdateState(clientMode, TransportState.Disconnected(client.TransportName)); } + } + + if (mode == null) + { + await StopClient(_httpClient, TransportMode.Http); + await StopClient(_stdioClient, TransportMode.Stdio); + return; + } + + if (mode == TransportMode.Http) + { + await StopClient(_httpClient, TransportMode.Http); + } + else + { + await StopClient(_stdioClient, TransportMode.Stdio); + } + } + + public async Task VerifyAsync(TransportMode mode) + { + IMcpTransportClient client = GetClient(mode); + if (client == null) + { + return false; + } + + bool ok = await client.VerifyAsync(); + var state = client.State ?? TransportState.Disconnected(client.TransportName, "No state reported"); + UpdateState(mode, state); + return ok; + } + + public TransportState GetState(TransportMode mode) + { + return mode switch + { + TransportMode.Http => _httpState, + TransportMode.Stdio => _stdioState, + _ => throw new ArgumentOutOfRangeException(nameof(mode), mode, "Unsupported transport mode"), + }; + } + + public bool IsRunning(TransportMode mode) => GetState(mode).IsConnected; + + private void UpdateState(TransportMode mode, TransportState state) + { + switch (mode) + { + case TransportMode.Http: + _httpState = state; + break; + case TransportMode.Stdio: + _stdioState = state; + break; + default: + throw new ArgumentOutOfRangeException(nameof(mode), mode, "Unsupported transport mode"); + } + } + } + + public enum TransportMode + { + Http, + Stdio + } +} diff --git a/Packages/MCPForUnity/Editor/Services/Transport/TransportManager.cs.meta b/Packages/MCPForUnity/Editor/Services/Transport/TransportManager.cs.meta new file mode 100644 index 00000000..7adde46c --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Transport/TransportManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 65fc8ff4c9efb4fc98a0910ba7ca8b02 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/Transport/TransportState.cs b/Packages/MCPForUnity/Editor/Services/Transport/TransportState.cs new file mode 100644 index 00000000..7fb6f20c --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Transport/TransportState.cs @@ -0,0 +1,52 @@ +namespace MCPForUnity.Editor.Services.Transport +{ + /// + /// Lightweight snapshot of a transport's runtime status for editor UI and diagnostics. + /// + public sealed class TransportState + { + public bool IsConnected { get; } + public string TransportName { get; } + public int? Port { get; } + public string SessionId { get; } + public string Details { get; } + public string Error { get; } + + private TransportState( + bool isConnected, + string transportName, + int? port, + string sessionId, + string details, + string error) + { + IsConnected = isConnected; + TransportName = transportName; + Port = port; + SessionId = sessionId; + Details = details; + Error = error; + } + + public static TransportState Connected( + string transportName, + int? port = null, + string sessionId = null, + string details = null) + => new TransportState(true, transportName, port, sessionId, details, null); + + public static TransportState Disconnected( + string transportName, + string error = null, + int? port = null) + => new TransportState(false, transportName, port, null, null, error); + + public TransportState WithError(string error) => new TransportState( + IsConnected, + TransportName, + Port, + SessionId, + Details, + error); + } +} diff --git a/Packages/MCPForUnity/Editor/Services/Transport/TransportState.cs.meta b/Packages/MCPForUnity/Editor/Services/Transport/TransportState.cs.meta new file mode 100644 index 00000000..5c592ce6 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Transport/TransportState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 67ab8e43f6a804698bb5b216cdef0645 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/Transport/Transports.meta b/Packages/MCPForUnity/Editor/Services/Transport/Transports.meta new file mode 100644 index 00000000..878b705a --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Transport/Transports.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3d467a63b6fad42fa975c731af4b83b3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/Transport/Transports/StdioBridgeHost.cs b/Packages/MCPForUnity/Editor/Services/Transport/Transports/StdioBridgeHost.cs new file mode 100644 index 00000000..ab3af5db --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Transport/Transports/StdioBridgeHost.cs @@ -0,0 +1,1095 @@ +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Net; +using System.Net.Sockets; +using System.Threading; +using System.Threading.Tasks; +using MCPForUnity.Editor.Constants; +using MCPForUnity.Editor.Helpers; +using MCPForUnity.Editor.Models; +using MCPForUnity.Editor.Services; +using MCPForUnity.Editor.Services.Transport; +using MCPForUnity.Editor.Tools; +using MCPForUnity.Editor.Tools.Prefabs; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.Services.Transport.Transports +{ + class Outbound + { + public byte[] Payload; + public string Tag; + public int? ReqId; + } + + class QueuedCommand + { + public string CommandJson; + public TaskCompletionSource Tcs; + public bool IsExecuting; + } + + [InitializeOnLoad] + public static class StdioBridgeHost + { + private static TcpListener listener; + private static bool isRunning = false; + private static readonly object lockObj = new(); + private static readonly object startStopLock = new(); + private static readonly object clientsLock = new(); + private static readonly HashSet activeClients = new(); + private static readonly BlockingCollection _outbox = new(new ConcurrentQueue()); + private static CancellationTokenSource cts; + private static Task listenerTask; + private static int processingCommands = 0; + private static bool initScheduled = false; + private static bool ensureUpdateHooked = false; + private static bool isStarting = false; + private static double nextStartAt = 0.0f; + private static double nextHeartbeatAt = 0.0f; + private static int heartbeatSeq = 0; + private static Dictionary commandQueue = new(); + private static int mainThreadId; + private static int currentUnityPort = 6400; + private static bool isAutoConnectMode = false; + private const ulong MaxFrameBytes = 64UL * 1024 * 1024; + private const int FrameIOTimeoutMs = 30000; + + private static long _ioSeq = 0; + private static void IoInfo(string s) { McpLog.Info(s, always: false); } + + private static bool IsDebugEnabled() + { + try { return EditorPrefs.GetBool(EditorPrefKeys.DebugLogs, false); } catch { return false; } + } + + private static void LogBreadcrumb(string stage) + { + if (IsDebugEnabled()) + { + McpLog.Info($"[{stage}]", always: false); + } + } + + public static bool IsRunning => isRunning; + public static int GetCurrentPort() => currentUnityPort; + public static bool IsAutoConnectMode() => isAutoConnectMode; + + public static void StartAutoConnect() + { + Stop(); + + try + { + currentUnityPort = PortManager.GetPortWithFallback(); + Start(); + isAutoConnectMode = true; + + TelemetryHelper.RecordBridgeStartup(); + } + catch (Exception ex) + { + McpLog.Error($"Auto-connect failed: {ex.Message}"); + TelemetryHelper.RecordBridgeConnection(false, ex.Message); + throw; + } + } + + public static bool FolderExists(string path) + { + if (string.IsNullOrEmpty(path)) + { + return false; + } + + if (path.Equals("Assets", StringComparison.OrdinalIgnoreCase)) + { + return true; + } + + string fullPath = Path.Combine( + Application.dataPath, + path.StartsWith("Assets/") ? path[7..] : path + ); + return Directory.Exists(fullPath); + } + + static StdioBridgeHost() + { + try { mainThreadId = Thread.CurrentThread.ManagedThreadId; } catch { mainThreadId = 0; } + try + { + var writerThread = new Thread(() => + { + foreach (var item in _outbox.GetConsumingEnumerable()) + { + try + { + long seq = Interlocked.Increment(ref _ioSeq); + IoInfo($"[IO] ➜ write start seq={seq} tag={item.Tag} len={(item.Payload?.Length ?? 0)} reqId={(item.ReqId?.ToString() ?? "?")}"); + var sw = System.Diagnostics.Stopwatch.StartNew(); + sw.Stop(); + IoInfo($"[IO] ✓ write end tag={item.Tag} len={(item.Payload?.Length ?? 0)} reqId={(item.ReqId?.ToString() ?? "?")} durMs={sw.Elapsed.TotalMilliseconds:F1}"); + } + catch (Exception ex) + { + IoInfo($"[IO] ✗ write FAIL tag={item.Tag} reqId={(item.ReqId?.ToString() ?? "?")} {ex.GetType().Name}: {ex.Message}"); + } + } + }) + { IsBackground = true, Name = "MCP-Writer" }; + writerThread.Start(); + } + catch { } + + if (Application.isBatchMode && string.IsNullOrWhiteSpace(Environment.GetEnvironmentVariable("UNITY_MCP_ALLOW_BATCH"))) + { + return; + } + if (ShouldAutoStartBridge()) + { + ScheduleInitRetry(); + if (!ensureUpdateHooked) + { + ensureUpdateHooked = true; + EditorApplication.update += EnsureStartedOnEditorIdle; + } + } + EditorApplication.quitting += Stop; + EditorApplication.playModeStateChanged += _ => + { + if (ShouldAutoStartBridge()) + { + ScheduleInitRetry(); + } + }; + } + + private static void InitializeAfterCompilation() + { + initScheduled = false; + + if (IsCompiling()) + { + ScheduleInitRetry(); + return; + } + + if (!isRunning) + { + Start(); + if (!isRunning) + { + ScheduleInitRetry(); + } + } + } + + private static void ScheduleInitRetry() + { + if (initScheduled) + { + return; + } + initScheduled = true; + nextStartAt = EditorApplication.timeSinceStartup + 0.20f; + if (!ensureUpdateHooked) + { + ensureUpdateHooked = true; + EditorApplication.update += EnsureStartedOnEditorIdle; + } + EditorApplication.delayCall += InitializeAfterCompilation; + } + + private static bool ShouldAutoStartBridge() + { + try + { + bool useHttpTransport = EditorConfigurationCache.Instance.UseHttpTransport; + return !useHttpTransport; + } + catch + { + return true; + } + } + + private static void EnsureStartedOnEditorIdle() + { + if (IsCompiling()) + { + return; + } + + if (isRunning) + { + EditorApplication.update -= EnsureStartedOnEditorIdle; + ensureUpdateHooked = false; + return; + } + + if (nextStartAt > 0 && EditorApplication.timeSinceStartup < nextStartAt) + { + return; + } + + if (isStarting) + { + return; + } + + isStarting = true; + try + { + Start(); + } + finally + { + isStarting = false; + } + if (isRunning) + { + EditorApplication.update -= EnsureStartedOnEditorIdle; + ensureUpdateHooked = false; + } + } + + private static bool IsCompiling() + { + if (EditorApplication.isCompiling) + { + return true; + } + try + { + Type pipeline = Type.GetType("UnityEditor.Compilation.CompilationPipeline, UnityEditor"); + var prop = pipeline?.GetProperty("isCompiling", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static); + if (prop != null) + { + return (bool)prop.GetValue(null); + } + } + catch { } + return false; + } + + public static void Start() + { + lock (startStopLock) + { + if (isRunning && listener != null) + { + if (IsDebugEnabled()) + { + McpLog.Info($"StdioBridgeHost already running on port {currentUnityPort}"); + } + return; + } + + Stop(); + + try + { + currentUnityPort = PortManager.GetPortWithFallback(); + + LogBreadcrumb("Start"); + + const int maxImmediateRetries = 3; + const int retrySleepMs = 75; + int attempt = 0; + for (; ; ) + { + try + { + listener = CreateConfiguredListener(currentUnityPort); + listener.Start(); + break; + } + catch (SocketException se) when (se.SocketErrorCode == SocketError.AddressAlreadyInUse && attempt < maxImmediateRetries) + { + attempt++; + Thread.Sleep(retrySleepMs); + continue; + } + catch (SocketException se) when (se.SocketErrorCode == SocketError.AddressAlreadyInUse && attempt >= maxImmediateRetries) + { + int oldPort = currentUnityPort; + + // Before switching ports, give the old one a brief chance to release if it looks like ours + try + { + if (PortManager.IsPortUsedByMCPForUnity(oldPort)) + { + const int waitStepMs = 100; + int waited = 0; + while (waited < 300 && !PortManager.IsPortAvailable(oldPort)) + { + Thread.Sleep(waitStepMs); + waited += waitStepMs; + } + } + } + catch { } + + currentUnityPort = PortManager.DiscoverNewPort(); + + // Persist the new port so next time we start on this port + try + { + EditorPrefs.SetInt(EditorPrefKeys.UnitySocketPort, currentUnityPort); + } + catch { } + + if (IsDebugEnabled()) + { + if (currentUnityPort == oldPort) + { + McpLog.Info($"Port {oldPort} became available, proceeding"); + } + else + { + McpLog.Info($"Port {oldPort} occupied, switching to port {currentUnityPort}"); + } + } + + listener = CreateConfiguredListener(currentUnityPort); + listener.Start(); + break; + } + } + + isRunning = true; + isAutoConnectMode = false; + string platform = Application.platform.ToString(); + string serverVer = AssetPathUtility.GetPackageVersion(); + McpLog.Info($"StdioBridgeHost started on port {currentUnityPort}. (OS={platform}, server={serverVer})"); + cts = new CancellationTokenSource(); + listenerTask = Task.Run(() => ListenerLoopAsync(cts.Token)); + CommandRegistry.Initialize(); + EditorApplication.update += ProcessCommands; + try { EditorApplication.quitting -= Stop; } catch { } + try { EditorApplication.quitting += Stop; } catch { } + heartbeatSeq++; + WriteHeartbeat(false, "ready"); + nextHeartbeatAt = EditorApplication.timeSinceStartup + 0.5f; + } + catch (SocketException ex) + { + McpLog.Error($"Failed to start TCP listener: {ex.Message}"); + } + } + } + + private static TcpListener CreateConfiguredListener(int port) + { + var newListener = new TcpListener(IPAddress.Loopback, port); +#if !UNITY_EDITOR_OSX + newListener.Server.SetSocketOption( + SocketOptionLevel.Socket, + SocketOptionName.ReuseAddress, + true + ); +#endif +#if UNITY_EDITOR_WIN + try + { + newListener.ExclusiveAddressUse = false; + } + catch { } +#endif + try + { + newListener.Server.LingerState = new LingerOption(true, 0); + } + catch (Exception) + { + } + return newListener; + } + + public static void Stop() + { + Task toWait = null; + lock (startStopLock) + { + if (!isRunning) + { + return; + } + + try + { + isRunning = false; + + var cancel = cts; + cts = null; + try { cancel?.Cancel(); } catch { } + + try { listener?.Stop(); } catch { } + listener = null; + + toWait = listenerTask; + listenerTask = null; + } + catch (Exception ex) + { + McpLog.Error($"Error stopping StdioBridgeHost: {ex.Message}"); + } + } + + TcpClient[] toClose; + lock (clientsLock) + { + toClose = activeClients.ToArray(); + activeClients.Clear(); + } + foreach (var c in toClose) + { + try { c.Close(); } catch { } + } + + if (toWait != null) + { + try { toWait.Wait(100); } catch { } + } + + try { EditorApplication.update -= ProcessCommands; } catch { } + try { EditorApplication.quitting -= Stop; } catch { } + + try + { + string dir = Environment.GetEnvironmentVariable("UNITY_MCP_STATUS_DIR"); + if (string.IsNullOrWhiteSpace(dir)) + { + dir = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".unity-mcp"); + } + string statusFile = Path.Combine(dir, $"unity-mcp-status-{ComputeProjectHash(Application.dataPath)}.json"); + if (File.Exists(statusFile)) + { + File.Delete(statusFile); + if (IsDebugEnabled()) McpLog.Info($"Deleted status file: {statusFile}"); + } + } + catch (Exception ex) + { + if (IsDebugEnabled()) McpLog.Warn($"Failed to delete status file: {ex.Message}"); + } + + if (IsDebugEnabled()) McpLog.Info("StdioBridgeHost stopped."); + } + + private static async Task ListenerLoopAsync(CancellationToken token) + { + while (isRunning && !token.IsCancellationRequested) + { + try + { + TcpClient client = await listener.AcceptTcpClientAsync(); + client.Client.SetSocketOption( + SocketOptionLevel.Socket, + SocketOptionName.KeepAlive, + true + ); + + client.ReceiveTimeout = 60000; + + _ = Task.Run(() => HandleClientAsync(client, token), token); + } + catch (ObjectDisposedException) + { + if (!isRunning || token.IsCancellationRequested) + { + break; + } + } + catch (OperationCanceledException) + { + break; + } + catch (Exception ex) + { + if (isRunning && !token.IsCancellationRequested) + { + if (IsDebugEnabled()) McpLog.Error($"Listener error: {ex.Message}"); + } + } + } + } + + private static async Task HandleClientAsync(TcpClient client, CancellationToken token) + { + using (client) + using (NetworkStream stream = client.GetStream()) + { + lock (clientsLock) { activeClients.Add(client); } + try + { + try + { + if (IsDebugEnabled()) + { + var ep = client.Client?.RemoteEndPoint?.ToString() ?? "unknown"; + McpLog.Info($"Client connected {ep}"); + } + } + catch { } + try + { + client.NoDelay = true; + } + catch { } + try + { + string handshake = "WELCOME UNITY-MCP 1 FRAMING=1\n"; + byte[] handshakeBytes = System.Text.Encoding.ASCII.GetBytes(handshake); + using var cts = new CancellationTokenSource(FrameIOTimeoutMs); +#if NETSTANDARD2_1 || NET6_0_OR_GREATER + await stream.WriteAsync(handshakeBytes.AsMemory(0, handshakeBytes.Length), cts.Token).ConfigureAwait(false); +#else + await stream.WriteAsync(handshakeBytes, 0, handshakeBytes.Length, cts.Token).ConfigureAwait(false); +#endif + if (IsDebugEnabled()) McpLog.Info("Sent handshake FRAMING=1 (strict)", always: false); + } + catch (Exception ex) + { + if (IsDebugEnabled()) McpLog.Warn($"Handshake failed: {ex.Message}"); + return; + } + + while (isRunning && !token.IsCancellationRequested) + { + try + { + string commandText = await ReadFrameAsUtf8Async(stream, FrameIOTimeoutMs, token).ConfigureAwait(false); + + try + { + if (IsDebugEnabled()) + { + var preview = commandText.Length > 120 ? commandText.Substring(0, 120) + "…" : commandText; + McpLog.Info($"recv framed: {preview}", always: false); + } + } + catch { } + string commandId = Guid.NewGuid().ToString(); + var tcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + + if (commandText.Trim() == "ping") + { + byte[] pingResponseBytes = System.Text.Encoding.UTF8.GetBytes( + "{\"status\":\"success\",\"result\":{\"message\":\"pong\"}}" + ); + await WriteFrameAsync(stream, pingResponseBytes); + continue; + } + + lock (lockObj) + { + commandQueue[commandId] = new QueuedCommand + { + CommandJson = commandText, + Tcs = tcs, + IsExecuting = false + }; + } + + string response; + try + { + using var respCts = new CancellationTokenSource(FrameIOTimeoutMs); + var completed = await Task.WhenAny(tcs.Task, Task.Delay(FrameIOTimeoutMs, respCts.Token)).ConfigureAwait(false); + if (completed == tcs.Task) + { + respCts.Cancel(); + response = tcs.Task.Result; + } + else + { + var timeoutResponse = new + { + status = "error", + error = $"Command processing timed out after {FrameIOTimeoutMs} ms", + }; + response = JsonConvert.SerializeObject(timeoutResponse); + } + } + catch (Exception ex) + { + var errorResponse = new + { + status = "error", + error = ex.Message, + }; + response = JsonConvert.SerializeObject(errorResponse); + } + + if (IsDebugEnabled()) + { + try { McpLog.Info("[MCP] sending framed response", always: false); } catch { } + } + long seq = Interlocked.Increment(ref _ioSeq); + byte[] responseBytes; + try + { + responseBytes = System.Text.Encoding.UTF8.GetBytes(response); + IoInfo($"[IO] ➜ write start seq={seq} tag=response len={responseBytes.Length} reqId=?"); + } + catch (Exception ex) + { + IoInfo($"[IO] ✗ serialize FAIL tag=response reqId=? {ex.GetType().Name}: {ex.Message}"); + throw; + } + + var swDirect = System.Diagnostics.Stopwatch.StartNew(); + try + { + await WriteFrameAsync(stream, responseBytes); + swDirect.Stop(); + IoInfo($"[IO] ✓ write end tag=response len={responseBytes.Length} reqId=? durMs={swDirect.Elapsed.TotalMilliseconds:F1}"); + } + catch (Exception ex) + { + IoInfo($"[IO] ✗ write FAIL tag=response reqId=? {ex.GetType().Name}: {ex.Message}"); + throw; + } + } + catch (Exception ex) + { + string msg = ex.Message ?? string.Empty; + bool isBenign = + msg.IndexOf("Connection closed before reading expected bytes", StringComparison.OrdinalIgnoreCase) >= 0 + || msg.IndexOf("Read timed out", StringComparison.OrdinalIgnoreCase) >= 0 + || ex is IOException; + if (isBenign) + { + if (IsDebugEnabled()) McpLog.Info($"Client handler: {msg}", always: false); + } + else + { + McpLog.Error($"Client handler error: {msg}"); + } + break; + } + } + } + finally + { + lock (clientsLock) { activeClients.Remove(client); } + } + } + } + + private static async Task ReadExactAsync(NetworkStream stream, int count, int timeoutMs, CancellationToken cancel = default) + { + byte[] buffer = new byte[count]; + int offset = 0; + var stopwatch = System.Diagnostics.Stopwatch.StartNew(); + + while (offset < count) + { + int remaining = count - offset; + int remainingTimeout = timeoutMs <= 0 + ? Timeout.Infinite + : timeoutMs - (int)stopwatch.ElapsedMilliseconds; + + if (remainingTimeout != Timeout.Infinite && remainingTimeout <= 0) + { + throw new IOException("Read timed out"); + } + + using var cts = CancellationTokenSource.CreateLinkedTokenSource(cancel); + if (remainingTimeout != Timeout.Infinite) + { + cts.CancelAfter(remainingTimeout); + } + + try + { +#if NETSTANDARD2_1 || NET6_0_OR_GREATER + int read = await stream.ReadAsync(buffer.AsMemory(offset, remaining), cts.Token).ConfigureAwait(false); +#else + int read = await stream.ReadAsync(buffer, offset, remaining, cts.Token).ConfigureAwait(false); +#endif + if (read == 0) + { + throw new IOException("Connection closed before reading expected bytes"); + } + offset += read; + } + catch (OperationCanceledException) when (!cancel.IsCancellationRequested) + { + throw new IOException("Read timed out"); + } + } + + return buffer; + } + + private static Task WriteFrameAsync(NetworkStream stream, byte[] payload) + { + using var cts = new CancellationTokenSource(FrameIOTimeoutMs); + return WriteFrameAsync(stream, payload, cts.Token); + } + + private static async Task WriteFrameAsync(NetworkStream stream, byte[] payload, CancellationToken cancel) + { + if (payload == null) + { + throw new ArgumentNullException(nameof(payload)); + } + if ((ulong)payload.LongLength > MaxFrameBytes) + { + throw new IOException($"Frame too large: {payload.LongLength}"); + } + byte[] header = new byte[8]; + WriteUInt64BigEndian(header, (ulong)payload.LongLength); +#if NETSTANDARD2_1 || NET6_0_OR_GREATER + await stream.WriteAsync(header.AsMemory(0, header.Length), cancel).ConfigureAwait(false); + await stream.WriteAsync(payload.AsMemory(0, payload.Length), cancel).ConfigureAwait(false); +#else + await stream.WriteAsync(header, 0, header.Length, cancel).ConfigureAwait(false); + await stream.WriteAsync(payload, 0, payload.Length, cancel).ConfigureAwait(false); +#endif + } + + private static async Task ReadFrameAsUtf8Async(NetworkStream stream, int timeoutMs, CancellationToken cancel) + { + byte[] header = await ReadExactAsync(stream, 8, timeoutMs, cancel).ConfigureAwait(false); + ulong payloadLen = ReadUInt64BigEndian(header); + if (payloadLen > MaxFrameBytes) + { + throw new IOException($"Invalid framed length: {payloadLen}"); + } + if (payloadLen == 0UL) + throw new IOException("Zero-length frames are not allowed"); + if (payloadLen > int.MaxValue) + { + throw new IOException("Frame too large for buffer"); + } + int count = (int)payloadLen; + byte[] payload = await ReadExactAsync(stream, count, timeoutMs, cancel).ConfigureAwait(false); + return System.Text.Encoding.UTF8.GetString(payload); + } + + private static ulong ReadUInt64BigEndian(byte[] buffer) + { + if (buffer == null || buffer.Length < 8) return 0UL; + return ((ulong)buffer[0] << 56) + | ((ulong)buffer[1] << 48) + | ((ulong)buffer[2] << 40) + | ((ulong)buffer[3] << 32) + | ((ulong)buffer[4] << 24) + | ((ulong)buffer[5] << 16) + | ((ulong)buffer[6] << 8) + | buffer[7]; + } + + private static void WriteUInt64BigEndian(byte[] dest, ulong value) + { + if (dest == null || dest.Length < 8) + { + throw new ArgumentException("Destination buffer too small for UInt64"); + } + dest[0] = (byte)(value >> 56); + dest[1] = (byte)(value >> 48); + dest[2] = (byte)(value >> 40); + dest[3] = (byte)(value >> 32); + dest[4] = (byte)(value >> 24); + dest[5] = (byte)(value >> 16); + dest[6] = (byte)(value >> 8); + dest[7] = (byte)(value); + } + + private static void ProcessCommands() + { + if (!isRunning) return; + if (Interlocked.Exchange(ref processingCommands, 1) == 1) return; + try + { + double now = EditorApplication.timeSinceStartup; + if (now >= nextHeartbeatAt) + { + WriteHeartbeat(false); + nextHeartbeatAt = now + 0.5f; + } + + List<(string id, QueuedCommand command)> work; + lock (lockObj) + { + // Early exit inside lock to prevent per-frame List allocations (GitHub issue #577) + if (commandQueue.Count == 0) + { + return; + } + + work = new List<(string, QueuedCommand)>(commandQueue.Count); + foreach (var kvp in commandQueue) + { + var queued = kvp.Value; + if (queued.IsExecuting) continue; + queued.IsExecuting = true; + work.Add((kvp.Key, queued)); + } + } + + foreach (var item in work) + { + string id = item.id; + QueuedCommand queuedCommand = item.command; + string commandText = queuedCommand.CommandJson; + TaskCompletionSource tcs = queuedCommand.Tcs; + + if (string.IsNullOrWhiteSpace(commandText)) + { + var emptyResponse = new + { + status = "error", + error = "Empty command received", + }; + tcs.SetResult(JsonConvert.SerializeObject(emptyResponse)); + lock (lockObj) { commandQueue.Remove(id); } + continue; + } + + commandText = commandText.Trim(); + if (commandText == "ping") + { + var pingResponse = new + { + status = "success", + result = new { message = "pong" }, + }; + tcs.SetResult(JsonConvert.SerializeObject(pingResponse)); + lock (lockObj) { commandQueue.Remove(id); } + continue; + } + + if (!IsValidJson(commandText)) + { + var invalidJsonResponse = new + { + status = "error", + error = "Invalid JSON format", + receivedText = commandText.Length > 50 + ? commandText[..50] + "..." + : commandText, + }; + tcs.SetResult(JsonConvert.SerializeObject(invalidJsonResponse)); + lock (lockObj) { commandQueue.Remove(id); } + continue; + } + + ExecuteQueuedCommand(id, commandText, tcs); + } + } + finally + { + Interlocked.Exchange(ref processingCommands, 0); + } + } + + private static void ExecuteQueuedCommand(string commandId, string payload, TaskCompletionSource completionSource) + { + async void Runner() + { + try + { + using var cts = new CancellationTokenSource(FrameIOTimeoutMs); + string response = await TransportCommandDispatcher.ExecuteCommandJsonAsync(payload, cts.Token).ConfigureAwait(true); + completionSource.TrySetResult(response); + } + catch (OperationCanceledException) + { + var timeoutResponse = new + { + status = "error", + error = $"Command processing timed out after {FrameIOTimeoutMs} ms", + }; + completionSource.TrySetResult(JsonConvert.SerializeObject(timeoutResponse)); + } + catch (Exception ex) + { + McpLog.Error($"Error processing command: {ex.Message}\n{ex.StackTrace}"); + var response = new + { + status = "error", + error = ex.Message, + receivedText = payload?.Length > 50 + ? payload[..50] + "..." + : payload, + }; + completionSource.TrySetResult(JsonConvert.SerializeObject(response)); + } + finally + { + lock (lockObj) + { + commandQueue.Remove(commandId); + } + } + } + + Runner(); + } + + private static object InvokeOnMainThreadWithTimeout(Func func, int timeoutMs) + { + if (func == null) return null; + try + { + if (mainThreadId == 0) + { + try { return func(); } + catch (Exception ex) { throw new InvalidOperationException($"Main thread handler error: {ex.Message}", ex); } + } + try + { + if (Thread.CurrentThread.ManagedThreadId == mainThreadId) + { + return func(); + } + } + catch { } + + object result = null; + Exception captured = null; + var tcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + EditorApplication.delayCall += () => + { + try + { + result = func(); + } + catch (Exception ex) + { + captured = ex; + } + finally + { + try { tcs.TrySetResult(true); } catch { } + } + }; + + bool completed = tcs.Task.Wait(timeoutMs); + if (!completed) + { + return null; + } + if (captured != null) + { + throw new InvalidOperationException($"Main thread handler error: {captured.Message}", captured); + } + return result; + } + catch (Exception ex) + { + throw new InvalidOperationException($"Failed to invoke on main thread: {ex.Message}", ex); + } + } + + private static bool IsValidJson(string text) + { + if (string.IsNullOrWhiteSpace(text)) + { + return false; + } + + text = text.Trim(); + if ( + (text.StartsWith("{") && text.EndsWith("}")) + || + (text.StartsWith("[") && text.EndsWith("]")) + ) + { + try + { + JToken.Parse(text); + return true; + } + catch + { + return false; + } + } + + return false; + } + + + public static void WriteHeartbeat(bool reloading, string reason = null) + { + try + { + string dir = Environment.GetEnvironmentVariable("UNITY_MCP_STATUS_DIR"); + if (string.IsNullOrWhiteSpace(dir)) + { + dir = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".unity-mcp"); + } + Directory.CreateDirectory(dir); + string filePath = Path.Combine(dir, $"unity-mcp-status-{ComputeProjectHash(Application.dataPath)}.json"); + + string projectName = "Unknown"; + try + { + string projectPath = Application.dataPath; + if (!string.IsNullOrEmpty(projectPath)) + { + projectPath = projectPath.TrimEnd('/', '\\'); + if (projectPath.EndsWith("Assets", StringComparison.OrdinalIgnoreCase)) + { + projectPath = projectPath.Substring(0, projectPath.Length - 6).TrimEnd('/', '\\'); + } + projectName = Path.GetFileName(projectPath); + if (string.IsNullOrEmpty(projectName)) + { + projectName = "Unknown"; + } + } + } + catch { } + + var payload = new + { + unity_port = currentUnityPort, + reloading, + reason = reason ?? (reloading ? "reloading" : "ready"), + seq = heartbeatSeq, + project_path = Application.dataPath, + project_name = projectName, + unity_version = Application.unityVersion, + last_heartbeat = DateTime.UtcNow.ToString("O") + }; + File.WriteAllText(filePath, JsonConvert.SerializeObject(payload), new System.Text.UTF8Encoding(false)); + } + catch (Exception) + { + } + } + + private static string ComputeProjectHash(string input) + { + try + { + using var sha1 = System.Security.Cryptography.SHA1.Create(); + byte[] bytes = System.Text.Encoding.UTF8.GetBytes(input ?? string.Empty); + byte[] hashBytes = sha1.ComputeHash(bytes); + var sb = new System.Text.StringBuilder(); + foreach (byte b in hashBytes) + { + sb.Append(b.ToString("x2")); + } + return sb.ToString()[..8]; + } + catch + { + return "default"; + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Services/Transport/Transports/StdioBridgeHost.cs.meta b/Packages/MCPForUnity/Editor/Services/Transport/Transports/StdioBridgeHost.cs.meta new file mode 100644 index 00000000..b8368564 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Transport/Transports/StdioBridgeHost.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fd295cefe518e438693c12e9c7f37488 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/Transport/Transports/StdioTransportClient.cs b/Packages/MCPForUnity/Editor/Services/Transport/Transports/StdioTransportClient.cs new file mode 100644 index 00000000..ea3ed1a2 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Transport/Transports/StdioTransportClient.cs @@ -0,0 +1,50 @@ +using System; +using System.Threading.Tasks; +using MCPForUnity.Editor.Helpers; + +namespace MCPForUnity.Editor.Services.Transport.Transports +{ + /// + /// Adapts the existing TCP bridge into the transport abstraction. + /// + public class StdioTransportClient : IMcpTransportClient + { + private TransportState _state = TransportState.Disconnected("stdio"); + + public bool IsConnected => StdioBridgeHost.IsRunning; + public string TransportName => "stdio"; + public TransportState State => _state; + + public Task StartAsync() + { + try + { + StdioBridgeHost.StartAutoConnect(); + _state = TransportState.Connected("stdio", port: StdioBridgeHost.GetCurrentPort()); + return Task.FromResult(true); + } + catch (Exception ex) + { + _state = TransportState.Disconnected("stdio", ex.Message); + return Task.FromResult(false); + } + } + + public Task StopAsync() + { + StdioBridgeHost.Stop(); + _state = TransportState.Disconnected("stdio"); + return Task.CompletedTask; + } + + public Task VerifyAsync() + { + bool running = StdioBridgeHost.IsRunning; + _state = running + ? TransportState.Connected("stdio", port: StdioBridgeHost.GetCurrentPort()) + : TransportState.Disconnected("stdio", "Bridge not running"); + return Task.FromResult(running); + } + + } +} diff --git a/Packages/MCPForUnity/Editor/Services/Transport/Transports/StdioTransportClient.cs.meta b/Packages/MCPForUnity/Editor/Services/Transport/Transports/StdioTransportClient.cs.meta new file mode 100644 index 00000000..f4ac1ab0 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Transport/Transports/StdioTransportClient.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b2743f3468d5f433dbf2220f0838d8d1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Services/Transport/Transports/WebSocketTransportClient.cs b/Packages/MCPForUnity/Editor/Services/Transport/Transports/WebSocketTransportClient.cs new file mode 100644 index 00000000..b94c0836 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Transport/Transports/WebSocketTransportClient.cs @@ -0,0 +1,741 @@ +using System; +using System.Buffers; +using System.Collections.Generic; +using System.IO; +using System.Net.WebSockets; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using MCPForUnity.Editor.Constants; +using MCPForUnity.Editor.Helpers; +using MCPForUnity.Editor.Services; +using MCPForUnity.Editor.Services.Transport; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.Services.Transport.Transports +{ + /// + /// Maintains a persistent WebSocket connection to the MCP server plugin hub. + /// Handles registration, keep-alives, and command dispatch back into Unity via + /// . + /// + public class WebSocketTransportClient : IMcpTransportClient, IDisposable + { + private const string TransportDisplayName = "websocket"; + private static readonly TimeSpan[] ReconnectSchedule = + { + TimeSpan.Zero, + TimeSpan.FromSeconds(1), + TimeSpan.FromSeconds(3), + TimeSpan.FromSeconds(5), + TimeSpan.FromSeconds(10), + TimeSpan.FromSeconds(30) + }; + + private static readonly TimeSpan DefaultKeepAliveInterval = TimeSpan.FromSeconds(15); + private static readonly TimeSpan DefaultCommandTimeout = TimeSpan.FromSeconds(30); + + private readonly IToolDiscoveryService _toolDiscoveryService; + private ClientWebSocket _socket; + private CancellationTokenSource _lifecycleCts; + private CancellationTokenSource _connectionCts; + private Task _receiveTask; + private Task _keepAliveTask; + private readonly SemaphoreSlim _sendLock = new(1, 1); + + private Uri _endpointUri; + private string _sessionId; + private string _projectHash; + private string _projectName; + private string _projectPath; + private string _unityVersion; + private TimeSpan _keepAliveInterval = DefaultKeepAliveInterval; + private TimeSpan _socketKeepAliveInterval = DefaultKeepAliveInterval; + private volatile bool _isConnected; + private int _isReconnectingFlag; + private TransportState _state = TransportState.Disconnected(TransportDisplayName, "Transport not started"); + private string _apiKey; + private bool _disposed; + + public WebSocketTransportClient(IToolDiscoveryService toolDiscoveryService = null) + { + _toolDiscoveryService = toolDiscoveryService; + } + + public bool IsConnected => _isConnected; + public string TransportName => TransportDisplayName; + public TransportState State => _state; + + private Task> GetEnabledToolsOnMainThreadAsync(CancellationToken token) + { + return TransportCommandDispatcher.RunOnMainThreadAsync( + () => _toolDiscoveryService?.GetEnabledTools() ?? new List(), + token); + } + + public async Task StartAsync() + { + // Capture identity values on the main thread before any async context switching + _projectName = ProjectIdentityUtility.GetProjectName(); + _projectHash = ProjectIdentityUtility.GetProjectHash(); + _unityVersion = Application.unityVersion; + _apiKey = HttpEndpointUtility.IsRemoteScope() + ? EditorPrefs.GetString(EditorPrefKeys.ApiKey, string.Empty) + : string.Empty; + + // Get project root path (strip /Assets from dataPath) for focus nudging + string dataPath = Application.dataPath; + if (!string.IsNullOrEmpty(dataPath)) + { + string normalized = dataPath.TrimEnd('/', '\\'); + if (string.Equals(System.IO.Path.GetFileName(normalized), "Assets", StringComparison.Ordinal)) + { + _projectPath = System.IO.Path.GetDirectoryName(normalized) ?? normalized; + } + else + { + _projectPath = normalized; // Fallback if path doesn't end with Assets + } + } + + await StopAsync(); + + _lifecycleCts = new CancellationTokenSource(); + _endpointUri = BuildWebSocketUri(HttpEndpointUtility.GetBaseUrl()); + _sessionId = null; + + if (!await EstablishConnectionAsync(_lifecycleCts.Token)) + { + await StopAsync(); + return false; + } + + // State is connected but session ID might be pending until 'registered' message + _state = TransportState.Connected(TransportDisplayName, sessionId: "pending", details: _endpointUri.ToString()); + _isConnected = true; + return true; + } + + public async Task StopAsync() + { + if (_lifecycleCts == null) + { + return; + } + + try + { + _lifecycleCts.Cancel(); + } + catch { } + + await StopConnectionLoopsAsync().ConfigureAwait(false); + + if (_socket != null) + { + try + { + if (_socket.State == WebSocketState.Open || _socket.State == WebSocketState.CloseReceived) + { + await _socket.CloseAsync(WebSocketCloseStatus.NormalClosure, "Shutdown", CancellationToken.None).ConfigureAwait(false); + } + } + catch { } + finally + { + _socket.Dispose(); + _socket = null; + } + } + + _isConnected = false; + _state = TransportState.Disconnected(TransportDisplayName); + + _lifecycleCts.Dispose(); + _lifecycleCts = null; + } + + public async Task VerifyAsync() + { + if (_socket == null || _socket.State != WebSocketState.Open) + { + return false; + } + + if (_lifecycleCts == null) + { + return false; + } + + try + { + using var timeoutCts = CancellationTokenSource.CreateLinkedTokenSource(_lifecycleCts.Token); + timeoutCts.CancelAfter(TimeSpan.FromSeconds(5)); + await SendPongAsync(timeoutCts.Token).ConfigureAwait(false); + return true; + } + catch (Exception ex) + { + McpLog.Warn($"[WebSocket] Verify ping failed: {ex.Message}"); + return false; + } + } + + public void Dispose() + { + if (_disposed) + { + return; + } + + try + { + // Ensure background loops are stopped before disposing shared resources + StopAsync().GetAwaiter().GetResult(); + } + catch (Exception ex) + { + McpLog.Warn($"[WebSocket] Dispose failed to stop cleanly: {ex.Message}"); + } + + _sendLock?.Dispose(); + _socket?.Dispose(); + _lifecycleCts?.Dispose(); + _disposed = true; + } + + private async Task EstablishConnectionAsync(CancellationToken token) + { + await StopConnectionLoopsAsync().ConfigureAwait(false); + + _connectionCts?.Dispose(); + _connectionCts = CancellationTokenSource.CreateLinkedTokenSource(token); + CancellationToken connectionToken = _connectionCts.Token; + + _socket?.Dispose(); + _socket = new ClientWebSocket(); + _socket.Options.KeepAliveInterval = _socketKeepAliveInterval; + + // Add API key header if configured (for remote-hosted mode) + if (!string.IsNullOrEmpty(_apiKey)) + { + _socket.Options.SetRequestHeader(AuthConstants.ApiKeyHeader, _apiKey); + } + + try + { + await _socket.ConnectAsync(_endpointUri, connectionToken).ConfigureAwait(false); + } + catch (Exception ex) + { + string errorMsg = "Connection failed. Check that the server URL is correct, the server is running, and your API key (if required) is valid."; + McpLog.Error($"[WebSocket] {errorMsg} (Detail: {ex.Message})"); + _state = TransportState.Disconnected(TransportDisplayName, errorMsg); + return false; + } + + StartBackgroundLoops(connectionToken); + + try + { + await SendRegisterAsync(connectionToken).ConfigureAwait(false); + } + catch (Exception ex) + { + string regMsg = $"Registration with server failed: {ex.Message}"; + McpLog.Error($"[WebSocket] {regMsg}"); + _state = TransportState.Disconnected(TransportDisplayName, regMsg); + return false; + } + + return true; + } + + /// + /// Stops the connection loops and disposes of the connection CTS. + /// Particularly useful when reconnecting, we want to ensure that background loops are cancelled correctly before starting new oens + /// + /// Whether to await the receive and keep alive tasks before disposing. + private async Task StopConnectionLoopsAsync(bool awaitTasks = true) + { + if (_connectionCts != null && !_connectionCts.IsCancellationRequested) + { + try { _connectionCts.Cancel(); } catch { } + } + + if (_receiveTask != null) + { + if (awaitTasks) + { + try { await _receiveTask.ConfigureAwait(false); } catch { } + _receiveTask = null; + } + else if (_receiveTask.IsCompleted) + { + _receiveTask = null; + } + } + + if (_keepAliveTask != null) + { + if (awaitTasks) + { + try { await _keepAliveTask.ConfigureAwait(false); } catch { } + _keepAliveTask = null; + } + else if (_keepAliveTask.IsCompleted) + { + _keepAliveTask = null; + } + } + + if (_connectionCts != null) + { + _connectionCts.Dispose(); + _connectionCts = null; + } + } + + private void StartBackgroundLoops(CancellationToken token) + { + if ((_receiveTask != null && !_receiveTask.IsCompleted) || (_keepAliveTask != null && !_keepAliveTask.IsCompleted)) + { + return; + } + + _receiveTask = Task.Run(() => ReceiveLoopAsync(token), CancellationToken.None); + _keepAliveTask = Task.Run(() => KeepAliveLoopAsync(token), CancellationToken.None); + } + + private async Task ReceiveLoopAsync(CancellationToken token) + { + while (!token.IsCancellationRequested) + { + try + { + string message = await ReceiveMessageAsync(token).ConfigureAwait(false); + if (message == null) + { + continue; + } + await HandleMessageAsync(message, token).ConfigureAwait(false); + } + catch (OperationCanceledException) + { + break; + } + catch (WebSocketException wse) + { + McpLog.Warn($"[WebSocket] Receive loop error: {wse.Message}"); + await HandleSocketClosureAsync(wse.Message).ConfigureAwait(false); + break; + } + catch (Exception ex) + { + McpLog.Warn($"[WebSocket] Unexpected receive error: {ex.Message}"); + await HandleSocketClosureAsync(ex.Message).ConfigureAwait(false); + break; + } + } + } + + private async Task ReceiveMessageAsync(CancellationToken token) + { + if (_socket == null) + { + return null; + } + + byte[] rentedBuffer = System.Buffers.ArrayPool.Shared.Rent(8192); + var buffer = new ArraySegment(rentedBuffer); + using var ms = new MemoryStream(8192); + + try + { + while (!token.IsCancellationRequested) + { + WebSocketReceiveResult result = await _socket.ReceiveAsync(buffer, token).ConfigureAwait(false); + + if (result.MessageType == WebSocketMessageType.Close) + { + await HandleSocketClosureAsync(result.CloseStatusDescription ?? "Server closed connection").ConfigureAwait(false); + return null; + } + + if (result.Count > 0) + { + ms.Write(buffer.Array!, buffer.Offset, result.Count); + } + + if (result.EndOfMessage) + { + break; + } + } + + if (ms.Length == 0) + { + return null; + } + + return Encoding.UTF8.GetString(ms.ToArray()); + } + finally + { + System.Buffers.ArrayPool.Shared.Return(rentedBuffer); + } + } + + private async Task HandleMessageAsync(string message, CancellationToken token) + { + JObject payload; + try + { + payload = JObject.Parse(message); + } + catch (Exception ex) + { + McpLog.Warn($"[WebSocket] Invalid JSON payload: {ex.Message}"); + return; + } + + string messageType = payload.Value("type") ?? string.Empty; + + switch (messageType) + { + case "welcome": + ApplyWelcome(payload); + break; + case "registered": + await HandleRegisteredAsync(payload, token).ConfigureAwait(false); + break; + case "execute": + await HandleExecuteAsync(payload, token).ConfigureAwait(false); + break; + case "ping": + await SendPongAsync(token).ConfigureAwait(false); + break; + default: + // No-op for unrecognised types (keep-alives, telemetry, etc.) + break; + } + } + + private void ApplyWelcome(JObject payload) + { + int? keepAliveSeconds = payload.Value("keepAliveInterval"); + if (keepAliveSeconds.HasValue && keepAliveSeconds.Value > 0) + { + _keepAliveInterval = TimeSpan.FromSeconds(keepAliveSeconds.Value); + _socketKeepAliveInterval = _keepAliveInterval; + } + + int? serverTimeoutSeconds = payload.Value("serverTimeout"); + if (serverTimeoutSeconds.HasValue) + { + int sourceSeconds = keepAliveSeconds ?? serverTimeoutSeconds.Value; + int safeSeconds = Math.Max(5, Math.Min(serverTimeoutSeconds.Value, sourceSeconds)); + _socketKeepAliveInterval = TimeSpan.FromSeconds(safeSeconds); + } + } + + private async Task HandleRegisteredAsync(JObject payload, CancellationToken token) + { + string newSessionId = payload.Value("session_id"); + if (!string.IsNullOrEmpty(newSessionId)) + { + _sessionId = newSessionId; + ProjectIdentityUtility.SetSessionId(_sessionId); + _state = TransportState.Connected(TransportDisplayName, sessionId: _sessionId, details: _endpointUri.ToString()); + McpLog.Info($"[WebSocket] Registered with session ID: {_sessionId}", false); + + await SendRegisterToolsAsync(token).ConfigureAwait(false); + } + } + + private async Task SendRegisterToolsAsync(CancellationToken token) + { + if (_toolDiscoveryService == null) return; + + token.ThrowIfCancellationRequested(); + var tools = await GetEnabledToolsOnMainThreadAsync(token).ConfigureAwait(false); + token.ThrowIfCancellationRequested(); + McpLog.Info($"[WebSocket] Preparing to register {tools.Count} tool(s) with the bridge.", false); + var toolsArray = new JArray(); + + foreach (var tool in tools) + { + var toolObj = new JObject + { + ["name"] = tool.Name, + ["description"] = tool.Description, + ["structured_output"] = tool.StructuredOutput, + ["requires_polling"] = tool.RequiresPolling, + ["poll_action"] = tool.PollAction + }; + + var paramsArray = new JArray(); + if (tool.Parameters != null) + { + foreach (var p in tool.Parameters) + { + paramsArray.Add(new JObject + { + ["name"] = p.Name, + ["description"] = p.Description, + ["type"] = p.Type, + ["required"] = p.Required, + ["default_value"] = p.DefaultValue + }); + } + } + toolObj["parameters"] = paramsArray; + toolsArray.Add(toolObj); + } + + var payload = new JObject + { + ["type"] = "register_tools", + ["tools"] = toolsArray + }; + + await SendJsonAsync(payload, token).ConfigureAwait(false); + McpLog.Info($"[WebSocket] Sent {tools.Count} tools registration", false); + } + + private async Task HandleExecuteAsync(JObject payload, CancellationToken token) + { + string commandId = payload.Value("id"); + string commandName = payload.Value("name"); + JObject parameters = payload.Value("params") ?? new JObject(); + int timeoutSeconds = payload.Value("timeout") ?? (int)DefaultCommandTimeout.TotalSeconds; + + if (string.IsNullOrEmpty(commandId) || string.IsNullOrEmpty(commandName)) + { + McpLog.Warn("[WebSocket] Invalid execute payload (missing id or name)"); + return; + } + + var commandEnvelope = new JObject + { + ["type"] = commandName, + ["params"] = parameters + }; + + string responseJson; + try + { + using var timeoutCts = CancellationTokenSource.CreateLinkedTokenSource(token); + timeoutCts.CancelAfter(TimeSpan.FromSeconds(Math.Max(1, timeoutSeconds))); + responseJson = await TransportCommandDispatcher.ExecuteCommandJsonAsync(commandEnvelope.ToString(Formatting.None), timeoutCts.Token).ConfigureAwait(false); + } + catch (OperationCanceledException) + { + responseJson = JsonConvert.SerializeObject(new + { + status = "error", + error = $"Command '{commandName}' timed out after {timeoutSeconds} seconds" + }); + } + catch (Exception ex) + { + responseJson = JsonConvert.SerializeObject(new + { + status = "error", + error = ex.Message + }); + } + + JToken resultToken; + try + { + resultToken = JToken.Parse(responseJson); + } + catch + { + resultToken = new JObject + { + ["status"] = "error", + ["error"] = "Invalid response payload" + }; + } + + var responsePayload = new JObject + { + ["type"] = "command_result", + ["id"] = commandId, + ["result"] = resultToken + }; + + await SendJsonAsync(responsePayload, token).ConfigureAwait(false); + } + + private async Task KeepAliveLoopAsync(CancellationToken token) + { + while (!token.IsCancellationRequested) + { + try + { + await Task.Delay(_keepAliveInterval, token).ConfigureAwait(false); + if (_socket == null || _socket.State != WebSocketState.Open) + { + break; + } + await SendPongAsync(token).ConfigureAwait(false); + } + catch (OperationCanceledException) + { + break; + } + catch (Exception ex) + { + McpLog.Warn($"[WebSocket] Keep-alive failed: {ex.Message}"); + await HandleSocketClosureAsync(ex.Message).ConfigureAwait(false); + break; + } + } + } + + private async Task SendRegisterAsync(CancellationToken token) + { + var registerPayload = new JObject + { + ["type"] = "register", + // session_id is now server-authoritative; omitted here or sent as null + ["project_name"] = _projectName, + ["project_hash"] = _projectHash, + ["unity_version"] = _unityVersion, + ["project_path"] = _projectPath + }; + + await SendJsonAsync(registerPayload, token).ConfigureAwait(false); + } + + private Task SendPongAsync(CancellationToken token) + { + var payload = new JObject + { + ["type"] = "pong", + ["session_id"] = _sessionId // Include session ID for server-side tracking + }; + return SendJsonAsync(payload, token); + } + + private async Task SendJsonAsync(JObject payload, CancellationToken token) + { + if (_socket == null) + { + throw new InvalidOperationException("WebSocket is not initialised"); + } + + string json = payload.ToString(Formatting.None); + byte[] bytes = Encoding.UTF8.GetBytes(json); + var buffer = new ArraySegment(bytes); + + await _sendLock.WaitAsync(token).ConfigureAwait(false); + try + { + if (_socket.State != WebSocketState.Open) + { + throw new InvalidOperationException("WebSocket is not open"); + } + + await _socket.SendAsync(buffer, WebSocketMessageType.Text, true, token).ConfigureAwait(false); + } + finally + { + _sendLock.Release(); + } + } + + private async Task HandleSocketClosureAsync(string reason) + { + // Capture stack trace for debugging disconnection triggers + var stackTrace = new System.Diagnostics.StackTrace(true); + McpLog.Debug($"[WebSocket] HandleSocketClosureAsync called. Reason: {reason}\nStack trace:\n{stackTrace}"); + + if (_lifecycleCts == null || _lifecycleCts.IsCancellationRequested) + { + return; + } + + if (Interlocked.CompareExchange(ref _isReconnectingFlag, 1, 0) != 0) + { + return; + } + + _isConnected = false; + _state = _state.WithError(reason ?? "Connection closed"); + McpLog.Warn($"[WebSocket] Connection closed: {reason}"); + + await StopConnectionLoopsAsync(awaitTasks: false).ConfigureAwait(false); + + _ = Task.Run(() => AttemptReconnectAsync(_lifecycleCts.Token), CancellationToken.None); + } + + private async Task AttemptReconnectAsync(CancellationToken token) + { + try + { + await StopConnectionLoopsAsync().ConfigureAwait(false); + + foreach (TimeSpan delay in ReconnectSchedule) + { + if (token.IsCancellationRequested) + { + return; + } + + if (delay > TimeSpan.Zero) + { + try { await Task.Delay(delay, token).ConfigureAwait(false); } + catch (OperationCanceledException) { return; } + } + + if (await EstablishConnectionAsync(token).ConfigureAwait(false)) + { + _state = TransportState.Connected(TransportDisplayName, sessionId: _sessionId, details: _endpointUri.ToString()); + _isConnected = true; + McpLog.Info("[WebSocket] Reconnected to MCP server", false); + return; + } + } + } + finally + { + Interlocked.Exchange(ref _isReconnectingFlag, 0); + } + + _state = TransportState.Disconnected(TransportDisplayName, "Failed to reconnect"); + } + + private static Uri BuildWebSocketUri(string baseUrl) + { + if (!Uri.TryCreate(baseUrl, UriKind.Absolute, out var httpUri)) + { + throw new InvalidOperationException($"Invalid MCP base URL: {baseUrl}"); + } + + // Replace bind-only addresses with localhost for client connections + // 0.0.0.0 and :: are only valid for server binding, not client connections + string host = httpUri.Host; + if (host == "0.0.0.0" || host == "::") + { + McpLog.Warn($"[WebSocket] Base URL host '{host}' is bind-only; using 'localhost' for client connection."); + host = "localhost"; + } + + var builder = new UriBuilder(httpUri) + { + Scheme = httpUri.Scheme.Equals("https", StringComparison.OrdinalIgnoreCase) ? "wss" : "ws", + Host = host, + Path = httpUri.AbsolutePath.TrimEnd('/') + "/hub/plugin" + }; + + return builder.Uri; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Services/Transport/Transports/WebSocketTransportClient.cs.meta b/Packages/MCPForUnity/Editor/Services/Transport/Transports/WebSocketTransportClient.cs.meta new file mode 100644 index 00000000..91b98e00 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Services/Transport/Transports/WebSocketTransportClient.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 044c8f7beb4af4a77a14d677190c21dc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Setup.meta b/Packages/MCPForUnity/Editor/Setup.meta new file mode 100644 index 00000000..1157b1e9 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Setup.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 600c9cb20c329d761bfa799158a87bac +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Setup/SetupWindowService.cs b/Packages/MCPForUnity/Editor/Setup/SetupWindowService.cs new file mode 100644 index 00000000..cdc766c1 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Setup/SetupWindowService.cs @@ -0,0 +1,110 @@ +using System; +using MCPForUnity.Editor.Constants; +using MCPForUnity.Editor.Dependencies; +using MCPForUnity.Editor.Dependencies.Models; +using MCPForUnity.Editor.Helpers; +using MCPForUnity.Editor.Windows; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.Setup +{ + /// + /// Handles automatic triggering of the MCP setup window and exposes menu entry points + /// + [InitializeOnLoad] + public static class SetupWindowService + { + private const string SETUP_COMPLETED_KEY = EditorPrefKeys.SetupCompleted; + private const string SETUP_DISMISSED_KEY = EditorPrefKeys.SetupDismissed; + + // Use SessionState to persist "checked this editor session" across domain reloads. + // SessionState survives assembly reloads within the same Editor session, which prevents + // the setup window from reappearing after code reloads / playmode transitions. + private const string SessionCheckedKey = "MCPForUnity.SetupWindowCheckedThisEditorSession"; + + static SetupWindowService() + { + // Skip in batch mode + if (Application.isBatchMode) + return; + + // Show Setup Window on package import + EditorApplication.delayCall += CheckSetupNeeded; + } + + /// + /// Check if Setup Window should be shown + /// + private static void CheckSetupNeeded() + { + // Ensure we only run once per Editor session (survives domain reloads). + // This avoids showing the setup dialog repeatedly when scripts recompile or Play mode toggles. + if (SessionState.GetBool(SessionCheckedKey, false)) + return; + + SessionState.SetBool(SessionCheckedKey, true); + + try + { + // Check if setup was already completed or dismissed in previous sessions + bool setupCompleted = EditorPrefs.GetBool(SETUP_COMPLETED_KEY, false); + bool setupDismissed = EditorPrefs.GetBool(SETUP_DISMISSED_KEY, false); + + // Only show Setup Window if it hasn't been completed or dismissed before + if (!(setupCompleted || setupDismissed)) + { + McpLog.Info("Package imported - showing Setup Window", always: false); + + var dependencyResult = DependencyManager.CheckAllDependencies(); + EditorApplication.delayCall += () => ShowSetupWindow(dependencyResult); + } + else + { + McpLog.Info( + "Setup Window skipped - previously completed or dismissed", + always: false + ); + } + } + catch (Exception ex) + { + McpLog.Error($"Error checking setup status: {ex.Message}"); + } + } + + /// + /// Show the setup window + /// + public static void ShowSetupWindow(DependencyCheckResult dependencyResult = null) + { + try + { + dependencyResult ??= DependencyManager.CheckAllDependencies(); + MCPSetupWindow.ShowWindow(dependencyResult); + } + catch (Exception ex) + { + McpLog.Error($"Error showing setup window: {ex.Message}"); + } + } + + /// + /// Mark setup as completed + /// + public static void MarkSetupCompleted() + { + EditorPrefs.SetBool(SETUP_COMPLETED_KEY, true); + McpLog.Info("Setup marked as completed"); + } + + /// + /// Mark setup as dismissed + /// + public static void MarkSetupDismissed() + { + EditorPrefs.SetBool(SETUP_DISMISSED_KEY, true); + McpLog.Info("Setup marked as dismissed"); + } + } +} diff --git a/Packages/MCPForUnity/Editor/Setup/SetupWindowService.cs.meta b/Packages/MCPForUnity/Editor/Setup/SetupWindowService.cs.meta new file mode 100644 index 00000000..ab1d46ab --- /dev/null +++ b/Packages/MCPForUnity/Editor/Setup/SetupWindowService.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d1bf468667bb649989e3ef53dafddea6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools.meta b/Packages/MCPForUnity/Editor/Tools.meta new file mode 100644 index 00000000..2bc55f08 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c97b83a6ac92a704b864eef27c3d285b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/BatchExecute.cs b/Packages/MCPForUnity/Editor/Tools/BatchExecute.cs new file mode 100644 index 00000000..d9df336d --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/BatchExecute.cs @@ -0,0 +1,221 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using MCPForUnity.Editor.Helpers; +using Newtonsoft.Json.Linq; + +namespace MCPForUnity.Editor.Tools +{ + /// + /// Executes multiple MCP commands within a single Unity-side handler. Commands are executed sequentially + /// on the main thread to preserve determinism and Unity API safety. + /// + [McpForUnityTool("batch_execute", AutoRegister = false)] + public static class BatchExecute + { + private const int MaxCommandsPerBatch = 25; + + public static async Task HandleCommand(JObject @params) + { + if (@params == null) + { + return new ErrorResponse("'commands' payload is required."); + } + + var commandsToken = @params["commands"] as JArray; + if (commandsToken == null || commandsToken.Count == 0) + { + return new ErrorResponse("Provide at least one command entry in 'commands'."); + } + + if (commandsToken.Count > MaxCommandsPerBatch) + { + return new ErrorResponse($"A maximum of {MaxCommandsPerBatch} commands are allowed per batch."); + } + + bool failFast = @params.Value("failFast") ?? false; + bool parallelRequested = @params.Value("parallel") ?? false; + int? maxParallel = @params.Value("maxParallelism"); + + if (parallelRequested) + { + McpLog.Warn("batch_execute parallel mode requested, but commands will run sequentially on the main thread for safety."); + } + + var commandResults = new List(commandsToken.Count); + int invocationSuccessCount = 0; + int invocationFailureCount = 0; + bool anyCommandFailed = false; + + foreach (var token in commandsToken) + { + if (token is not JObject commandObj) + { + invocationFailureCount++; + anyCommandFailed = true; + commandResults.Add(new + { + tool = (string)null, + callSucceeded = false, + error = "Command entries must be JSON objects." + }); + if (failFast) + { + break; + } + continue; + } + + string toolName = commandObj["tool"]?.ToString(); + var rawParams = commandObj["params"] as JObject ?? new JObject(); + var commandParams = NormalizeParameterKeys(rawParams); + + if (string.IsNullOrWhiteSpace(toolName)) + { + invocationFailureCount++; + anyCommandFailed = true; + commandResults.Add(new + { + tool = toolName, + callSucceeded = false, + error = "Each command must include a non-empty 'tool' field." + }); + if (failFast) + { + break; + } + continue; + } + + try + { + var result = await CommandRegistry.InvokeCommandAsync(toolName, commandParams).ConfigureAwait(true); + bool callSucceeded = DetermineCallSucceeded(result); + if (callSucceeded) + { + invocationSuccessCount++; + } + else + { + invocationFailureCount++; + anyCommandFailed = true; + } + + commandResults.Add(new + { + tool = toolName, + callSucceeded, + result + }); + + if (!callSucceeded && failFast) + { + break; + } + } + catch (Exception ex) + { + invocationFailureCount++; + anyCommandFailed = true; + commandResults.Add(new + { + tool = toolName, + callSucceeded = false, + error = ex.Message + }); + + if (failFast) + { + break; + } + } + } + + bool overallSuccess = !anyCommandFailed; + var data = new + { + results = commandResults, + callSuccessCount = invocationSuccessCount, + callFailureCount = invocationFailureCount, + parallelRequested, + parallelApplied = false, + maxParallelism = maxParallel + }; + + return overallSuccess + ? new SuccessResponse("Batch execution completed.", data) + : new ErrorResponse("One or more commands failed.", data); + } + + private static bool DetermineCallSucceeded(object result) + { + if (result == null) + { + return true; + } + + if (result is IMcpResponse response) + { + return response.Success; + } + + if (result is JObject obj) + { + var successToken = obj["success"]; + if (successToken != null && successToken.Type == JTokenType.Boolean) + { + return successToken.Value(); + } + } + + if (result is JToken token) + { + var successToken = token["success"]; + if (successToken != null && successToken.Type == JTokenType.Boolean) + { + return successToken.Value(); + } + } + + return true; + } + + private static JObject NormalizeParameterKeys(JObject source) + { + if (source == null) + { + return new JObject(); + } + + var normalized = new JObject(); + foreach (var property in source.Properties()) + { + string normalizedName = ToCamelCase(property.Name); + normalized[normalizedName] = NormalizeToken(property.Value); + } + return normalized; + } + + private static JArray NormalizeArray(JArray source) + { + var normalized = new JArray(); + foreach (var token in source) + { + normalized.Add(NormalizeToken(token)); + } + return normalized; + } + + private static JToken NormalizeToken(JToken token) + { + return token switch + { + JObject obj => NormalizeParameterKeys(obj), + JArray arr => NormalizeArray(arr), + _ => token.DeepClone() + }; + } + + private static string ToCamelCase(string key) => StringCaseUtility.ToCamelCase(key); + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/BatchExecute.cs.meta b/Packages/MCPForUnity/Editor/Tools/BatchExecute.cs.meta new file mode 100644 index 00000000..491cc79a --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/BatchExecute.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4e1e2d8f3a454a37b18d06a7a7b6c3fb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/CommandRegistry.cs b/Packages/MCPForUnity/Editor/Tools/CommandRegistry.cs new file mode 100644 index 00000000..ca39ea51 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/CommandRegistry.cs @@ -0,0 +1,426 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Threading.Tasks; +using MCPForUnity.Editor.Helpers; +using MCPForUnity.Editor.Resources; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; + +namespace MCPForUnity.Editor.Tools +{ + /// + /// Holds information about a registered command handler. + /// + class HandlerInfo + { + public string CommandName { get; } + public Func SyncHandler { get; } + public Func> AsyncHandler { get; } + + public bool IsAsync => AsyncHandler != null; + + public HandlerInfo(string commandName, Func syncHandler, Func> asyncHandler) + { + CommandName = commandName; + SyncHandler = syncHandler; + AsyncHandler = asyncHandler; + } + } + + /// + /// Registry for all MCP command handlers via reflection. + /// Handles both MCP tools and resources. + /// + public static class CommandRegistry + { + private static readonly Dictionary _handlers = new(); + private static bool _initialized = false; + + /// + /// Initialize and auto-discover all tools and resources marked with + /// [McpForUnityTool] or [McpForUnityResource] + /// + public static void Initialize() + { + if (_initialized) return; + + AutoDiscoverCommands(); + _initialized = true; + } + + private static string ToSnakeCase(string name) => StringCaseUtility.ToSnakeCase(name); + + /// + /// Auto-discover all types with [McpForUnityTool] or [McpForUnityResource] attributes + /// + private static void AutoDiscoverCommands() + { + try + { + var allTypes = AppDomain.CurrentDomain.GetAssemblies() + .Where(a => !a.IsDynamic) + .SelectMany(a => + { + try { return a.GetTypes(); } + catch { return new Type[0]; } + }) + .ToList(); + + // Discover tools + var toolTypes = allTypes.Where(t => t.GetCustomAttribute() != null); + int toolCount = 0; + foreach (var type in toolTypes) + { + if (RegisterCommandType(type, isResource: false)) + toolCount++; + } + + // Discover resources + var resourceTypes = allTypes.Where(t => t.GetCustomAttribute() != null); + int resourceCount = 0; + foreach (var type in resourceTypes) + { + if (RegisterCommandType(type, isResource: true)) + resourceCount++; + } + + McpLog.Info($"Auto-discovered {toolCount} tools and {resourceCount} resources ({_handlers.Count} total handlers)", false); + } + catch (Exception ex) + { + McpLog.Error($"Failed to auto-discover MCP commands: {ex.Message}"); + } + } + + /// + /// Register a command type (tool or resource) with the registry. + /// Returns true if successfully registered, false otherwise. + /// + private static bool RegisterCommandType(Type type, bool isResource) + { + string commandName; + string typeLabel = isResource ? "resource" : "tool"; + + // Get command name from appropriate attribute + if (isResource) + { + var resourceAttr = type.GetCustomAttribute(); + commandName = resourceAttr.ResourceName; + } + else + { + var toolAttr = type.GetCustomAttribute(); + commandName = toolAttr.CommandName; + } + + // Auto-generate command name if not explicitly provided + if (string.IsNullOrEmpty(commandName)) + { + commandName = ToSnakeCase(type.Name); + } + + // Check for duplicate command names + if (_handlers.ContainsKey(commandName)) + { + McpLog.Warn( + $"Duplicate command name '{commandName}' detected. " + + $"{typeLabel} {type.Name} will override previously registered handler." + ); + } + + // Find HandleCommand method + var method = type.GetMethod( + "HandleCommand", + BindingFlags.Public | BindingFlags.Static, + null, + new[] { typeof(JObject) }, + null + ); + + if (method == null) + { + McpLog.Warn( + $"MCP {typeLabel} {type.Name} is marked with [McpForUnity{(isResource ? "Resource" : "Tool")}] " + + $"but has no public static HandleCommand(JObject) method" + ); + return false; + } + + try + { + HandlerInfo handlerInfo; + + if (typeof(Task).IsAssignableFrom(method.ReturnType)) + { + var asyncHandler = CreateAsyncHandlerDelegate(method, commandName); + handlerInfo = new HandlerInfo(commandName, null, asyncHandler); + } + else + { + var handler = (Func)Delegate.CreateDelegate( + typeof(Func), + method + ); + handlerInfo = new HandlerInfo(commandName, handler, null); + } + + _handlers[commandName] = handlerInfo; + return true; + } + catch (Exception ex) + { + McpLog.Error($"Failed to register {typeLabel} {type.Name}: {ex.Message}"); + return false; + } + } + + /// + /// Get a command handler by name + /// + private static HandlerInfo GetHandlerInfo(string commandName) + { + if (!_handlers.TryGetValue(commandName, out var handler)) + { + throw new InvalidOperationException( + $"Unknown or unsupported command type: {commandName}" + ); + } + return handler; + } + + /// + /// Get a synchronous command handler by name. + /// Throws if the command is asynchronous. + /// + /// + /// + /// + public static Func GetHandler(string commandName) + { + var handlerInfo = GetHandlerInfo(commandName); + if (handlerInfo.IsAsync) + { + throw new InvalidOperationException( + $"Command '{commandName}' is asynchronous and must be executed via ExecuteCommand" + ); + } + + return handlerInfo.SyncHandler; + } + + /// + /// Execute a command handler, supporting both synchronous and asynchronous (coroutine) handlers. + /// If the handler returns an IEnumerator, it will be executed as a coroutine. + /// + /// The command name to execute + /// Command parameters + /// TaskCompletionSource to complete when async operation finishes + /// The result for synchronous commands, or null for async commands (TCS will be completed later) + public static object ExecuteCommand(string commandName, JObject @params, TaskCompletionSource tcs) + { + var handlerInfo = GetHandlerInfo(commandName); + + if (handlerInfo.IsAsync) + { + ExecuteAsyncHandler(handlerInfo, @params, commandName, tcs); + return null; + } + + if (handlerInfo.SyncHandler == null) + { + throw new InvalidOperationException($"Handler for '{commandName}' does not provide a synchronous implementation"); + } + + return handlerInfo.SyncHandler(@params); + } + + /// + /// Execute a command handler and return its raw result, regardless of sync or async implementation. + /// Used internally for features like batch execution where commands need to be composed. + /// + /// The registered command to execute. + /// Parameters to pass to the command (optional). + public static Task InvokeCommandAsync(string commandName, JObject @params) + { + var handlerInfo = GetHandlerInfo(commandName); + var payload = @params ?? new JObject(); + + if (handlerInfo.IsAsync) + { + if (handlerInfo.AsyncHandler == null) + { + throw new InvalidOperationException($"Async handler for '{commandName}' is not configured correctly"); + } + + return handlerInfo.AsyncHandler(payload); + } + + if (handlerInfo.SyncHandler == null) + { + throw new InvalidOperationException($"Handler for '{commandName}' does not provide a synchronous implementation"); + } + + object result = handlerInfo.SyncHandler(payload); + return Task.FromResult(result); + } + + /// + /// Create a delegate for an async handler method that returns Task or Task. + /// The delegate will invoke the method and await its completion, returning the result. + /// + /// + /// + /// + /// + private static Func> CreateAsyncHandlerDelegate(MethodInfo method, string commandName) + { + return async (JObject parameters) => + { + object rawResult; + + try + { + rawResult = method.Invoke(null, new object[] { parameters }); + } + catch (TargetInvocationException ex) + { + throw ex.InnerException ?? ex; + } + + if (rawResult == null) + { + return null; + } + + if (rawResult is not Task task) + { + throw new InvalidOperationException( + $"Async handler '{commandName}' returned an object that is not a Task" + ); + } + + await task.ConfigureAwait(true); + + var taskType = task.GetType(); + if (taskType.IsGenericType) + { + var resultProperty = taskType.GetProperty("Result"); + if (resultProperty != null) + { + return resultProperty.GetValue(task); + } + } + + return null; + }; + } + + private static void ExecuteAsyncHandler( + HandlerInfo handlerInfo, + JObject parameters, + string commandName, + TaskCompletionSource tcs) + { + if (handlerInfo.AsyncHandler == null) + { + throw new InvalidOperationException($"Async handler for '{commandName}' is not configured correctly"); + } + + Task handlerTask; + + try + { + handlerTask = handlerInfo.AsyncHandler(parameters); + } + catch (Exception ex) + { + ReportAsyncFailure(commandName, tcs, ex); + return; + } + + if (handlerTask == null) + { + CompleteAsyncCommand(commandName, tcs, null); + return; + } + + async void AwaitHandler() + { + try + { + var finalResult = await handlerTask.ConfigureAwait(true); + CompleteAsyncCommand(commandName, tcs, finalResult); + } + catch (Exception ex) + { + ReportAsyncFailure(commandName, tcs, ex); + } + } + + AwaitHandler(); + } + + /// + /// Complete the TaskCompletionSource for an async command with a success result. + /// + /// + /// + /// + private static void CompleteAsyncCommand(string commandName, TaskCompletionSource tcs, object result) + { + try + { + var response = new { status = "success", result }; + string json = JsonConvert.SerializeObject(response); + + if (!tcs.TrySetResult(json)) + { + McpLog.Warn($"TCS for async command '{commandName}' was already completed"); + } + } + catch (Exception ex) + { + McpLog.Error($"Error completing async command '{commandName}': {ex.Message}\n{ex.StackTrace}"); + ReportAsyncFailure(commandName, tcs, ex); + } + } + + /// + /// Report an error that occurred during async command execution. + /// Completes the TaskCompletionSource with an error response. + /// + /// + /// + /// + private static void ReportAsyncFailure(string commandName, TaskCompletionSource tcs, Exception ex) + { + McpLog.Error($"Error in async command '{commandName}': {ex.Message}\n{ex.StackTrace}"); + + var errorResponse = new + { + status = "error", + error = ex.Message, + command = commandName, + stackTrace = ex.StackTrace + }; + + string json; + try + { + json = JsonConvert.SerializeObject(errorResponse); + } + catch (Exception serializationEx) + { + McpLog.Error($"Failed to serialize error response for '{commandName}': {serializationEx.Message}"); + json = "{\"status\":\"error\",\"error\":\"Failed to complete command\"}"; + } + + if (!tcs.TrySetResult(json)) + { + McpLog.Warn($"TCS for async command '{commandName}' was already completed when trying to report error"); + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/CommandRegistry.cs.meta b/Packages/MCPForUnity/Editor/Tools/CommandRegistry.cs.meta new file mode 100644 index 00000000..15ec884b --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/CommandRegistry.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5b61b5a84813b5749a5c64422694a0fa +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/ExecuteMenuItem.cs b/Packages/MCPForUnity/Editor/Tools/ExecuteMenuItem.cs new file mode 100644 index 00000000..f606f774 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/ExecuteMenuItem.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; +using MCPForUnity.Editor.Helpers; +using Newtonsoft.Json.Linq; +using UnityEditor; + +namespace MCPForUnity.Editor.Tools +{ + [McpForUnityTool("execute_menu_item", AutoRegister = false)] + /// + /// Tool to execute a Unity Editor menu item by its path. + /// + public static class ExecuteMenuItem + { + // Basic blacklist to prevent execution of disruptive menu items. + private static readonly HashSet _menuPathBlacklist = new HashSet( + StringComparer.OrdinalIgnoreCase) + { + "File/Quit", + }; + + public static object HandleCommand(JObject @params) + { + McpLog.Info("[ExecuteMenuItem] Handling menu item command"); + string menuPath = @params["menu_path"]?.ToString() ?? @params["menuPath"]?.ToString(); + if (string.IsNullOrWhiteSpace(menuPath)) + { + return new ErrorResponse("Required parameter 'menu_path' or 'menuPath' is missing or empty."); + } + + if (_menuPathBlacklist.Contains(menuPath)) + { + return new ErrorResponse($"Execution of menu item '{menuPath}' is blocked for safety reasons."); + } + + try + { + bool executed = EditorApplication.ExecuteMenuItem(menuPath); + if (!executed) + { + McpLog.Error($"[MenuItemExecutor] Failed to execute menu item '{menuPath}'. It might be invalid, disabled, or context-dependent."); + return new ErrorResponse($"Failed to execute menu item '{menuPath}'. It might be invalid, disabled, or context-dependent."); + } + return new SuccessResponse($"Attempted to execute menu item: '{menuPath}'. Check Unity logs for confirmation or errors."); + } + catch (Exception e) + { + McpLog.Error($"[MenuItemExecutor] Failed to setup execution for '{menuPath}': {e}"); + return new ErrorResponse($"Error setting up execution for menu item '{menuPath}': {e.Message}"); + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/ExecuteMenuItem.cs.meta b/Packages/MCPForUnity/Editor/Tools/ExecuteMenuItem.cs.meta new file mode 100644 index 00000000..1caedb7f --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/ExecuteMenuItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 269232350d16a464091aea9e9fcc9b55 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/FindGameObjects.cs b/Packages/MCPForUnity/Editor/Tools/FindGameObjects.cs new file mode 100644 index 00000000..d04f0942 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/FindGameObjects.cs @@ -0,0 +1,81 @@ +using System.Collections.Generic; +using System.Linq; +using MCPForUnity.Editor.Helpers; +using Newtonsoft.Json.Linq; +using UnityEngine; + +namespace MCPForUnity.Editor.Tools +{ + /// + /// Tool for searching GameObjects in the scene. + /// Returns only instance IDs with pagination support. + /// + /// This is a focused search tool that returns lightweight results (IDs only). + /// For detailed GameObject data, use the unity://scene/gameobject/{id} resource. + /// + [McpForUnityTool("find_gameobjects")] + public static class FindGameObjects + { + /// + /// Handles the find_gameobjects command. + /// + /// Command parameters + /// Paginated list of instance IDs + public static object HandleCommand(JObject @params) + { + if (@params == null) + { + return new ErrorResponse("Parameters cannot be null."); + } + + var p = new ToolParams(@params); + + // Parse search parameters + string searchMethod = p.Get("searchMethod", "by_name"); + + // Try searchTerm, search_term, or target (for backwards compatibility) + string searchTerm = p.Get("searchTerm"); + if (string.IsNullOrEmpty(searchTerm)) + { + searchTerm = p.Get("target"); + } + + if (string.IsNullOrEmpty(searchTerm)) + { + return new ErrorResponse("'searchTerm' or 'target' parameter is required."); + } + + // Pagination parameters using standard PaginationRequest + var pagination = PaginationRequest.FromParams(@params, defaultPageSize: 50); + pagination.PageSize = Mathf.Clamp(pagination.PageSize, 1, 500); + + // Search options (supports multiple parameter name variants) + bool includeInactive = p.GetBool("includeInactive", false) || + p.GetBool("searchInactive", false); + + try + { + // Get all matching instance IDs + var allIds = GameObjectLookup.SearchGameObjects(searchMethod, searchTerm, includeInactive, 0); + + // Use standard pagination response + var paginatedResult = PaginationResponse.Create(allIds, pagination); + + return new SuccessResponse("Found GameObjects", new + { + instanceIDs = paginatedResult.Items, + pageSize = paginatedResult.PageSize, + cursor = paginatedResult.Cursor, + nextCursor = paginatedResult.NextCursor, + totalCount = paginatedResult.TotalCount, + hasMore = paginatedResult.HasMore + }); + } + catch (System.Exception ex) + { + McpLog.Error($"[FindGameObjects] Error searching GameObjects: {ex.Message}"); + return new ErrorResponse($"Error searching GameObjects: {ex.Message}"); + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/FindGameObjects.cs.meta b/Packages/MCPForUnity/Editor/Tools/FindGameObjects.cs.meta new file mode 100644 index 00000000..8d6f2b12 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/FindGameObjects.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4511082b395b14922b34e90f7a23027e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/GameObjects.meta b/Packages/MCPForUnity/Editor/Tools/GameObjects.meta new file mode 100644 index 00000000..a1ba389e --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/GameObjects.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b61d0e8082ed14c1fb500648007bba7a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/GameObjects/ComponentResolver.cs b/Packages/MCPForUnity/Editor/Tools/GameObjects/ComponentResolver.cs new file mode 100644 index 00000000..589374a1 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/GameObjects/ComponentResolver.cs @@ -0,0 +1,142 @@ +#nullable disable +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using MCPForUnity.Editor.Helpers; +using UnityEngine; + +namespace MCPForUnity.Editor.Tools +{ + /// + /// Component resolver that delegates to UnityTypeResolver. + /// Kept for backwards compatibility. + /// + internal static class ComponentResolver + { + /// + /// Resolve a Component/MonoBehaviour type by short or fully-qualified name. + /// Delegates to UnityTypeResolver.TryResolve with Component constraint. + /// + public static bool TryResolve(string nameOrFullName, out Type type, out string error) + { + return UnityTypeResolver.TryResolve(nameOrFullName, out type, out error, typeof(Component)); + } + + /// + /// Gets all accessible property and field names from a component type. + /// + public static List GetAllComponentProperties(Type componentType) + { + if (componentType == null) return new List(); + + var properties = componentType.GetProperties(BindingFlags.Public | BindingFlags.Instance) + .Where(p => p.CanRead && p.CanWrite) + .Select(p => p.Name); + + var fields = componentType.GetFields(BindingFlags.Public | BindingFlags.Instance) + .Where(f => !f.IsInitOnly && !f.IsLiteral) + .Select(f => f.Name); + + // Also include SerializeField private fields (common in Unity) + var serializeFields = componentType.GetFields(BindingFlags.NonPublic | BindingFlags.Instance) + .Where(f => f.GetCustomAttribute() != null) + .Select(f => f.Name); + + return properties.Concat(fields).Concat(serializeFields).Distinct().OrderBy(x => x).ToList(); + } + + /// + /// Suggests the most likely property matches for a user's input using fuzzy matching. + /// Uses Levenshtein distance, substring matching, and common naming pattern heuristics. + /// + public static List GetFuzzyPropertySuggestions(string userInput, List availableProperties) + { + if (string.IsNullOrWhiteSpace(userInput) || !availableProperties.Any()) + return new List(); + + var cacheKey = $"{userInput.ToLowerInvariant()}:{string.Join(",", availableProperties)}"; + if (PropertySuggestionCache.TryGetValue(cacheKey, out var cached)) + return cached; + + try + { + var suggestions = GetRuleBasedSuggestions(userInput, availableProperties); + PropertySuggestionCache[cacheKey] = suggestions; + return suggestions; + } + catch (Exception ex) + { + McpLog.Warn($"[Property Matching] Error getting suggestions for '{userInput}': {ex.Message}"); + return new List(); + } + } + + private static readonly Dictionary> PropertySuggestionCache = new(); + + /// + /// Rule-based suggestions that mimic AI behavior for property matching. + /// This provides immediate value while we could add real AI integration later. + /// + private static List GetRuleBasedSuggestions(string userInput, List availableProperties) + { + var suggestions = new List(); + var cleanedInput = userInput.ToLowerInvariant().Replace(" ", "").Replace("-", "").Replace("_", ""); + + foreach (var property in availableProperties) + { + var cleanedProperty = property.ToLowerInvariant().Replace(" ", "").Replace("-", "").Replace("_", ""); + + if (cleanedProperty == cleanedInput) + { + suggestions.Add(property); + continue; + } + + var inputWords = userInput.ToLowerInvariant().Split(new[] { ' ', '-', '_' }, StringSplitOptions.RemoveEmptyEntries); + if (inputWords.All(word => cleanedProperty.Contains(word.ToLowerInvariant()))) + { + suggestions.Add(property); + continue; + } + + if (LevenshteinDistance(cleanedInput, cleanedProperty) <= Math.Max(2, cleanedInput.Length / 4)) + { + suggestions.Add(property); + } + } + + return suggestions.OrderBy(s => LevenshteinDistance(cleanedInput, s.ToLowerInvariant().Replace(" ", ""))) + .Take(3) + .ToList(); + } + + /// + /// Calculates Levenshtein distance between two strings for similarity matching. + /// + private static int LevenshteinDistance(string s1, string s2) + { + if (string.IsNullOrEmpty(s1)) return s2?.Length ?? 0; + if (string.IsNullOrEmpty(s2)) return s1.Length; + + var matrix = new int[s1.Length + 1, s2.Length + 1]; + + for (int i = 0; i <= s1.Length; i++) matrix[i, 0] = i; + for (int j = 0; j <= s2.Length; j++) matrix[0, j] = j; + + for (int i = 1; i <= s1.Length; i++) + { + for (int j = 1; j <= s2.Length; j++) + { + int cost = (s2[j - 1] == s1[i - 1]) ? 0 : 1; + matrix[i, j] = Math.Min(Math.Min( + matrix[i - 1, j] + 1, + matrix[i, j - 1] + 1), + matrix[i - 1, j - 1] + cost); + } + } + + return matrix[s1.Length, s2.Length]; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/GameObjects/ComponentResolver.cs.meta b/Packages/MCPForUnity/Editor/Tools/GameObjects/ComponentResolver.cs.meta new file mode 100644 index 00000000..6738443d --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/GameObjects/ComponentResolver.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f5e5a46bdebc040c68897fa4b5e689c7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectComponentHelpers.cs b/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectComponentHelpers.cs new file mode 100644 index 00000000..e37d70a6 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectComponentHelpers.cs @@ -0,0 +1,410 @@ +#nullable disable +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using MCPForUnity.Editor.Helpers; +using MCPForUnity.Editor.Tools; +using MCPForUnity.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.Tools.GameObjects +{ + internal static class GameObjectComponentHelpers + { + internal static object AddComponentInternal(GameObject targetGo, string typeName, JObject properties) + { + Type componentType = FindType(typeName); + if (componentType == null) + { + return new ErrorResponse($"Component type '{typeName}' not found or is not a valid Component."); + } + if (!typeof(Component).IsAssignableFrom(componentType)) + { + return new ErrorResponse($"Type '{typeName}' is not a Component."); + } + + if (componentType == typeof(Transform)) + { + return new ErrorResponse("Cannot add another Transform component."); + } + + bool isAdding2DPhysics = typeof(Rigidbody2D).IsAssignableFrom(componentType) || typeof(Collider2D).IsAssignableFrom(componentType); + bool isAdding3DPhysics = typeof(Rigidbody).IsAssignableFrom(componentType) || typeof(Collider).IsAssignableFrom(componentType); + + if (isAdding2DPhysics) + { + if (targetGo.GetComponent() != null || targetGo.GetComponent() != null) + { + return new ErrorResponse($"Cannot add 2D physics component '{typeName}' because the GameObject '{targetGo.name}' already has a 3D Rigidbody or Collider."); + } + } + else if (isAdding3DPhysics) + { + if (targetGo.GetComponent() != null || targetGo.GetComponent() != null) + { + return new ErrorResponse($"Cannot add 3D physics component '{typeName}' because the GameObject '{targetGo.name}' already has a 2D Rigidbody or Collider."); + } + } + + try + { + Component newComponent = Undo.AddComponent(targetGo, componentType); + if (newComponent == null) + { + return new ErrorResponse($"Failed to add component '{typeName}' to '{targetGo.name}'. It might be disallowed (e.g., adding script twice)." + ); + } + + if (newComponent is Light light) + { + light.type = LightType.Directional; + } + + if (properties != null) + { + var setResult = SetComponentPropertiesInternal(targetGo, typeName, properties, newComponent); + if (setResult != null) + { + Undo.DestroyObjectImmediate(newComponent); + return setResult; + } + } + + return null; + } + catch (Exception e) + { + return new ErrorResponse($"Error adding component '{typeName}' to '{targetGo.name}': {e.Message}"); + } + } + + internal static object RemoveComponentInternal(GameObject targetGo, string typeName) + { + if (targetGo == null) + { + return new ErrorResponse("Target GameObject is null."); + } + + Type componentType = FindType(typeName); + if (componentType == null) + { + return new ErrorResponse($"Component type '{typeName}' not found for removal."); + } + + if (componentType == typeof(Transform)) + { + return new ErrorResponse("Cannot remove the Transform component."); + } + + Component componentToRemove = targetGo.GetComponent(componentType); + if (componentToRemove == null) + { + return new ErrorResponse($"Component '{typeName}' not found on '{targetGo.name}' to remove."); + } + + try + { + Undo.DestroyObjectImmediate(componentToRemove); + return null; + } + catch (Exception e) + { + return new ErrorResponse($"Error removing component '{typeName}' from '{targetGo.name}': {e.Message}"); + } + } + + internal static object SetComponentPropertiesInternal(GameObject targetGo, string componentTypeName, JObject properties, Component targetComponentInstance = null) + { + Component targetComponent = targetComponentInstance; + if (targetComponent == null) + { + if (ComponentResolver.TryResolve(componentTypeName, out var compType, out var compError)) + { + targetComponent = targetGo.GetComponent(compType); + } + else + { + targetComponent = targetGo.GetComponent(componentTypeName); + } + } + if (targetComponent == null) + { + return new ErrorResponse($"Component '{componentTypeName}' not found on '{targetGo.name}' to set properties."); + } + + Undo.RecordObject(targetComponent, "Set Component Properties"); + + var failures = new List(); + foreach (var prop in properties.Properties()) + { + string propName = prop.Name; + JToken propValue = prop.Value; + + try + { + bool setResult = SetProperty(targetComponent, propName, propValue); + if (!setResult) + { + var availableProperties = ComponentResolver.GetAllComponentProperties(targetComponent.GetType()); + var suggestions = ComponentResolver.GetFuzzyPropertySuggestions(propName, availableProperties); + var msg = suggestions.Any() + ? $"Property '{propName}' not found. Did you mean: {string.Join(", ", suggestions)}? Available: [{string.Join(", ", availableProperties)}]" + : $"Property '{propName}' not found. Available: [{string.Join(", ", availableProperties)}]"; + McpLog.Warn($"[ManageGameObject] {msg}"); + failures.Add(msg); + } + } + catch (Exception e) + { + McpLog.Error($"[ManageGameObject] Error setting property '{propName}' on '{componentTypeName}': {e.Message}"); + failures.Add($"Error setting '{propName}': {e.Message}"); + } + } + + EditorUtility.SetDirty(targetComponent); + return failures.Count == 0 + ? null + : new ErrorResponse($"One or more properties failed on '{componentTypeName}'.", new { errors = failures }); + } + + private static JsonSerializer InputSerializer => UnityJsonSerializer.Instance; + + private static bool SetProperty(object target, string memberName, JToken value) + { + Type type = target.GetType(); + BindingFlags flags = BindingFlags.Public | BindingFlags.Instance | BindingFlags.IgnoreCase; + + string normalizedName = Helpers.ParamCoercion.NormalizePropertyName(memberName); + var inputSerializer = InputSerializer; + + try + { + if (memberName.Contains('.') || memberName.Contains('[')) + { + return SetNestedProperty(target, memberName, value, inputSerializer); + } + + PropertyInfo propInfo = type.GetProperty(memberName, flags) ?? type.GetProperty(normalizedName, flags); + if (propInfo != null && propInfo.CanWrite) + { + object convertedValue = ConvertJTokenToType(value, propInfo.PropertyType, inputSerializer); + if (convertedValue != null || value.Type == JTokenType.Null) + { + propInfo.SetValue(target, convertedValue); + return true; + } + } + else + { + FieldInfo fieldInfo = type.GetField(memberName, flags) ?? type.GetField(normalizedName, flags); + if (fieldInfo != null) + { + object convertedValue = ConvertJTokenToType(value, fieldInfo.FieldType, inputSerializer); + if (convertedValue != null || value.Type == JTokenType.Null) + { + fieldInfo.SetValue(target, convertedValue); + return true; + } + } + else + { + var npField = type.GetField(memberName, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.IgnoreCase) + ?? type.GetField(normalizedName, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.IgnoreCase); + if (npField != null && npField.GetCustomAttribute() != null) + { + object convertedValue = ConvertJTokenToType(value, npField.FieldType, inputSerializer); + if (convertedValue != null || value.Type == JTokenType.Null) + { + npField.SetValue(target, convertedValue); + return true; + } + } + } + } + } + catch (Exception ex) + { + McpLog.Error($"[SetProperty] Failed to set '{memberName}' on {type.Name}: {ex.Message}\nToken: {value.ToString(Formatting.None)}"); + } + return false; + } + + private static bool SetNestedProperty(object target, string path, JToken value, JsonSerializer inputSerializer) + { + try + { + string[] pathParts = SplitPropertyPath(path); + if (pathParts.Length == 0) + return false; + + object currentObject = target; + Type currentType = currentObject.GetType(); + BindingFlags flags = BindingFlags.Public | BindingFlags.Instance | BindingFlags.IgnoreCase; + + for (int i = 0; i < pathParts.Length - 1; i++) + { + string part = pathParts[i]; + bool isArray = false; + int arrayIndex = -1; + + if (part.Contains("[")) + { + int startBracket = part.IndexOf('['); + int endBracket = part.IndexOf(']'); + if (startBracket > 0 && endBracket > startBracket) + { + string indexStr = part.Substring(startBracket + 1, endBracket - startBracket - 1); + if (int.TryParse(indexStr, out arrayIndex)) + { + isArray = true; + part = part.Substring(0, startBracket); + } + } + } + + PropertyInfo propInfo = currentType.GetProperty(part, flags); + FieldInfo fieldInfo = null; + if (propInfo == null) + { + fieldInfo = currentType.GetField(part, flags); + if (fieldInfo == null) + { + McpLog.Warn($"[SetNestedProperty] Could not find property or field '{part}' on type '{currentType.Name}'"); + return false; + } + } + + currentObject = propInfo != null ? propInfo.GetValue(currentObject) : fieldInfo.GetValue(currentObject); + if (currentObject == null) + { + McpLog.Warn($"[SetNestedProperty] Property '{part}' is null, cannot access nested properties."); + return false; + } + + if (isArray) + { + if (currentObject is Material[]) + { + var materials = currentObject as Material[]; + if (arrayIndex < 0 || arrayIndex >= materials.Length) + { + McpLog.Warn($"[SetNestedProperty] Material index {arrayIndex} out of range (0-{materials.Length - 1})"); + return false; + } + currentObject = materials[arrayIndex]; + } + else if (currentObject is System.Collections.IList) + { + var list = currentObject as System.Collections.IList; + if (arrayIndex < 0 || arrayIndex >= list.Count) + { + McpLog.Warn($"[SetNestedProperty] Index {arrayIndex} out of range (0-{list.Count - 1})"); + return false; + } + currentObject = list[arrayIndex]; + } + else + { + McpLog.Warn($"[SetNestedProperty] Property '{part}' is not an array or list, cannot access by index."); + return false; + } + } + + currentType = currentObject.GetType(); + } + + string finalPart = pathParts[pathParts.Length - 1]; + + if (currentObject is Material material && finalPart.StartsWith("_")) + { + return MaterialOps.TrySetShaderProperty(material, finalPart, value, inputSerializer); + } + + PropertyInfo finalPropInfo = currentType.GetProperty(finalPart, flags); + if (finalPropInfo != null && finalPropInfo.CanWrite) + { + object convertedValue = ConvertJTokenToType(value, finalPropInfo.PropertyType, inputSerializer); + if (convertedValue != null || value.Type == JTokenType.Null) + { + finalPropInfo.SetValue(currentObject, convertedValue); + return true; + } + } + else + { + FieldInfo finalFieldInfo = currentType.GetField(finalPart, flags); + if (finalFieldInfo != null) + { + object convertedValue = ConvertJTokenToType(value, finalFieldInfo.FieldType, inputSerializer); + if (convertedValue != null || value.Type == JTokenType.Null) + { + finalFieldInfo.SetValue(currentObject, convertedValue); + return true; + } + } + } + } + catch (Exception ex) + { + McpLog.Error($"[SetNestedProperty] Error setting nested property '{path}': {ex.Message}\nToken: {value.ToString(Formatting.None)}"); + } + + return false; + } + + private static string[] SplitPropertyPath(string path) + { + List parts = new List(); + int startIndex = 0; + bool inBrackets = false; + + for (int i = 0; i < path.Length; i++) + { + char c = path[i]; + + if (c == '[') + { + inBrackets = true; + } + else if (c == ']') + { + inBrackets = false; + } + else if (c == '.' && !inBrackets) + { + parts.Add(path.Substring(startIndex, i - startIndex)); + startIndex = i + 1; + } + } + if (startIndex < path.Length) + { + parts.Add(path.Substring(startIndex)); + } + return parts.ToArray(); + } + + private static object ConvertJTokenToType(JToken token, Type targetType, JsonSerializer inputSerializer) + { + return PropertyConversion.ConvertToType(token, targetType); + } + + private static Type FindType(string typeName) + { + if (ComponentResolver.TryResolve(typeName, out Type resolvedType, out string error)) + { + return resolvedType; + } + + if (!string.IsNullOrEmpty(error)) + { + McpLog.Warn($"[FindType] {error}"); + } + + return null; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectComponentHelpers.cs.meta b/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectComponentHelpers.cs.meta new file mode 100644 index 00000000..b22c165d --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectComponentHelpers.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b580af06e2d3a4788960f3f779edac54 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectCreate.cs b/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectCreate.cs new file mode 100644 index 00000000..6954a26b --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectCreate.cs @@ -0,0 +1,338 @@ +#nullable disable +using System; +using System.Linq; +using MCPForUnity.Editor.Helpers; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEditor.SceneManagement; +using UnityEditorInternal; +using UnityEngine; + +namespace MCPForUnity.Editor.Tools.GameObjects +{ + internal static class GameObjectCreate + { + internal static object Handle(JObject @params) + { + string name = @params["name"]?.ToString(); + if (string.IsNullOrEmpty(name)) + { + return new ErrorResponse("'name' parameter is required for 'create' action."); + } + + // Get prefab creation parameters + bool saveAsPrefab = @params["saveAsPrefab"]?.ToObject() ?? false; + string prefabPath = @params["prefabPath"]?.ToString(); + string tag = @params["tag"]?.ToString(); + string primitiveType = @params["primitiveType"]?.ToString(); + GameObject newGo = null; + + // --- Try Instantiating Prefab First --- + string originalPrefabPath = prefabPath; + if (!saveAsPrefab && !string.IsNullOrEmpty(prefabPath)) + { + string extension = System.IO.Path.GetExtension(prefabPath); + + if (!prefabPath.Contains("/") && (string.IsNullOrEmpty(extension) || extension.Equals(".prefab", StringComparison.OrdinalIgnoreCase))) + { + string prefabNameOnly = prefabPath; + McpLog.Info($"[ManageGameObject.Create] Searching for prefab named: '{prefabNameOnly}'"); + string[] guids = AssetDatabase.FindAssets($"t:Prefab {prefabNameOnly}"); + if (guids.Length == 0) + { + return new ErrorResponse($"Prefab named '{prefabNameOnly}' not found anywhere in the project."); + } + else if (guids.Length > 1) + { + string foundPaths = string.Join(", ", guids.Select(g => AssetDatabase.GUIDToAssetPath(g))); + return new ErrorResponse($"Multiple prefabs found matching name '{prefabNameOnly}': {foundPaths}. Please provide a more specific path."); + } + else + { + prefabPath = AssetDatabase.GUIDToAssetPath(guids[0]); + McpLog.Info($"[ManageGameObject.Create] Found unique prefab at path: '{prefabPath}'"); + } + } + else if (prefabPath.Contains("/") && string.IsNullOrEmpty(extension)) + { + McpLog.Warn($"[ManageGameObject.Create] Provided prefabPath '{prefabPath}' has no extension. Assuming it's a prefab and appending .prefab."); + prefabPath += ".prefab"; + } + else if (!prefabPath.Contains("/") && !string.IsNullOrEmpty(extension) && !extension.Equals(".prefab", StringComparison.OrdinalIgnoreCase)) + { + string fileName = prefabPath; + string fileNameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(fileName); + McpLog.Info($"[ManageGameObject.Create] Searching for asset file named: '{fileName}'"); + + string[] guids = AssetDatabase.FindAssets(fileNameWithoutExtension); + var matches = guids + .Select(g => AssetDatabase.GUIDToAssetPath(g)) + .Where(p => p.EndsWith("/" + fileName, StringComparison.OrdinalIgnoreCase) || p.Equals(fileName, StringComparison.OrdinalIgnoreCase)) + .ToArray(); + + if (matches.Length == 0) + { + return new ErrorResponse($"Asset file '{fileName}' not found anywhere in the project."); + } + else if (matches.Length > 1) + { + string foundPaths = string.Join(", ", matches); + return new ErrorResponse($"Multiple assets found matching file name '{fileName}': {foundPaths}. Please provide a more specific path."); + } + else + { + prefabPath = matches[0]; + McpLog.Info($"[ManageGameObject.Create] Found unique asset at path: '{prefabPath}'"); + } + } + + GameObject prefabAsset = AssetDatabase.LoadAssetAtPath(prefabPath); + if (prefabAsset != null) + { + try + { + newGo = PrefabUtility.InstantiatePrefab(prefabAsset) as GameObject; + + if (newGo == null) + { + McpLog.Error($"[ManageGameObject.Create] Failed to instantiate prefab at '{prefabPath}', asset might be corrupted or not a GameObject."); + return new ErrorResponse($"Failed to instantiate prefab at '{prefabPath}'."); + } + if (!string.IsNullOrEmpty(name)) + { + newGo.name = name; + } + Undo.RegisterCreatedObjectUndo(newGo, $"Instantiate Prefab '{prefabAsset.name}' as '{newGo.name}'"); + McpLog.Info($"[ManageGameObject.Create] Instantiated prefab '{prefabAsset.name}' from path '{prefabPath}' as '{newGo.name}'."); + } + catch (Exception e) + { + return new ErrorResponse($"Error instantiating prefab '{prefabPath}': {e.Message}"); + } + } + else + { + return new ErrorResponse($"Asset not found or not a GameObject at path: '{prefabPath}'."); + } + } + + // --- Fallback: Create Primitive or Empty GameObject --- + bool createdNewObject = false; + if (newGo == null) + { + if (!string.IsNullOrEmpty(primitiveType)) + { + try + { + PrimitiveType type = (PrimitiveType)Enum.Parse(typeof(PrimitiveType), primitiveType, true); + newGo = GameObject.CreatePrimitive(type); + if (!string.IsNullOrEmpty(name)) + { + newGo.name = name; + } + else + { + UnityEngine.Object.DestroyImmediate(newGo); + return new ErrorResponse("'name' parameter is required when creating a primitive."); + } + createdNewObject = true; + } + catch (ArgumentException) + { + return new ErrorResponse($"Invalid primitive type: '{primitiveType}'. Valid types: {string.Join(", ", Enum.GetNames(typeof(PrimitiveType)))}"); + } + catch (Exception e) + { + return new ErrorResponse($"Failed to create primitive '{primitiveType}': {e.Message}"); + } + } + else + { + if (string.IsNullOrEmpty(name)) + { + return new ErrorResponse("'name' parameter is required for 'create' action when not instantiating a prefab or creating a primitive."); + } + newGo = new GameObject(name); + createdNewObject = true; + } + + if (createdNewObject) + { + Undo.RegisterCreatedObjectUndo(newGo, $"Create GameObject '{newGo.name}'"); + } + } + + if (newGo == null) + { + return new ErrorResponse("Failed to create or instantiate the GameObject."); + } + + Undo.RecordObject(newGo.transform, "Set GameObject Transform"); + Undo.RecordObject(newGo, "Set GameObject Properties"); + + // Set Parent + JToken parentToken = @params["parent"]; + if (parentToken != null) + { + GameObject parentGo = ManageGameObjectCommon.FindObjectInternal(parentToken, "by_id_or_name_or_path"); + if (parentGo == null) + { + UnityEngine.Object.DestroyImmediate(newGo); + return new ErrorResponse($"Parent specified ('{parentToken}') but not found."); + } + newGo.transform.SetParent(parentGo.transform, true); + } + + // Set Transform + Vector3? position = VectorParsing.ParseVector3(@params["position"]); + Vector3? rotation = VectorParsing.ParseVector3(@params["rotation"]); + Vector3? scale = VectorParsing.ParseVector3(@params["scale"]); + + if (position.HasValue) newGo.transform.localPosition = position.Value; + if (rotation.HasValue) newGo.transform.localEulerAngles = rotation.Value; + if (scale.HasValue) newGo.transform.localScale = scale.Value; + + // Set Tag + if (!string.IsNullOrEmpty(tag)) + { + if (tag != "Untagged" && !System.Linq.Enumerable.Contains(InternalEditorUtility.tags, tag)) + { + McpLog.Info($"[ManageGameObject.Create] Tag '{tag}' not found. Creating it."); + try + { + InternalEditorUtility.AddTag(tag); + } + catch (Exception ex) + { + UnityEngine.Object.DestroyImmediate(newGo); + return new ErrorResponse($"Failed to create tag '{tag}': {ex.Message}."); + } + } + + try + { + newGo.tag = tag; + } + catch (Exception ex) + { + UnityEngine.Object.DestroyImmediate(newGo); + return new ErrorResponse($"Failed to set tag to '{tag}' during creation: {ex.Message}."); + } + } + + // Set Layer + string layerName = @params["layer"]?.ToString(); + if (!string.IsNullOrEmpty(layerName)) + { + int layerId = LayerMask.NameToLayer(layerName); + if (layerId != -1) + { + newGo.layer = layerId; + } + else + { + McpLog.Warn($"[ManageGameObject.Create] Layer '{layerName}' not found. Using default layer."); + } + } + + // Add Components + if (@params["componentsToAdd"] is JArray componentsToAddArray) + { + foreach (var compToken in componentsToAddArray) + { + string typeName = null; + JObject properties = null; + + if (compToken.Type == JTokenType.String) + { + typeName = compToken.ToString(); + } + else if (compToken is JObject compObj) + { + typeName = compObj["typeName"]?.ToString(); + properties = compObj["properties"] as JObject; + } + + if (!string.IsNullOrEmpty(typeName)) + { + var addResult = GameObjectComponentHelpers.AddComponentInternal(newGo, typeName, properties); + if (addResult != null) + { + UnityEngine.Object.DestroyImmediate(newGo); + return addResult; + } + } + else + { + McpLog.Warn($"[ManageGameObject] Invalid component format in componentsToAdd: {compToken}"); + } + } + } + + // Save as Prefab ONLY if we *created* a new object AND saveAsPrefab is true + GameObject finalInstance = newGo; + if (createdNewObject && saveAsPrefab) + { + string finalPrefabPath = prefabPath; + if (string.IsNullOrEmpty(finalPrefabPath)) + { + UnityEngine.Object.DestroyImmediate(newGo); + return new ErrorResponse("'prefabPath' is required when 'saveAsPrefab' is true and creating a new object."); + } + if (!finalPrefabPath.EndsWith(".prefab", StringComparison.OrdinalIgnoreCase)) + { + McpLog.Info($"[ManageGameObject.Create] Appending .prefab extension to save path: '{finalPrefabPath}' -> '{finalPrefabPath}.prefab'"); + finalPrefabPath += ".prefab"; + } + + try + { + string directoryPath = System.IO.Path.GetDirectoryName(finalPrefabPath); + if (!string.IsNullOrEmpty(directoryPath) && !System.IO.Directory.Exists(directoryPath)) + { + System.IO.Directory.CreateDirectory(directoryPath); + AssetDatabase.Refresh(ImportAssetOptions.ForceSynchronousImport); + McpLog.Info($"[ManageGameObject.Create] Created directory for prefab: {directoryPath}"); + } + + finalInstance = PrefabUtility.SaveAsPrefabAssetAndConnect(newGo, finalPrefabPath, InteractionMode.UserAction); + + if (finalInstance == null) + { + UnityEngine.Object.DestroyImmediate(newGo); + return new ErrorResponse($"Failed to save GameObject '{name}' as prefab at '{finalPrefabPath}'. Check path and permissions."); + } + McpLog.Info($"[ManageGameObject.Create] GameObject '{name}' saved as prefab to '{finalPrefabPath}' and instance connected."); + } + catch (Exception e) + { + UnityEngine.Object.DestroyImmediate(newGo); + return new ErrorResponse($"Error saving prefab '{finalPrefabPath}': {e.Message}"); + } + } + + Selection.activeGameObject = finalInstance; + + string messagePrefabPath = + finalInstance == null + ? originalPrefabPath + : AssetDatabase.GetAssetPath(PrefabUtility.GetCorrespondingObjectFromSource(finalInstance) ?? (UnityEngine.Object)finalInstance); + + string successMessage; + if (!createdNewObject && !string.IsNullOrEmpty(messagePrefabPath)) + { + successMessage = $"Prefab '{messagePrefabPath}' instantiated successfully as '{finalInstance.name}'."; + } + else if (createdNewObject && saveAsPrefab && !string.IsNullOrEmpty(messagePrefabPath)) + { + successMessage = $"GameObject '{finalInstance.name}' created and saved as prefab to '{messagePrefabPath}'."; + } + else + { + successMessage = $"GameObject '{finalInstance.name}' created successfully in scene."; + } + + return new SuccessResponse(successMessage, Helpers.GameObjectSerializer.GetGameObjectData(finalInstance)); + } + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectCreate.cs.meta b/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectCreate.cs.meta new file mode 100644 index 00000000..7c6589b6 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectCreate.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0931774a07e4b4626b4261dd8d0974c2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectDelete.cs b/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectDelete.cs new file mode 100644 index 00000000..f5681858 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectDelete.cs @@ -0,0 +1,48 @@ +#nullable disable +using System.Collections.Generic; +using MCPForUnity.Editor.Helpers; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.Tools.GameObjects +{ + internal static class GameObjectDelete + { + internal static object Handle(JToken targetToken, string searchMethod) + { + List targets = ManageGameObjectCommon.FindObjectsInternal(targetToken, searchMethod, true); + + if (targets.Count == 0) + { + return new ErrorResponse($"Target GameObject(s) ('{targetToken}') not found using method '{searchMethod ?? "default"}'."); + } + + List deletedObjects = new List(); + foreach (var targetGo in targets) + { + if (targetGo != null) + { + string goName = targetGo.name; + int goId = targetGo.GetInstanceID(); + // Note: Undo.DestroyObjectImmediate doesn't work reliably in test context, + // so we use Object.DestroyImmediate. This means delete isn't undoable. + // TODO: Investigate Undo.DestroyObjectImmediate behavior in Unity 2022+ + Object.DestroyImmediate(targetGo); + deletedObjects.Add(new { name = goName, instanceID = goId }); + } + } + + if (deletedObjects.Count > 0) + { + string message = + targets.Count == 1 + ? $"GameObject '{((dynamic)deletedObjects[0]).name}' deleted successfully." + : $"{deletedObjects.Count} GameObjects deleted successfully."; + return new SuccessResponse(message, deletedObjects); + } + + return new ErrorResponse("Failed to delete target GameObject(s)."); + } + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectDelete.cs.meta b/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectDelete.cs.meta new file mode 100644 index 00000000..7d95eabd --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectDelete.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 505a482aaf60b415abd794737a630b10 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectDuplicate.cs b/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectDuplicate.cs new file mode 100644 index 00000000..6faeb2ad --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectDuplicate.cs @@ -0,0 +1,86 @@ +#nullable disable +using MCPForUnity.Editor.Helpers; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEditor.SceneManagement; +using UnityEngine; + +namespace MCPForUnity.Editor.Tools.GameObjects +{ + internal static class GameObjectDuplicate + { + internal static object Handle(JObject @params, JToken targetToken, string searchMethod) + { + GameObject sourceGo = ManageGameObjectCommon.FindObjectInternal(targetToken, searchMethod); + if (sourceGo == null) + { + return new ErrorResponse($"Target GameObject ('{targetToken}') not found using method '{searchMethod ?? "default"}'."); + } + + string newName = @params["new_name"]?.ToString(); + Vector3? position = VectorParsing.ParseVector3(@params["position"]); + Vector3? offset = VectorParsing.ParseVector3(@params["offset"]); + JToken parentToken = @params["parent"]; + + GameObject duplicatedGo = UnityEngine.Object.Instantiate(sourceGo); + Undo.RegisterCreatedObjectUndo(duplicatedGo, $"Duplicate {sourceGo.name}"); + + if (!string.IsNullOrEmpty(newName)) + { + duplicatedGo.name = newName; + } + else + { + duplicatedGo.name = sourceGo.name.Replace("(Clone)", "").Trim() + "_Copy"; + } + + if (position.HasValue) + { + duplicatedGo.transform.position = position.Value; + } + else if (offset.HasValue) + { + duplicatedGo.transform.position = sourceGo.transform.position + offset.Value; + } + + if (parentToken != null) + { + if (parentToken.Type == JTokenType.Null || (parentToken.Type == JTokenType.String && string.IsNullOrEmpty(parentToken.ToString()))) + { + duplicatedGo.transform.SetParent(null); + } + else + { + GameObject newParent = ManageGameObjectCommon.FindObjectInternal(parentToken, "by_id_or_name_or_path"); + if (newParent != null) + { + duplicatedGo.transform.SetParent(newParent.transform, true); + } + else + { + McpLog.Warn($"[ManageGameObject.Duplicate] Parent '{parentToken}' not found. Object will remain at root level."); + } + } + } + else + { + duplicatedGo.transform.SetParent(sourceGo.transform.parent, true); + } + + EditorUtility.SetDirty(duplicatedGo); + EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); + + Selection.activeGameObject = duplicatedGo; + + return new SuccessResponse( + $"Duplicated '{sourceGo.name}' as '{duplicatedGo.name}'.", + new + { + originalName = sourceGo.name, + originalId = sourceGo.GetInstanceID(), + duplicatedObject = Helpers.GameObjectSerializer.GetGameObjectData(duplicatedGo) + } + ); + } + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectDuplicate.cs.meta b/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectDuplicate.cs.meta new file mode 100644 index 00000000..95811e90 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectDuplicate.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 698728d56425a47af92a45377031a48b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectHandlers.cs b/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectHandlers.cs new file mode 100644 index 00000000..bca36879 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectHandlers.cs @@ -0,0 +1,22 @@ +#nullable disable +using Newtonsoft.Json.Linq; + +namespace MCPForUnity.Editor.Tools.GameObjects +{ + internal static class GameObjectHandlers + { + internal static object Create(JObject @params) => GameObjectCreate.Handle(@params); + + internal static object Modify(JObject @params, JToken targetToken, string searchMethod) + => GameObjectModify.Handle(@params, targetToken, searchMethod); + + internal static object Delete(JToken targetToken, string searchMethod) + => GameObjectDelete.Handle(targetToken, searchMethod); + + internal static object Duplicate(JObject @params, JToken targetToken, string searchMethod) + => GameObjectDuplicate.Handle(@params, targetToken, searchMethod); + + internal static object MoveRelative(JObject @params, JToken targetToken, string searchMethod) + => GameObjectMoveRelative.Handle(@params, targetToken, searchMethod); + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectHandlers.cs.meta b/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectHandlers.cs.meta new file mode 100644 index 00000000..90df456d --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectHandlers.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f3cf2313460d44a09b258d2ee04c5ef0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectModify.cs b/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectModify.cs new file mode 100644 index 00000000..44511e91 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectModify.cs @@ -0,0 +1,297 @@ +#nullable disable +using System; +using System.Collections.Generic; +using System.Linq; +using MCPForUnity.Editor.Helpers; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEditor.SceneManagement; +using UnityEditorInternal; +using UnityEngine; + +namespace MCPForUnity.Editor.Tools.GameObjects +{ + internal static class GameObjectModify + { + internal static object Handle(JObject @params, JToken targetToken, string searchMethod) + { + // When setActive=true is specified, we need to search for inactive objects + // otherwise we can't find an inactive object to activate it + JObject findParams = null; + if (@params["setActive"]?.ToObject() == true) + { + findParams = new JObject { ["searchInactive"] = true }; + } + + GameObject targetGo = ManageGameObjectCommon.FindObjectInternal(targetToken, searchMethod, findParams); + if (targetGo == null) + { + return new ErrorResponse($"Target GameObject ('{targetToken}') not found using method '{searchMethod ?? "default"}'."); + } + + Undo.RecordObject(targetGo.transform, "Modify GameObject Transform"); + Undo.RecordObject(targetGo, "Modify GameObject Properties"); + + bool modified = false; + + string name = @params["name"]?.ToString(); + if (!string.IsNullOrEmpty(name) && targetGo.name != name) + { + // Check if we're renaming the root object of an open prefab stage + var prefabStageForRename = PrefabStageUtility.GetCurrentPrefabStage(); + bool isRenamingPrefabRoot = prefabStageForRename != null && + prefabStageForRename.prefabContentsRoot == targetGo; + + if (isRenamingPrefabRoot) + { + // Rename the prefab asset file to match the new name (avoids Unity dialog) + string assetPath = prefabStageForRename.assetPath; + string directory = System.IO.Path.GetDirectoryName(assetPath); + string newAssetPath = AssetPathUtility.NormalizeSeparators(System.IO.Path.Combine(directory, name + ".prefab")); + + // Only rename if the path actually changes + if (newAssetPath != assetPath) + { + // Check for collision using GUID comparison + string currentGuid = AssetDatabase.AssetPathToGUID(assetPath); + string existingGuid = AssetDatabase.AssetPathToGUID(newAssetPath); + + // Collision only if there's a different asset at the new path + if (!string.IsNullOrEmpty(existingGuid) && existingGuid != currentGuid) + { + return new ErrorResponse($"Cannot rename prefab root to '{name}': a prefab already exists at '{newAssetPath}'."); + } + + // Rename the asset file + string renameError = AssetDatabase.RenameAsset(assetPath, name); + if (!string.IsNullOrEmpty(renameError)) + { + return new ErrorResponse($"Failed to rename prefab asset: {renameError}"); + } + + McpLog.Info($"[GameObjectModify] Renamed prefab asset from '{assetPath}' to '{newAssetPath}'"); + } + } + + targetGo.name = name; + modified = true; + } + + JToken parentToken = @params["parent"]; + if (parentToken != null) + { + GameObject newParentGo = ManageGameObjectCommon.FindObjectInternal(parentToken, "by_id_or_name_or_path"); + if ( + newParentGo == null + && !(parentToken.Type == JTokenType.Null + || (parentToken.Type == JTokenType.String && string.IsNullOrEmpty(parentToken.ToString()))) + ) + { + return new ErrorResponse($"New parent ('{parentToken}') not found."); + } + if (newParentGo != null && newParentGo.transform.IsChildOf(targetGo.transform)) + { + return new ErrorResponse($"Cannot parent '{targetGo.name}' to '{newParentGo.name}', as it would create a hierarchy loop."); + } + if (targetGo.transform.parent != (newParentGo?.transform)) + { + targetGo.transform.SetParent(newParentGo?.transform, true); + modified = true; + } + } + + bool? setActive = @params["setActive"]?.ToObject(); + if (setActive.HasValue && targetGo.activeSelf != setActive.Value) + { + targetGo.SetActive(setActive.Value); + modified = true; + } + + string tag = @params["tag"]?.ToString(); + if (tag != null && targetGo.tag != tag) + { + string tagToSet = string.IsNullOrEmpty(tag) ? "Untagged" : tag; + + if (tagToSet != "Untagged" && !System.Linq.Enumerable.Contains(InternalEditorUtility.tags, tagToSet)) + { + McpLog.Info($"[ManageGameObject] Tag '{tagToSet}' not found. Creating it."); + try + { + InternalEditorUtility.AddTag(tagToSet); + } + catch (Exception ex) + { + return new ErrorResponse($"Failed to create tag '{tagToSet}': {ex.Message}."); + } + } + + try + { + targetGo.tag = tagToSet; + modified = true; + } + catch (Exception ex) + { + return new ErrorResponse($"Failed to set tag to '{tagToSet}': {ex.Message}."); + } + } + + string layerName = @params["layer"]?.ToString(); + if (!string.IsNullOrEmpty(layerName)) + { + int layerId = LayerMask.NameToLayer(layerName); + if (layerId == -1) + { + return new ErrorResponse($"Invalid layer specified: '{layerName}'. Use a valid layer name."); + } + if (layerId != -1 && targetGo.layer != layerId) + { + targetGo.layer = layerId; + modified = true; + } + } + + Vector3? position = VectorParsing.ParseVector3(@params["position"]); + Vector3? rotation = VectorParsing.ParseVector3(@params["rotation"]); + Vector3? scale = VectorParsing.ParseVector3(@params["scale"]); + + if (position.HasValue && targetGo.transform.localPosition != position.Value) + { + targetGo.transform.localPosition = position.Value; + modified = true; + } + if (rotation.HasValue && targetGo.transform.localEulerAngles != rotation.Value) + { + targetGo.transform.localEulerAngles = rotation.Value; + modified = true; + } + if (scale.HasValue && targetGo.transform.localScale != scale.Value) + { + targetGo.transform.localScale = scale.Value; + modified = true; + } + + if (@params["componentsToRemove"] is JArray componentsToRemoveArray) + { + foreach (var compToken in componentsToRemoveArray) + { + string typeName = compToken.ToString(); + if (!string.IsNullOrEmpty(typeName)) + { + var removeResult = GameObjectComponentHelpers.RemoveComponentInternal(targetGo, typeName); + if (removeResult != null) + return removeResult; + modified = true; + } + } + } + + if (@params["componentsToAdd"] is JArray componentsToAddArrayModify) + { + foreach (var compToken in componentsToAddArrayModify) + { + string typeName = null; + JObject properties = null; + if (compToken.Type == JTokenType.String) + typeName = compToken.ToString(); + else if (compToken is JObject compObj) + { + typeName = compObj["typeName"]?.ToString(); + properties = compObj["properties"] as JObject; + } + + if (!string.IsNullOrEmpty(typeName)) + { + var addResult = GameObjectComponentHelpers.AddComponentInternal(targetGo, typeName, properties); + if (addResult != null) + return addResult; + modified = true; + } + } + } + + var componentErrors = new List(); + if (@params["componentProperties"] is JObject componentPropertiesObj) + { + foreach (var prop in componentPropertiesObj.Properties()) + { + string compName = prop.Name; + JObject propertiesToSet = prop.Value as JObject; + if (propertiesToSet != null) + { + var setResult = GameObjectComponentHelpers.SetComponentPropertiesInternal(targetGo, compName, propertiesToSet); + if (setResult != null) + { + componentErrors.Add(setResult); + } + else + { + modified = true; + } + } + } + } + + if (componentErrors.Count > 0) + { + var aggregatedErrors = new List(); + foreach (var errorObj in componentErrors) + { + try + { + var dataProp = errorObj?.GetType().GetProperty("data"); + var dataVal = dataProp?.GetValue(errorObj); + if (dataVal != null) + { + var errorsProp = dataVal.GetType().GetProperty("errors"); + var errorsEnum = errorsProp?.GetValue(dataVal) as System.Collections.IEnumerable; + if (errorsEnum != null) + { + foreach (var item in errorsEnum) + { + var s = item?.ToString(); + if (!string.IsNullOrEmpty(s)) aggregatedErrors.Add(s); + } + } + } + } + catch (Exception ex) + { + McpLog.Warn($"[GameObjectModify] Error aggregating component errors: {ex.Message}"); + } + } + + return new ErrorResponse( + $"One or more component property operations failed on '{targetGo.name}'.", + new { componentErrors = componentErrors, errors = aggregatedErrors } + ); + } + + if (!modified) + { + return new SuccessResponse( + $"No modifications applied to GameObject '{targetGo.name}'.", + Helpers.GameObjectSerializer.GetGameObjectData(targetGo) + ); + } + + EditorUtility.SetDirty(targetGo); + + // Mark the appropriate scene as dirty (handles both regular scenes and prefab stages) + var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); + if (prefabStage != null) + { + EditorSceneManager.MarkSceneDirty(prefabStage.scene); + } + else + { + EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); + } + + return new SuccessResponse( + $"GameObject '{targetGo.name}' modified successfully.", + Helpers.GameObjectSerializer.GetGameObjectData(targetGo) + ); + } + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectModify.cs.meta b/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectModify.cs.meta new file mode 100644 index 00000000..3249f3e8 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectModify.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ec5e33513bd094257a26ef6f75ea4574 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectMoveRelative.cs b/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectMoveRelative.cs new file mode 100644 index 00000000..3335d287 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectMoveRelative.cs @@ -0,0 +1,119 @@ +#nullable disable +using MCPForUnity.Editor.Helpers; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEditor.SceneManagement; +using UnityEngine; + +namespace MCPForUnity.Editor.Tools.GameObjects +{ + internal static class GameObjectMoveRelative + { + internal static object Handle(JObject @params, JToken targetToken, string searchMethod) + { + GameObject targetGo = ManageGameObjectCommon.FindObjectInternal(targetToken, searchMethod); + if (targetGo == null) + { + return new ErrorResponse($"Target GameObject ('{targetToken}') not found using method '{searchMethod ?? "default"}'."); + } + + JToken referenceToken = @params["reference_object"]; + if (referenceToken == null) + { + return new ErrorResponse("'reference_object' parameter is required for 'move_relative' action."); + } + + GameObject referenceGo = ManageGameObjectCommon.FindObjectInternal(referenceToken, "by_id_or_name_or_path"); + if (referenceGo == null) + { + return new ErrorResponse($"Reference object '{referenceToken}' not found."); + } + + string direction = @params["direction"]?.ToString()?.ToLower(); + float distance = @params["distance"]?.ToObject() ?? 1f; + Vector3? customOffset = VectorParsing.ParseVector3(@params["offset"]); + bool useWorldSpace = @params["world_space"]?.ToObject() ?? true; + + Undo.RecordObject(targetGo.transform, $"Move {targetGo.name} relative to {referenceGo.name}"); + + Vector3 newPosition; + + if (customOffset.HasValue) + { + if (useWorldSpace) + { + newPosition = referenceGo.transform.position + customOffset.Value; + } + else + { + newPosition = referenceGo.transform.TransformPoint(customOffset.Value); + } + } + else if (!string.IsNullOrEmpty(direction)) + { + Vector3 directionVector = GetDirectionVector(direction, referenceGo.transform, useWorldSpace); + newPosition = referenceGo.transform.position + directionVector * distance; + } + else + { + return new ErrorResponse("Either 'direction' or 'offset' parameter is required for 'move_relative' action."); + } + + targetGo.transform.position = newPosition; + + EditorUtility.SetDirty(targetGo); + EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); + + return new SuccessResponse( + $"Moved '{targetGo.name}' relative to '{referenceGo.name}'.", + new + { + movedObject = targetGo.name, + referenceObject = referenceGo.name, + newPosition = new[] { targetGo.transform.position.x, targetGo.transform.position.y, targetGo.transform.position.z }, + direction = direction, + distance = distance, + gameObject = Helpers.GameObjectSerializer.GetGameObjectData(targetGo) + } + ); + } + + private static Vector3 GetDirectionVector(string direction, Transform referenceTransform, bool useWorldSpace) + { + if (useWorldSpace) + { + switch (direction) + { + case "right": return Vector3.right; + case "left": return Vector3.left; + case "up": return Vector3.up; + case "down": return Vector3.down; + case "forward": + case "front": return Vector3.forward; + case "back": + case "backward": + case "behind": return Vector3.back; + default: + McpLog.Warn($"[ManageGameObject.MoveRelative] Unknown direction '{direction}', defaulting to forward."); + return Vector3.forward; + } + } + + switch (direction) + { + case "right": return referenceTransform.right; + case "left": return -referenceTransform.right; + case "up": return referenceTransform.up; + case "down": return -referenceTransform.up; + case "forward": + case "front": return referenceTransform.forward; + case "back": + case "backward": + case "behind": return -referenceTransform.forward; + default: + McpLog.Warn($"[ManageGameObject.MoveRelative] Unknown direction '{direction}', defaulting to forward."); + return referenceTransform.forward; + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectMoveRelative.cs.meta b/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectMoveRelative.cs.meta new file mode 100644 index 00000000..3f29f708 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/GameObjects/GameObjectMoveRelative.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8b19997a165de45c2af3ada79a6d3f08 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/GameObjects/ManageGameObject.cs b/Packages/MCPForUnity/Editor/Tools/GameObjects/ManageGameObject.cs new file mode 100644 index 00000000..6900234e --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/GameObjects/ManageGameObject.cs @@ -0,0 +1,115 @@ +#nullable disable +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using MCPForUnity.Editor.Helpers; // For Response class +using Newtonsoft.Json.Linq; +using UnityEngine; +using UnityEngine.SceneManagement; + +namespace MCPForUnity.Editor.Tools.GameObjects +{ + /// + /// Handles GameObject manipulation within the current scene (CRUD, find, components). + /// + [McpForUnityTool("manage_gameobject", AutoRegister = false)] + public static class ManageGameObject + { + // --- Main Handler --- + + public static object HandleCommand(JObject @params) + { + if (@params == null) + { + return new ErrorResponse("Parameters cannot be null."); + } + + string action = @params["action"]?.ToString().ToLower(); + if (string.IsNullOrEmpty(action)) + { + return new ErrorResponse("Action parameter is required."); + } + + // Parameters used by various actions + JToken targetToken = @params["target"]; // Can be string (name/path) or int (instanceID) + string name = @params["name"]?.ToString(); + + // --- Usability Improvement: Alias 'name' to 'target' for modification actions --- + // If 'target' is missing but 'name' is provided, and we aren't creating a new object, + // assume the user meant "find object by name". + if (targetToken == null && !string.IsNullOrEmpty(name) && action != "create") + { + targetToken = name; + // We don't update @params["target"] because we use targetToken locally mostly, + // but some downstream methods might parse @params directly. Let's update @params too for safety. + @params["target"] = name; + } + // ------------------------------------------------------------------------------- + + string searchMethod = @params["searchMethod"]?.ToString().ToLower(); + string tag = @params["tag"]?.ToString(); + string layer = @params["layer"]?.ToString(); + JToken parentToken = @params["parent"]; + + // Coerce string JSON to JObject for 'componentProperties' if provided as a JSON string + var componentPropsToken = @params["componentProperties"]; + if (componentPropsToken != null && componentPropsToken.Type == JTokenType.String) + { + try + { + var parsed = JObject.Parse(componentPropsToken.ToString()); + @params["componentProperties"] = parsed; + } + catch (Exception e) + { + McpLog.Warn($"[ManageGameObject] Could not parse 'componentProperties' JSON string: {e.Message}"); + } + } + + // --- Prefab Asset Check --- + // Prefab assets require different tools. Only 'create' (instantiation) is valid here. + string targetPath = + targetToken?.Type == JTokenType.String ? targetToken.ToString() : null; + if ( + !string.IsNullOrEmpty(targetPath) + && targetPath.EndsWith(".prefab", StringComparison.OrdinalIgnoreCase) + && action != "create" // Allow prefab instantiation + ) + { + return new ErrorResponse( + $"Target '{targetPath}' is a prefab asset. " + + $"Use 'manage_asset' with action='modify' for prefab asset modifications, " + + $"or 'manage_prefabs' with action='open_stage' to edit the prefab in isolation mode." + ); + } + // --- End Prefab Asset Check --- + + try + { + switch (action) + { + // --- Primary lifecycle actions (kept in manage_gameobject) --- + case "create": + return GameObjectCreate.Handle(@params); + case "modify": + return GameObjectModify.Handle(@params, targetToken, searchMethod); + case "delete": + return GameObjectDelete.Handle(targetToken, searchMethod); + case "duplicate": + return GameObjectDuplicate.Handle(@params, targetToken, searchMethod); + case "move_relative": + return GameObjectMoveRelative.Handle(@params, targetToken, searchMethod); + + default: + return new ErrorResponse($"Unknown action: '{action}'."); + } + } + catch (Exception e) + { + McpLog.Error($"[ManageGameObject] Action '{action}' failed: {e}"); + return new ErrorResponse($"Internal error processing action '{action}': {e.Message}"); + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/GameObjects/ManageGameObject.cs.meta b/Packages/MCPForUnity/Editor/Tools/GameObjects/ManageGameObject.cs.meta new file mode 100644 index 00000000..5093c861 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/GameObjects/ManageGameObject.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7641d7388f0f6634b9d83d34de87b2ee +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/GameObjects/ManageGameObjectCommon.cs b/Packages/MCPForUnity/Editor/Tools/GameObjects/ManageGameObjectCommon.cs new file mode 100644 index 00000000..8d8a36ea --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/GameObjects/ManageGameObjectCommon.cs @@ -0,0 +1,238 @@ +#nullable disable +using System; +using System.Collections.Generic; +using System.Linq; +using MCPForUnity.Editor.Helpers; +using MCPForUnity.Editor.Tools; +using Newtonsoft.Json.Linq; +using UnityEditor.SceneManagement; +using UnityEngine; +using UnityEngine.SceneManagement; + +namespace MCPForUnity.Editor.Tools.GameObjects +{ + internal static class ManageGameObjectCommon + { + internal static GameObject FindObjectInternal(JToken targetToken, string searchMethod, JObject findParams = null) + { + bool findAll = findParams?["findAll"]?.ToObject() ?? false; + + if ( + targetToken?.Type == JTokenType.Integer + || (searchMethod == "by_id" && int.TryParse(targetToken?.ToString(), out _)) + ) + { + findAll = false; + } + + List results = FindObjectsInternal(targetToken, searchMethod, findAll, findParams); + return results.Count > 0 ? results[0] : null; + } + + internal static List FindObjectsInternal( + JToken targetToken, + string searchMethod, + bool findAll, + JObject findParams = null + ) + { + List results = new List(); + string searchTerm = findParams?["searchTerm"]?.ToString() ?? targetToken?.ToString(); + bool searchInChildren = findParams?["searchInChildren"]?.ToObject() ?? false; + bool searchInactive = findParams?["searchInactive"]?.ToObject() ?? false; + + if (string.IsNullOrEmpty(searchMethod)) + { + if (targetToken?.Type == JTokenType.Integer) + searchMethod = "by_id"; + else if (!string.IsNullOrEmpty(searchTerm) && searchTerm.Contains('/')) + searchMethod = "by_path"; + else + searchMethod = "by_name"; + } + + GameObject rootSearchObject = null; + if (searchInChildren && targetToken != null) + { + rootSearchObject = FindObjectInternal(targetToken, "by_id_or_name_or_path"); + if (rootSearchObject == null) + { + McpLog.Warn($"[ManageGameObject.Find] Root object '{targetToken}' for child search not found."); + return results; + } + } + + switch (searchMethod) + { + case "by_id": + if (int.TryParse(searchTerm, out int instanceId)) + { + var allObjects = GetAllSceneObjects(searchInactive); + GameObject obj = allObjects.FirstOrDefault(go => go.GetInstanceID() == instanceId); + if (obj != null) + results.Add(obj); + } + break; + + case "by_name": + var searchPoolName = rootSearchObject + ? rootSearchObject + .GetComponentsInChildren(searchInactive) + .Select(t => t.gameObject) + : GetAllSceneObjects(searchInactive); + results.AddRange(searchPoolName.Where(go => go.name == searchTerm)); + break; + + case "by_path": + if (rootSearchObject != null) + { + Transform foundTransform = rootSearchObject.transform.Find(searchTerm); + if (foundTransform != null) + results.Add(foundTransform.gameObject); + } + else + { + var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); + if (prefabStage != null || searchInactive) + { + // In Prefab Stage, GameObject.Find() doesn't work, need to search manually + var allObjects = GetAllSceneObjects(searchInactive); + foreach (var go in allObjects) + { + if (GameObjectLookup.MatchesPath(go, searchTerm)) + { + results.Add(go); + } + } + } + else + { + var found = GameObject.Find(searchTerm); + if (found != null) + results.Add(found); + } + } + break; + + case "by_tag": + var searchPoolTag = rootSearchObject + ? rootSearchObject + .GetComponentsInChildren(searchInactive) + .Select(t => t.gameObject) + : GetAllSceneObjects(searchInactive); + results.AddRange(searchPoolTag.Where(go => go.CompareTag(searchTerm))); + break; + + case "by_layer": + var searchPoolLayer = rootSearchObject + ? rootSearchObject + .GetComponentsInChildren(searchInactive) + .Select(t => t.gameObject) + : GetAllSceneObjects(searchInactive); + if (int.TryParse(searchTerm, out int layerIndex)) + { + results.AddRange(searchPoolLayer.Where(go => go.layer == layerIndex)); + } + else + { + int namedLayer = LayerMask.NameToLayer(searchTerm); + if (namedLayer != -1) + results.AddRange(searchPoolLayer.Where(go => go.layer == namedLayer)); + } + break; + + case "by_component": + Type componentType = FindType(searchTerm); + if (componentType != null) + { + IEnumerable searchPoolComp; + if (rootSearchObject) + { + searchPoolComp = rootSearchObject + .GetComponentsInChildren(componentType, searchInactive) + .Select(c => (c as Component).gameObject); + } + else + { +#if UNITY_2023_1_OR_NEWER + var inactive = searchInactive ? FindObjectsInactive.Include : FindObjectsInactive.Exclude; + searchPoolComp = UnityEngine.Object.FindObjectsByType(componentType, inactive, FindObjectsSortMode.None) + .Cast() + .Select(c => c.gameObject); +#else + searchPoolComp = UnityEngine.Object.FindObjectsOfType(componentType, searchInactive) + .Cast() + .Select(c => c.gameObject); +#endif + } + results.AddRange(searchPoolComp.Where(go => go != null)); + } + else + { + McpLog.Warn($"[ManageGameObject.Find] Component type not found: {searchTerm}"); + } + break; + + case "by_id_or_name_or_path": + if (int.TryParse(searchTerm, out int id)) + { + var allObjectsId = GetAllSceneObjects(true); + GameObject objById = allObjectsId.FirstOrDefault(go => go.GetInstanceID() == id); + if (objById != null) + { + results.Add(objById); + break; + } + } + + // Try path search - in Prefab Stage, GameObject.Find() doesn't work + var allObjectsForPath = GetAllSceneObjects(true); + GameObject objByPath = allObjectsForPath.FirstOrDefault(go => + { + return GameObjectLookup.MatchesPath(go, searchTerm); + }); + if (objByPath != null) + { + results.Add(objByPath); + break; + } + + var allObjectsName = GetAllSceneObjects(true); + results.AddRange(allObjectsName.Where(go => go.name == searchTerm)); + break; + + default: + McpLog.Warn($"[ManageGameObject.Find] Unknown search method: {searchMethod}"); + break; + } + + if (!findAll && results.Count > 1) + { + return new List { results[0] }; + } + + return results.Distinct().ToList(); + } + + private static IEnumerable GetAllSceneObjects(bool includeInactive) + { + // Delegate to GameObjectLookup to avoid code duplication and ensure consistent behavior + return GameObjectLookup.GetAllSceneObjects(includeInactive); + } + + private static Type FindType(string typeName) + { + if (ComponentResolver.TryResolve(typeName, out Type resolvedType, out string error)) + { + return resolvedType; + } + + if (!string.IsNullOrEmpty(error)) + { + McpLog.Warn($"[FindType] {error}"); + } + + return null; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/GameObjects/ManageGameObjectCommon.cs.meta b/Packages/MCPForUnity/Editor/Tools/GameObjects/ManageGameObjectCommon.cs.meta new file mode 100644 index 00000000..51c64c80 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/GameObjects/ManageGameObjectCommon.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6bf0edf3cd2af46729294682cee3bee4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/GetTestJob.cs b/Packages/MCPForUnity/Editor/Tools/GetTestJob.cs new file mode 100644 index 00000000..30c4fbf8 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/GetTestJob.cs @@ -0,0 +1,35 @@ +using System; +using MCPForUnity.Editor.Helpers; +using MCPForUnity.Editor.Services; +using Newtonsoft.Json.Linq; + +namespace MCPForUnity.Editor.Tools +{ + /// + /// Poll a previously started async test job by job_id. + /// + [McpForUnityTool("get_test_job", AutoRegister = false)] + public static class GetTestJob + { + public static object HandleCommand(JObject @params) + { + string jobId = @params?["job_id"]?.ToString() ?? @params?["jobId"]?.ToString(); + if (string.IsNullOrWhiteSpace(jobId)) + { + return new ErrorResponse("Missing required parameter 'job_id'."); + } + + bool includeDetails = ParamCoercion.CoerceBool(@params?["includeDetails"], false); + bool includeFailedTests = ParamCoercion.CoerceBool(@params?["includeFailedTests"], false); + + var job = TestJobManager.GetJob(jobId); + if (job == null) + { + return new ErrorResponse("Unknown job_id."); + } + + var payload = TestJobManager.ToSerializable(job, includeDetails, includeFailedTests); + return new SuccessResponse("Test job status retrieved.", payload); + } + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/GetTestJob.cs.meta b/Packages/MCPForUnity/Editor/Tools/GetTestJob.cs.meta new file mode 100644 index 00000000..d0b52eb6 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/GetTestJob.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 7f92c2b67a2c4b5c9d1a3c0e6f9b2d10 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: + + diff --git a/Packages/MCPForUnity/Editor/Tools/JsonUtil.cs b/Packages/MCPForUnity/Editor/Tools/JsonUtil.cs new file mode 100644 index 00000000..74b745d5 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/JsonUtil.cs @@ -0,0 +1,31 @@ +using MCPForUnity.Editor.Helpers; +using Newtonsoft.Json.Linq; +using UnityEngine; + +namespace MCPForUnity.Editor.Tools +{ + internal static class JsonUtil + { + /// + /// If @params[paramName] is a JSON string, parse it to a JObject in-place. + /// Logs a warning on parse failure and leaves the original value. + /// + internal static void CoerceJsonStringParameter(JObject @params, string paramName) + { + if (@params == null || string.IsNullOrEmpty(paramName)) return; + var token = @params[paramName]; + if (token != null && token.Type == JTokenType.String) + { + try + { + var parsed = JObject.Parse(token.ToString()); + @params[paramName] = parsed; + } + catch (Newtonsoft.Json.JsonReaderException e) + { + McpLog.Warn($"[MCP] Could not parse '{paramName}' JSON string: {e.Message}"); + } + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/JsonUtil.cs.meta b/Packages/MCPForUnity/Editor/Tools/JsonUtil.cs.meta new file mode 100644 index 00000000..b6e26827 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/JsonUtil.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d4b3b6009d53e4b8f97fe7ab57888c65 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/ManageAsset.cs b/Packages/MCPForUnity/Editor/Tools/ManageAsset.cs new file mode 100644 index 00000000..ed6e6c98 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/ManageAsset.cs @@ -0,0 +1,1120 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Linq; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEngine; +using MCPForUnity.Editor.Helpers; // For Response class +using MCPForUnity.Editor.Tools; + +#if UNITY_6000_0_OR_NEWER +using PhysicsMaterialType = UnityEngine.PhysicsMaterial; +using PhysicsMaterialCombine = UnityEngine.PhysicsMaterialCombine; +#else +using PhysicsMaterialType = UnityEngine.PhysicMaterial; +using PhysicsMaterialCombine = UnityEngine.PhysicMaterialCombine; +#endif + +namespace MCPForUnity.Editor.Tools +{ + /// + /// Handles asset management operations within the Unity project. + /// + [McpForUnityTool("manage_asset", AutoRegister = false)] + public static class ManageAsset + { + // --- Main Handler --- + + // Define the list of valid actions + private static readonly List ValidActions = new List + { + "import", + "create", + "modify", + "delete", + "duplicate", + "move", + "rename", + "search", + "get_info", + "create_folder", + "get_components", + }; + + public static object HandleCommand(JObject @params) + { + string action = @params["action"]?.ToString()?.ToLowerInvariant(); + if (string.IsNullOrEmpty(action)) + { + return new ErrorResponse("Action parameter is required."); + } + + // Check if the action is valid before switching + if (!ValidActions.Contains(action)) + { + string validActionsList = string.Join(", ", ValidActions); + return new ErrorResponse( + $"Unknown action: '{action}'. Valid actions are: {validActionsList}" + ); + } + + // Common parameters + string path = @params["path"]?.ToString(); + + // Coerce string JSON to JObject for 'properties' if provided as a JSON string + var propertiesToken = @params["properties"]; + if (propertiesToken != null && propertiesToken.Type == JTokenType.String) + { + try + { + var parsed = JObject.Parse(propertiesToken.ToString()); + @params["properties"] = parsed; + } + catch (Exception e) + { + McpLog.Warn($"[ManageAsset] Could not parse 'properties' JSON string: {e.Message}"); + } + } + + try + { + switch (action) + { + case "import": + // Note: Unity typically auto-imports. This might re-import or configure import settings. + return ReimportAsset(path, @params["properties"] as JObject); + case "create": + return CreateAsset(@params); + case "modify": + var properties = @params["properties"] as JObject; + return ModifyAsset(path, properties); + case "delete": + return DeleteAsset(path); + case "duplicate": + return DuplicateAsset(path, @params["destination"]?.ToString()); + case "move": // Often same as rename if within Assets/ + case "rename": + return MoveOrRenameAsset(path, @params["destination"]?.ToString()); + case "search": + return SearchAssets(@params); + case "get_info": + return GetAssetInfo( + path, + @params["generatePreview"]?.ToObject() ?? false + ); + case "create_folder": // Added specific action for clarity + return CreateFolder(path); + case "get_components": + return GetComponentsFromAsset(path); + + default: + // This error message is less likely to be hit now, but kept here as a fallback or for potential future modifications. + string validActionsListDefault = string.Join(", ", ValidActions); + return new ErrorResponse( + $"Unknown action: '{action}'. Valid actions are: {validActionsListDefault}" + ); + } + } + catch (Exception e) + { + McpLog.Error($"[ManageAsset] Action '{action}' failed for path '{path}': {e}"); + return new ErrorResponse( + $"Internal error processing action '{action}' on '{path}': {e.Message}" + ); + } + } + + // --- Action Implementations --- + + private static object ReimportAsset(string path, JObject properties) + { + if (string.IsNullOrEmpty(path)) + return new ErrorResponse("'path' is required for reimport."); + string fullPath = AssetPathUtility.SanitizeAssetPath(path); + if (!AssetExists(fullPath)) + return new ErrorResponse($"Asset not found at path: {fullPath}"); + + try + { + // TODO: Apply importer properties before reimporting? + // This is complex as it requires getting the AssetImporter, casting it, + // applying properties via reflection or specific methods, saving, then reimporting. + if (properties != null && properties.HasValues) + { + McpLog.Warn( + "[ManageAsset.Reimport] Modifying importer properties before reimport is not fully implemented yet." + ); + // AssetImporter importer = AssetImporter.GetAtPath(fullPath); + // if (importer != null) { /* Apply properties */ AssetDatabase.WriteImportSettingsIfDirty(fullPath); } + } + + AssetDatabase.ImportAsset(fullPath, ImportAssetOptions.ForceUpdate); + // AssetDatabase.Refresh(); // Usually ImportAsset handles refresh + return new SuccessResponse($"Asset '{fullPath}' reimported.", GetAssetData(fullPath)); + } + catch (Exception e) + { + return new ErrorResponse($"Failed to reimport asset '{fullPath}': {e.Message}"); + } + } + + private static object CreateAsset(JObject @params) + { + string path = @params["path"]?.ToString(); + string assetType = + @params["assetType"]?.ToString() + ?? @params["asset_type"]?.ToString(); // tolerate snake_case payloads from batched commands + JObject properties = @params["properties"] as JObject; + + if (string.IsNullOrEmpty(path)) + return new ErrorResponse("'path' is required for create."); + if (string.IsNullOrEmpty(assetType)) + return new ErrorResponse("'assetType' is required for create."); + + string fullPath = AssetPathUtility.SanitizeAssetPath(path); + string directory = Path.GetDirectoryName(fullPath); + + // Ensure directory exists + if (!Directory.Exists(Path.Combine(Directory.GetCurrentDirectory(), directory))) + { + Directory.CreateDirectory(Path.Combine(Directory.GetCurrentDirectory(), directory)); + AssetDatabase.Refresh(ImportAssetOptions.ForceSynchronousImport); // Make sure Unity knows about the new folder + } + + if (AssetExists(fullPath)) + return new ErrorResponse($"Asset already exists at path: {fullPath}"); + + try + { + UnityEngine.Object newAsset = null; + string lowerAssetType = assetType.ToLowerInvariant(); + + // Handle common asset types + if (lowerAssetType == "folder") + { + return CreateFolder(path); // Use dedicated method + } + else if (lowerAssetType == "material") + { + var requested = properties?["shader"]?.ToString(); + Shader shader = RenderPipelineUtility.ResolveShader(requested); + if (shader == null) + return new ErrorResponse($"Could not find a project-compatible shader (requested: '{requested ?? "none"}'). Consider installing URP/HDRP or provide an explicit shader path."); + + var mat = new Material(shader); + if (properties != null) + { + JObject propertiesForApply = properties; + if (propertiesForApply["shader"] != null) + { + propertiesForApply = (JObject)properties.DeepClone(); + propertiesForApply.Remove("shader"); + } + + if (propertiesForApply.HasValues) + { + MaterialOps.ApplyProperties(mat, propertiesForApply, UnityJsonSerializer.Instance); + } + } + AssetDatabase.CreateAsset(mat, fullPath); + newAsset = mat; + } + else if (lowerAssetType == "physicsmaterial") + { + PhysicsMaterialType pmat = new PhysicsMaterialType(); + if (properties != null) + ApplyPhysicsMaterialProperties(pmat, properties); + AssetDatabase.CreateAsset(pmat, fullPath); + newAsset = pmat; + } + else if (lowerAssetType == "prefab") + { + // Creating prefabs usually involves saving an existing GameObject hierarchy. + // A common pattern is to create an empty GameObject, configure it, and then save it. + return new ErrorResponse( + "Creating prefabs programmatically usually requires a source GameObject. Use manage_gameobject to create/configure, then save as prefab via a separate mechanism or future enhancement." + ); + // Example (conceptual): + // GameObject source = GameObject.Find(properties["sourceGameObject"].ToString()); + // if(source != null) PrefabUtility.SaveAsPrefabAsset(source, fullPath); + } + // TODO: Add more asset types (Animation Controller, Scene, etc.) + else + { + // Generic creation attempt (might fail or create empty files) + // For some types, just creating the file might be enough if Unity imports it. + // File.Create(Path.Combine(Directory.GetCurrentDirectory(), fullPath)).Close(); + // AssetDatabase.ImportAsset(fullPath); // Let Unity try to import it + // newAsset = AssetDatabase.LoadAssetAtPath(fullPath); + return new ErrorResponse( + $"Creation for asset type '{assetType}' is not explicitly supported yet. Supported: Folder, Material, PhysicsMaterial." + ); + } + + if ( + newAsset == null + && !Directory.Exists(Path.Combine(Directory.GetCurrentDirectory(), fullPath)) + ) // Check if it wasn't a folder and asset wasn't created + { + return new ErrorResponse( + $"Failed to create asset '{assetType}' at '{fullPath}'. See logs for details." + ); + } + + AssetDatabase.SaveAssets(); + // AssetDatabase.Refresh(); // CreateAsset often handles refresh + return new SuccessResponse( + $"Asset '{fullPath}' created successfully.", + GetAssetData(fullPath) + ); + } + catch (Exception e) + { + return new ErrorResponse($"Failed to create asset at '{fullPath}': {e.Message}"); + } + } + + private static object CreateFolder(string path) + { + if (string.IsNullOrEmpty(path)) + return new ErrorResponse("'path' is required for create_folder."); + string fullPath = AssetPathUtility.SanitizeAssetPath(path); + string parentDir = Path.GetDirectoryName(fullPath); + string folderName = Path.GetFileName(fullPath); + + if (AssetExists(fullPath)) + { + // Check if it's actually a folder already + if (AssetDatabase.IsValidFolder(fullPath)) + { + return new SuccessResponse( + $"Folder already exists at path: {fullPath}", + GetAssetData(fullPath) + ); + } + else + { + return new ErrorResponse( + $"An asset (not a folder) already exists at path: {fullPath}" + ); + } + } + + try + { + // Ensure parent exists + if (!string.IsNullOrEmpty(parentDir) && !AssetDatabase.IsValidFolder(parentDir)) + { + // Recursively create parent folders if needed (AssetDatabase handles this internally) + // Or we can do it manually: Directory.CreateDirectory(Path.Combine(Directory.GetCurrentDirectory(), parentDir)); AssetDatabase.Refresh(); + } + + string guid = AssetDatabase.CreateFolder(parentDir, folderName); + if (string.IsNullOrEmpty(guid)) + { + return new ErrorResponse( + $"Failed to create folder '{fullPath}'. Check logs and permissions." + ); + } + + // AssetDatabase.Refresh(); // CreateFolder usually handles refresh + return new SuccessResponse( + $"Folder '{fullPath}' created successfully.", + GetAssetData(fullPath) + ); + } + catch (Exception e) + { + return new ErrorResponse($"Failed to create folder '{fullPath}': {e.Message}"); + } + } + + private static object ModifyAsset(string path, JObject properties) + { + if (string.IsNullOrEmpty(path)) + return new ErrorResponse("'path' is required for modify."); + if (properties == null || !properties.HasValues) + return new ErrorResponse("'properties' are required for modify."); + + string fullPath = AssetPathUtility.SanitizeAssetPath(path); + if (!AssetExists(fullPath)) + return new ErrorResponse($"Asset not found at path: {fullPath}"); + + try + { + UnityEngine.Object asset = AssetDatabase.LoadAssetAtPath( + fullPath + ); + if (asset == null) + return new ErrorResponse($"Failed to load asset at path: {fullPath}"); + + bool modified = false; // Flag to track if any changes were made + + // --- NEW: Handle GameObject / Prefab Component Modification --- + if (asset is GameObject gameObject) + { + // Iterate through the properties JSON: keys are component names, values are properties objects for that component + foreach (var prop in properties.Properties()) + { + string componentName = prop.Name; // e.g., "Collectible" + // Check if the value associated with the component name is actually an object containing properties + if ( + prop.Value is JObject componentProperties + && componentProperties.HasValues + ) // e.g., {"bobSpeed": 2.0} + { + // Resolve component type via ComponentResolver, then fetch by Type + Component targetComponent = null; + bool resolved = ComponentResolver.TryResolve(componentName, out var compType, out var compError); + if (resolved) + { + targetComponent = gameObject.GetComponent(compType); + } + + // Only warn about resolution failure if component also not found + if (targetComponent == null && !resolved) + { + McpLog.Warn( + $"[ManageAsset.ModifyAsset] Failed to resolve component '{componentName}' on '{gameObject.name}': {compError}" + ); + } + + if (targetComponent != null) + { + // Apply the nested properties (e.g., bobSpeed) to the found component instance + // Use |= to ensure 'modified' becomes true if any component is successfully modified + modified |= ApplyObjectProperties( + targetComponent, + componentProperties + ); + } + else + { + // Log a warning if a specified component couldn't be found + McpLog.Warn( + $"[ManageAsset.ModifyAsset] Component '{componentName}' not found on GameObject '{gameObject.name}' in asset '{fullPath}'. Skipping modification for this component." + ); + } + } + else + { + // Log a warning if the structure isn't {"ComponentName": {"prop": value}} + // We could potentially try to apply this property directly to the GameObject here if needed, + // but the primary goal is component modification. + McpLog.Warn( + $"[ManageAsset.ModifyAsset] Property '{prop.Name}' for GameObject modification should have a JSON object value containing component properties. Value was: {prop.Value.Type}. Skipping." + ); + } + } + // Note: 'modified' is now true if ANY component property was successfully changed. + } + // --- End NEW --- + + // --- Existing logic for other asset types (now as else-if) --- + // Example: Modifying a Material + else if (asset is Material material) + { + // Apply properties directly to the material. If this modifies, it sets modified=true. + // Use |= in case the asset was already marked modified by previous logic (though unlikely here) + modified |= MaterialOps.ApplyProperties(material, properties, UnityJsonSerializer.Instance); + } + // Example: Modifying a ScriptableObject (Use manage_scriptable_object instead!) + else if (asset is ScriptableObject so) + { + // Deprecated: Prefer manage_scriptable_object for robust patching. + // Kept for simple property setting fallback on existing assets if manage_scriptable_object isn't used. + modified |= ApplyObjectProperties(so, properties); + } + // Example: Modifying TextureImporter settings + else if (asset is Texture) + { + AssetImporter importer = AssetImporter.GetAtPath(fullPath); + if (importer is TextureImporter textureImporter) + { + bool importerModified = ApplyObjectProperties(textureImporter, properties); + if (importerModified) + { + // Importer settings need saving and reimporting + AssetDatabase.WriteImportSettingsIfDirty(fullPath); + AssetDatabase.ImportAsset(fullPath, ImportAssetOptions.ForceUpdate); // Reimport to apply changes + modified = true; // Mark overall operation as modified + } + } + else + { + McpLog.Warn($"Could not get TextureImporter for {fullPath}."); + } + } + // TODO: Add modification logic for other common asset types (Models, AudioClips importers, etc.) + else // Fallback for other asset types OR direct properties on non-GameObject assets + { + // This block handles non-GameObject/Material/ScriptableObject/Texture assets. + // Attempts to apply properties directly to the asset itself. + McpLog.Warn( + $"[ManageAsset.ModifyAsset] Asset type '{asset.GetType().Name}' at '{fullPath}' is not explicitly handled for component modification. Attempting generic property setting on the asset itself." + ); + modified |= ApplyObjectProperties(asset, properties); + } + // --- End Existing Logic --- + + // Check if any modification happened (either component or direct asset modification) + if (modified) + { + // Mark the asset as dirty (important for prefabs/SOs) so Unity knows to save it. + EditorUtility.SetDirty(asset); + // Save all modified assets to disk. + AssetDatabase.SaveAssets(); + // Refresh might be needed in some edge cases, but SaveAssets usually covers it. + // AssetDatabase.Refresh(); + return new SuccessResponse( + $"Asset '{fullPath}' modified successfully.", + GetAssetData(fullPath) + ); + } + else + { + // If no changes were made (e.g., component not found, property names incorrect, value unchanged), return a success message indicating nothing changed. + return new SuccessResponse( + $"No applicable or modifiable properties found for asset '{fullPath}'. Check component names, property names, and values.", + GetAssetData(fullPath) + ); + // Previous message: return new SuccessResponse($"No applicable properties found to modify for asset '{fullPath}'.", GetAssetData(fullPath)); + } + } + catch (Exception e) + { + // Log the detailed error internally + McpLog.Error($"[ManageAsset] Action 'modify' failed for path '{path}': {e}"); + // Return a user-friendly error message + return new ErrorResponse($"Failed to modify asset '{fullPath}': {e.Message}"); + } + } + + private static object DeleteAsset(string path) + { + if (string.IsNullOrEmpty(path)) + return new ErrorResponse("'path' is required for delete."); + string fullPath = AssetPathUtility.SanitizeAssetPath(path); + if (!AssetExists(fullPath)) + return new ErrorResponse($"Asset not found at path: {fullPath}"); + + try + { + bool success = AssetDatabase.DeleteAsset(fullPath); + if (success) + { + // AssetDatabase.Refresh(); // DeleteAsset usually handles refresh + return new SuccessResponse($"Asset '{fullPath}' deleted successfully."); + } + else + { + // This might happen if the file couldn't be deleted (e.g., locked) + return new ErrorResponse( + $"Failed to delete asset '{fullPath}'. Check logs or if the file is locked." + ); + } + } + catch (Exception e) + { + return new ErrorResponse($"Error deleting asset '{fullPath}': {e.Message}"); + } + } + + private static object DuplicateAsset(string path, string destinationPath) + { + if (string.IsNullOrEmpty(path)) + return new ErrorResponse("'path' is required for duplicate."); + + string sourcePath = AssetPathUtility.SanitizeAssetPath(path); + if (!AssetExists(sourcePath)) + return new ErrorResponse($"Source asset not found at path: {sourcePath}"); + + string destPath; + if (string.IsNullOrEmpty(destinationPath)) + { + // Generate a unique path if destination is not provided + destPath = AssetDatabase.GenerateUniqueAssetPath(sourcePath); + } + else + { + destPath = AssetPathUtility.SanitizeAssetPath(destinationPath); + if (AssetExists(destPath)) + return new ErrorResponse($"Asset already exists at destination path: {destPath}"); + // Ensure destination directory exists + EnsureDirectoryExists(Path.GetDirectoryName(destPath)); + } + + try + { + bool success = AssetDatabase.CopyAsset(sourcePath, destPath); + if (success) + { + // AssetDatabase.Refresh(); + return new SuccessResponse( + $"Asset '{sourcePath}' duplicated to '{destPath}'.", + GetAssetData(destPath) + ); + } + else + { + return new ErrorResponse( + $"Failed to duplicate asset from '{sourcePath}' to '{destPath}'." + ); + } + } + catch (Exception e) + { + return new ErrorResponse($"Error duplicating asset '{sourcePath}': {e.Message}"); + } + } + + private static object MoveOrRenameAsset(string path, string destinationPath) + { + if (string.IsNullOrEmpty(path)) + return new ErrorResponse("'path' is required for move/rename."); + if (string.IsNullOrEmpty(destinationPath)) + return new ErrorResponse("'destination' path is required for move/rename."); + + string sourcePath = AssetPathUtility.SanitizeAssetPath(path); + string destPath = AssetPathUtility.SanitizeAssetPath(destinationPath); + + if (!AssetExists(sourcePath)) + return new ErrorResponse($"Source asset not found at path: {sourcePath}"); + if (AssetExists(destPath)) + return new ErrorResponse( + $"An asset already exists at the destination path: {destPath}" + ); + + // Ensure destination directory exists + EnsureDirectoryExists(Path.GetDirectoryName(destPath)); + + try + { + // Validate will return an error string if failed, null if successful + string error = AssetDatabase.ValidateMoveAsset(sourcePath, destPath); + if (!string.IsNullOrEmpty(error)) + { + return new ErrorResponse( + $"Failed to move/rename asset from '{sourcePath}' to '{destPath}': {error}" + ); + } + + string guid = AssetDatabase.MoveAsset(sourcePath, destPath); + if (!string.IsNullOrEmpty(guid)) // MoveAsset returns the new GUID on success + { + // AssetDatabase.Refresh(); // MoveAsset usually handles refresh + return new SuccessResponse( + $"Asset moved/renamed from '{sourcePath}' to '{destPath}'.", + GetAssetData(destPath) + ); + } + else + { + // This case might not be reachable if ValidateMoveAsset passes, but good to have + return new ErrorResponse( + $"MoveAsset call failed unexpectedly for '{sourcePath}' to '{destPath}'." + ); + } + } + catch (Exception e) + { + return new ErrorResponse($"Error moving/renaming asset '{sourcePath}': {e.Message}"); + } + } + + private static object SearchAssets(JObject @params) + { + string searchPattern = @params["searchPattern"]?.ToString(); + string filterType = @params["filterType"]?.ToString(); + string pathScope = @params["path"]?.ToString(); // Use path as folder scope + string filterDateAfterStr = @params["filterDateAfter"]?.ToString(); + int pageSize = @params["pageSize"]?.ToObject() ?? 50; // Default page size + int pageNumber = @params["pageNumber"]?.ToObject() ?? 1; // Default page number (1-based) + bool generatePreview = @params["generatePreview"]?.ToObject() ?? false; + + List searchFilters = new List(); + if (!string.IsNullOrEmpty(searchPattern)) + searchFilters.Add(searchPattern); + if (!string.IsNullOrEmpty(filterType)) + searchFilters.Add($"t:{filterType}"); + + string[] folderScope = null; + if (!string.IsNullOrEmpty(pathScope)) + { + folderScope = new string[] { AssetPathUtility.SanitizeAssetPath(pathScope) }; + if (!AssetDatabase.IsValidFolder(folderScope[0])) + { + // Maybe the user provided a file path instead of a folder? + // We could search in the containing folder, or return an error. + McpLog.Warn( + $"Search path '{folderScope[0]}' is not a valid folder. Searching entire project." + ); + folderScope = null; // Search everywhere if path isn't a folder + } + } + + DateTime? filterDateAfter = null; + if (!string.IsNullOrEmpty(filterDateAfterStr)) + { + if ( + DateTime.TryParse( + filterDateAfterStr, + CultureInfo.InvariantCulture, + DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal, + out DateTime parsedDate + ) + ) + { + filterDateAfter = parsedDate; + } + else + { + McpLog.Warn( + $"Could not parse filterDateAfter: '{filterDateAfterStr}'. Expected ISO 8601 format." + ); + } + } + + try + { + string[] guids = AssetDatabase.FindAssets( + string.Join(" ", searchFilters), + folderScope + ); + List results = new List(); + int totalFound = 0; + + foreach (string guid in guids) + { + string assetPath = AssetDatabase.GUIDToAssetPath(guid); + if (string.IsNullOrEmpty(assetPath)) + continue; + + // Apply date filter if present + if (filterDateAfter.HasValue) + { + DateTime lastWriteTime = File.GetLastWriteTimeUtc( + Path.Combine(Directory.GetCurrentDirectory(), assetPath) + ); + if (lastWriteTime <= filterDateAfter.Value) + { + continue; // Skip assets older than or equal to the filter date + } + } + + totalFound++; // Count matching assets before pagination + results.Add(GetAssetData(assetPath, generatePreview)); + } + + // Apply pagination + int startIndex = (pageNumber - 1) * pageSize; + var pagedResults = results.Skip(startIndex).Take(pageSize).ToList(); + + return new SuccessResponse( + $"Found {totalFound} asset(s). Returning page {pageNumber} ({pagedResults.Count} assets).", + new + { + totalAssets = totalFound, + pageSize = pageSize, + pageNumber = pageNumber, + assets = pagedResults, + } + ); + } + catch (Exception e) + { + return new ErrorResponse($"Error searching assets: {e.Message}"); + } + } + + private static object GetAssetInfo(string path, bool generatePreview) + { + if (string.IsNullOrEmpty(path)) + return new ErrorResponse("'path' is required for get_info."); + string fullPath = AssetPathUtility.SanitizeAssetPath(path); + if (!AssetExists(fullPath)) + return new ErrorResponse($"Asset not found at path: {fullPath}"); + + try + { + return new SuccessResponse( + "Asset info retrieved.", + GetAssetData(fullPath, generatePreview) + ); + } + catch (Exception e) + { + return new ErrorResponse($"Error getting info for asset '{fullPath}': {e.Message}"); + } + } + + /// + /// Retrieves components attached to a GameObject asset (like a Prefab). + /// + /// The asset path of the GameObject or Prefab. + /// A response object containing a list of component type names or an error. + private static object GetComponentsFromAsset(string path) + { + // 1. Validate input path + if (string.IsNullOrEmpty(path)) + return new ErrorResponse("'path' is required for get_components."); + + // 2. Sanitize and check existence + string fullPath = AssetPathUtility.SanitizeAssetPath(path); + if (!AssetExists(fullPath)) + return new ErrorResponse($"Asset not found at path: {fullPath}"); + + try + { + // 3. Load the asset + UnityEngine.Object asset = AssetDatabase.LoadAssetAtPath( + fullPath + ); + if (asset == null) + return new ErrorResponse($"Failed to load asset at path: {fullPath}"); + + // 4. Check if it's a GameObject (Prefabs load as GameObjects) + GameObject gameObject = asset as GameObject; + if (gameObject == null) + { + // Also check if it's *directly* a Component type (less common for primary assets) + Component componentAsset = asset as Component; + if (componentAsset != null) + { + // If the asset itself *is* a component, maybe return just its info? + // This is an edge case. Let's stick to GameObjects for now. + return new ErrorResponse( + $"Asset at '{fullPath}' is a Component ({asset.GetType().FullName}), not a GameObject. Components are typically retrieved *from* a GameObject." + ); + } + return new ErrorResponse( + $"Asset at '{fullPath}' is not a GameObject (Type: {asset.GetType().FullName}). Cannot get components from this asset type." + ); + } + + // 5. Get components + Component[] components = gameObject.GetComponents(); + + // 6. Format component data + List componentList = components + .Select(comp => new + { + typeName = comp.GetType().FullName, + instanceID = comp.GetInstanceID(), + // TODO: Add more component-specific details here if needed in the future? + // Requires reflection or specific handling per component type. + }) + .ToList(); // Explicit cast for clarity if needed + + // 7. Return success response + return new SuccessResponse( + $"Found {componentList.Count} component(s) on asset '{fullPath}'.", + componentList + ); + } + catch (Exception e) + { + McpLog.Error( + $"[ManageAsset.GetComponentsFromAsset] Error getting components for '{fullPath}': {e}" + ); + return new ErrorResponse( + $"Error getting components for asset '{fullPath}': {e.Message}" + ); + } + } + + // --- Internal Helpers --- + + /// + /// Ensures the asset path starts with "Assets/". + /// + /// + /// Checks if an asset exists at the given path (file or folder). + /// + private static bool AssetExists(string sanitizedPath) + { + // AssetDatabase APIs are generally preferred over raw File/Directory checks for assets. + // Check if it's a known asset GUID. + if (!string.IsNullOrEmpty(AssetDatabase.AssetPathToGUID(sanitizedPath))) + { + return true; + } + // AssetPathToGUID might not work for newly created folders not yet refreshed. + // Check directory explicitly for folders. + if (Directory.Exists(Path.Combine(Directory.GetCurrentDirectory(), sanitizedPath))) + { + // Check if it's considered a *valid* folder by Unity + return AssetDatabase.IsValidFolder(sanitizedPath); + } + // Check file existence for non-folder assets. + if (File.Exists(Path.Combine(Directory.GetCurrentDirectory(), sanitizedPath))) + { + return true; // Assume if file exists, it's an asset or will be imported + } + + return false; + // Alternative: return !string.IsNullOrEmpty(AssetDatabase.AssetPathToGUID(sanitizedPath)); + } + + /// + /// Ensures the directory for a given asset path exists, creating it if necessary. + /// + private static void EnsureDirectoryExists(string directoryPath) + { + if (string.IsNullOrEmpty(directoryPath)) + return; + string fullDirPath = Path.Combine(Directory.GetCurrentDirectory(), directoryPath); + if (!Directory.Exists(fullDirPath)) + { + Directory.CreateDirectory(fullDirPath); + AssetDatabase.Refresh(ImportAssetOptions.ForceSynchronousImport); // Let Unity know about the new folder + } + } + + + + /// + /// Applies properties from JObject to a PhysicsMaterial. + /// + private static bool ApplyPhysicsMaterialProperties(PhysicsMaterialType pmat, JObject properties) + { + if (pmat == null || properties == null) + return false; + bool modified = false; + + // Example: Set dynamic friction + if (properties["dynamicFriction"]?.Type == JTokenType.Float) + { + float dynamicFriction = properties["dynamicFriction"].ToObject(); + pmat.dynamicFriction = dynamicFriction; + modified = true; + } + + // Example: Set static friction + if (properties["staticFriction"]?.Type == JTokenType.Float) + { + float staticFriction = properties["staticFriction"].ToObject(); + pmat.staticFriction = staticFriction; + modified = true; + } + + // Example: Set bounciness + if (properties["bounciness"]?.Type == JTokenType.Float) + { + float bounciness = properties["bounciness"].ToObject(); + pmat.bounciness = bounciness; + modified = true; + } + + List averageList = new List { "ave", "Ave", "average", "Average" }; + List multiplyList = new List { "mul", "Mul", "mult", "Mult", "multiply", "Multiply" }; + List minimumList = new List { "min", "Min", "minimum", "Minimum" }; + List maximumList = new List { "max", "Max", "maximum", "Maximum" }; + + // Example: Set friction combine + if (properties["frictionCombine"]?.Type == JTokenType.String) + { + string frictionCombine = properties["frictionCombine"].ToString(); + if (averageList.Contains(frictionCombine)) + pmat.frictionCombine = PhysicsMaterialCombine.Average; + else if (multiplyList.Contains(frictionCombine)) + pmat.frictionCombine = PhysicsMaterialCombine.Multiply; + else if (minimumList.Contains(frictionCombine)) + pmat.frictionCombine = PhysicsMaterialCombine.Minimum; + else if (maximumList.Contains(frictionCombine)) + pmat.frictionCombine = PhysicsMaterialCombine.Maximum; + modified = true; + } + + // Example: Set bounce combine + if (properties["bounceCombine"]?.Type == JTokenType.String) + { + string bounceCombine = properties["bounceCombine"].ToString(); + if (averageList.Contains(bounceCombine)) + pmat.bounceCombine = PhysicsMaterialCombine.Average; + else if (multiplyList.Contains(bounceCombine)) + pmat.bounceCombine = PhysicsMaterialCombine.Multiply; + else if (minimumList.Contains(bounceCombine)) + pmat.bounceCombine = PhysicsMaterialCombine.Minimum; + else if (maximumList.Contains(bounceCombine)) + pmat.bounceCombine = PhysicsMaterialCombine.Maximum; + modified = true; + } + + return modified; + } + + /// + /// Generic helper to set properties on any UnityEngine.Object using reflection. + /// + private static bool ApplyObjectProperties(UnityEngine.Object target, JObject properties) + { + if (target == null || properties == null) + return false; + bool modified = false; + Type type = target.GetType(); + + foreach (var prop in properties.Properties()) + { + string propName = prop.Name; + JToken propValue = prop.Value; + if (SetPropertyOrField(target, propName, propValue, type)) + { + modified = true; + } + } + return modified; + } + + /// + /// Helper to set a property or field via reflection, handling basic types and Unity objects. + /// + private static bool SetPropertyOrField( + object target, + string memberName, + JToken value, + Type type = null + ) + { + type = type ?? target.GetType(); + System.Reflection.BindingFlags flags = + System.Reflection.BindingFlags.Public + | System.Reflection.BindingFlags.Instance + | System.Reflection.BindingFlags.IgnoreCase; + + try + { + System.Reflection.PropertyInfo propInfo = type.GetProperty(memberName, flags); + if (propInfo != null && propInfo.CanWrite) + { + object convertedValue = Helpers.PropertyConversion.TryConvertToType(value, propInfo.PropertyType); + if ( + convertedValue != null + && !object.Equals(propInfo.GetValue(target), convertedValue) + ) + { + propInfo.SetValue(target, convertedValue); + return true; + } + } + else + { + System.Reflection.FieldInfo fieldInfo = type.GetField(memberName, flags); + if (fieldInfo != null) + { + object convertedValue = Helpers.PropertyConversion.TryConvertToType(value, fieldInfo.FieldType); + if ( + convertedValue != null + && !object.Equals(fieldInfo.GetValue(target), convertedValue) + ) + { + fieldInfo.SetValue(target, convertedValue); + return true; + } + } + } + } + catch (Exception ex) + { + McpLog.Warn( + $"[SetPropertyOrField] Failed to set '{memberName}' on {type.Name}: {ex.Message}" + ); + } + return false; + } + + // --- Data Serialization --- + + /// + /// Creates a serializable representation of an asset. + /// + private static object GetAssetData(string path, bool generatePreview = false) + { + if (string.IsNullOrEmpty(path) || !AssetExists(path)) + return null; + + string guid = AssetDatabase.AssetPathToGUID(path); + Type assetType = AssetDatabase.GetMainAssetTypeAtPath(path); + UnityEngine.Object asset = AssetDatabase.LoadAssetAtPath(path); + string previewBase64 = null; + int previewWidth = 0; + int previewHeight = 0; + + if (generatePreview && asset != null) + { + Texture2D preview = AssetPreview.GetAssetPreview(asset); + + if (preview != null) + { + try + { + // Ensure texture is readable for EncodeToPNG + // Creating a temporary readable copy is safer + RenderTexture rt = null; + Texture2D readablePreview = null; + RenderTexture previous = RenderTexture.active; + try + { + rt = RenderTexture.GetTemporary(preview.width, preview.height); + Graphics.Blit(preview, rt); + RenderTexture.active = rt; + readablePreview = new Texture2D(preview.width, preview.height, TextureFormat.RGB24, false); + readablePreview.ReadPixels(new Rect(0, 0, rt.width, rt.height), 0, 0); + readablePreview.Apply(); + + var pngData = readablePreview.EncodeToPNG(); + if (pngData != null && pngData.Length > 0) + { + previewBase64 = Convert.ToBase64String(pngData); + previewWidth = readablePreview.width; + previewHeight = readablePreview.height; + } + } + finally + { + RenderTexture.active = previous; + if (rt != null) RenderTexture.ReleaseTemporary(rt); + if (readablePreview != null) UnityEngine.Object.DestroyImmediate(readablePreview); + } + } + catch (Exception ex) + { + McpLog.Warn( + $"Failed to generate readable preview for '{path}': {ex.Message}. Preview might not be readable." + ); + // Fallback: Try getting static preview if available? + // Texture2D staticPreview = AssetPreview.GetMiniThumbnail(asset); + } + } + else + { + McpLog.Warn( + $"Could not get asset preview for {path} (Type: {assetType?.Name}). Is it supported?" + ); + } + } + + return new + { + path = path, + guid = guid, + assetType = assetType?.FullName ?? "Unknown", + name = Path.GetFileNameWithoutExtension(path), + fileName = Path.GetFileName(path), + isFolder = AssetDatabase.IsValidFolder(path), + instanceID = asset?.GetInstanceID() ?? 0, + lastWriteTimeUtc = File.GetLastWriteTimeUtc( + Path.Combine(Directory.GetCurrentDirectory(), path) + ) + .ToString("o"), // ISO 8601 + // --- Preview Data --- + previewBase64 = previewBase64, // PNG data as Base64 string + previewWidth = previewWidth, + previewHeight = previewHeight, + // TODO: Add more metadata? Importer settings? Dependencies? + }; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/ManageAsset.cs.meta b/Packages/MCPForUnity/Editor/Tools/ManageAsset.cs.meta new file mode 100644 index 00000000..3dbc2e2f --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/ManageAsset.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: de90a1d9743a2874cb235cf0b83444b1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/ManageComponents.cs b/Packages/MCPForUnity/Editor/Tools/ManageComponents.cs new file mode 100644 index 00000000..596e5b86 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/ManageComponents.cs @@ -0,0 +1,351 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using MCPForUnity.Editor.Helpers; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEditor.SceneManagement; +using UnityEngine; + +namespace MCPForUnity.Editor.Tools +{ + /// + /// Tool for managing components on GameObjects. + /// Actions: add, remove, set_property + /// + /// This is a focused tool for component lifecycle operations. + /// For reading component data, use the unity://scene/gameobject/{id}/components resource. + /// + [McpForUnityTool("manage_components")] + public static class ManageComponents + { + /// + /// Handles the manage_components command. + /// + /// Command parameters + /// Result of the component operation + public static object HandleCommand(JObject @params) + { + if (@params == null) + { + return new ErrorResponse("Parameters cannot be null."); + } + + string action = ParamCoercion.CoerceString(@params["action"], null)?.ToLowerInvariant(); + if (string.IsNullOrEmpty(action)) + { + return new ErrorResponse("'action' parameter is required (add, remove, set_property)."); + } + + // Target resolution + JToken targetToken = @params["target"]; + string searchMethod = ParamCoercion.CoerceString(@params["searchMethod"] ?? @params["search_method"], null); + + if (targetToken == null) + { + return new ErrorResponse("'target' parameter is required."); + } + + try + { + return action switch + { + "add" => AddComponent(@params, targetToken, searchMethod), + "remove" => RemoveComponent(@params, targetToken, searchMethod), + "set_property" => SetProperty(@params, targetToken, searchMethod), + _ => new ErrorResponse($"Unknown action: '{action}'. Supported actions: add, remove, set_property") + }; + } + catch (Exception e) + { + McpLog.Error($"[ManageComponents] Action '{action}' failed: {e}"); + return new ErrorResponse($"Internal error processing action '{action}': {e.Message}"); + } + } + + #region Action Implementations + + private static object AddComponent(JObject @params, JToken targetToken, string searchMethod) + { + GameObject targetGo = FindTarget(targetToken, searchMethod); + if (targetGo == null) + { + return new ErrorResponse($"Target GameObject ('{targetToken}') not found using method '{searchMethod ?? "default"}'."); + } + + string componentTypeName = ParamCoercion.CoerceString(@params["componentType"] ?? @params["component_type"], null); + if (string.IsNullOrEmpty(componentTypeName)) + { + return new ErrorResponse("'componentType' parameter is required for 'add' action."); + } + + // Resolve component type using unified type resolver + Type type = UnityTypeResolver.ResolveComponent(componentTypeName); + if (type == null) + { + return new ErrorResponse($"Component type '{componentTypeName}' not found. Use a fully-qualified name if needed."); + } + + // Use ComponentOps for the actual operation + Component newComponent = ComponentOps.AddComponent(targetGo, type, out string error); + if (newComponent == null) + { + return new ErrorResponse(error ?? $"Failed to add component '{componentTypeName}'."); + } + + // Set properties if provided + JObject properties = @params["properties"] as JObject ?? @params["componentProperties"] as JObject; + if (properties != null && properties.HasValues) + { + // Record for undo before modifying properties + Undo.RecordObject(newComponent, "Modify Component Properties"); + SetPropertiesOnComponent(newComponent, properties); + } + + EditorUtility.SetDirty(targetGo); + MarkOwningSceneDirty(targetGo); + + return new + { + success = true, + message = $"Component '{componentTypeName}' added to '{targetGo.name}'.", + data = new + { + instanceID = targetGo.GetInstanceID(), + componentType = type.FullName, + componentInstanceID = newComponent.GetInstanceID() + } + }; + } + + private static object RemoveComponent(JObject @params, JToken targetToken, string searchMethod) + { + GameObject targetGo = FindTarget(targetToken, searchMethod); + if (targetGo == null) + { + return new ErrorResponse($"Target GameObject ('{targetToken}') not found using method '{searchMethod ?? "default"}'."); + } + + string componentTypeName = ParamCoercion.CoerceString(@params["componentType"] ?? @params["component_type"], null); + if (string.IsNullOrEmpty(componentTypeName)) + { + return new ErrorResponse("'componentType' parameter is required for 'remove' action."); + } + + // Resolve component type using unified type resolver + Type type = UnityTypeResolver.ResolveComponent(componentTypeName); + if (type == null) + { + return new ErrorResponse($"Component type '{componentTypeName}' not found."); + } + + // Use ComponentOps for the actual operation + bool removed = ComponentOps.RemoveComponent(targetGo, type, out string error); + if (!removed) + { + return new ErrorResponse(error ?? $"Failed to remove component '{componentTypeName}'."); + } + + EditorUtility.SetDirty(targetGo); + MarkOwningSceneDirty(targetGo); + + return new + { + success = true, + message = $"Component '{componentTypeName}' removed from '{targetGo.name}'.", + data = new + { + instanceID = targetGo.GetInstanceID() + } + }; + } + + private static object SetProperty(JObject @params, JToken targetToken, string searchMethod) + { + GameObject targetGo = FindTarget(targetToken, searchMethod); + if (targetGo == null) + { + return new ErrorResponse($"Target GameObject ('{targetToken}') not found using method '{searchMethod ?? "default"}'."); + } + + string componentType = ParamCoercion.CoerceString(@params["componentType"] ?? @params["component_type"], null); + if (string.IsNullOrEmpty(componentType)) + { + return new ErrorResponse("'componentType' parameter is required for 'set_property' action."); + } + + // Resolve component type using unified type resolver + Type type = UnityTypeResolver.ResolveComponent(componentType); + if (type == null) + { + return new ErrorResponse($"Component type '{componentType}' not found."); + } + + Component component = targetGo.GetComponent(type); + if (component == null) + { + return new ErrorResponse($"Component '{componentType}' not found on '{targetGo.name}'."); + } + + // Get property and value + string propertyName = ParamCoercion.CoerceString(@params["property"], null); + JToken valueToken = @params["value"]; + + // Support both single property or properties object + JObject properties = @params["properties"] as JObject; + + if (string.IsNullOrEmpty(propertyName) && (properties == null || !properties.HasValues)) + { + return new ErrorResponse("Either 'property'+'value' or 'properties' object is required for 'set_property' action."); + } + + var errors = new List(); + + try + { + Undo.RecordObject(component, $"Set property on {componentType}"); + + if (!string.IsNullOrEmpty(propertyName) && valueToken != null) + { + // Single property mode + var error = TrySetProperty(component, propertyName, valueToken); + if (error != null) + { + errors.Add(error); + } + } + + if (properties != null && properties.HasValues) + { + // Multiple properties mode + foreach (var prop in properties.Properties()) + { + var error = TrySetProperty(component, prop.Name, prop.Value); + if (error != null) + { + errors.Add(error); + } + } + } + + EditorUtility.SetDirty(component); + MarkOwningSceneDirty(targetGo); + + if (errors.Count > 0) + { + return new + { + success = false, + message = $"Some properties failed to set on '{componentType}'.", + data = new + { + instanceID = targetGo.GetInstanceID(), + errors = errors + } + }; + } + + return new + { + success = true, + message = $"Properties set on component '{componentType}' on '{targetGo.name}'.", + data = new + { + instanceID = targetGo.GetInstanceID() + } + }; + } + catch (Exception e) + { + return new ErrorResponse($"Error setting properties on component '{componentType}': {e.Message}"); + } + } + + #endregion + + #region Helpers + + /// + /// Marks the appropriate scene as dirty for the given GameObject. + /// Handles both regular scenes and prefab stages. + /// + private static void MarkOwningSceneDirty(GameObject targetGo) + { + var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); + if (prefabStage != null) + { + EditorSceneManager.MarkSceneDirty(prefabStage.scene); + } + else + { + EditorSceneManager.MarkSceneDirty(targetGo.scene); + } + } + + private static GameObject FindTarget(JToken targetToken, string searchMethod) + { + if (targetToken == null) + return null; + + // Try instance ID first + if (targetToken.Type == JTokenType.Integer) + { + int instanceId = targetToken.Value(); + return GameObjectLookup.FindById(instanceId); + } + + string targetStr = targetToken.ToString(); + + // Try parsing as instance ID + if (int.TryParse(targetStr, out int parsedId)) + { + var byId = GameObjectLookup.FindById(parsedId); + if (byId != null) + return byId; + } + + // Use GameObjectLookup for search + return GameObjectLookup.FindByTarget(targetToken, searchMethod ?? "by_name", true); + } + + private static void SetPropertiesOnComponent(Component component, JObject properties) + { + if (component == null || properties == null) + return; + + var errors = new List(); + foreach (var prop in properties.Properties()) + { + var error = TrySetProperty(component, prop.Name, prop.Value); + if (error != null) + errors.Add(error); + } + + if (errors.Count > 0) + { + McpLog.Warn($"[ManageComponents] Some properties failed to set on {component.GetType().Name}: {string.Join(", ", errors)}"); + } + } + + /// + /// Attempts to set a property or field on a component. + /// Delegates to ComponentOps.SetProperty for unified implementation. + /// + private static string TrySetProperty(Component component, string propertyName, JToken value) + { + if (component == null || string.IsNullOrEmpty(propertyName)) + return "Invalid component or property name"; + + if (ComponentOps.SetProperty(component, propertyName, value, out string error)) + { + return null; // Success + } + + McpLog.Warn($"[ManageComponents] {error}"); + return error; + } + + #endregion + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/ManageComponents.cs.meta b/Packages/MCPForUnity/Editor/Tools/ManageComponents.cs.meta new file mode 100644 index 00000000..8ed3f745 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/ManageComponents.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c6f476359563842c79eda2c180566c98 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/ManageEditor.cs b/Packages/MCPForUnity/Editor/Tools/ManageEditor.cs new file mode 100644 index 00000000..27048031 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/ManageEditor.cs @@ -0,0 +1,393 @@ +using System; +using MCPForUnity.Editor.Helpers; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEditorInternal; // Required for tag management + +namespace MCPForUnity.Editor.Tools +{ + /// + /// Handles editor control actions including play mode control, tool selection, + /// and tag/layer management. For reading editor state, use MCP resources instead. + /// + [McpForUnityTool("manage_editor", AutoRegister = false)] + public static class ManageEditor + { + // Constant for starting user layer index + private const int FirstUserLayerIndex = 8; + + // Constant for total layer count + private const int TotalLayerCount = 32; + + /// + /// Main handler for editor management actions. + /// + public static object HandleCommand(JObject @params) + { + // Step 1: Null parameter guard (consistent across all tools) + if (@params == null) + { + return new ErrorResponse("Parameters cannot be null."); + } + + // Step 2: Wrap parameters + var p = new ToolParams(@params); + + // Step 3: Extract and validate required parameters + var actionResult = p.GetRequired("action"); + if (!actionResult.IsSuccess) + { + return new ErrorResponse(actionResult.ErrorMessage); + } + string action = actionResult.Value.ToLowerInvariant(); + + // Parameters for specific actions + string tagName = p.Get("tagName"); + string layerName = p.Get("layerName"); + bool waitForCompletion = p.GetBool("waitForCompletion", false); + + // Route action + switch (action) + { + // Play Mode Control + case "play": + try + { + if (!EditorApplication.isPlaying) + { + EditorApplication.isPlaying = true; + return new SuccessResponse("Entered play mode."); + } + return new SuccessResponse("Already in play mode."); + } + catch (Exception e) + { + return new ErrorResponse($"Error entering play mode: {e.Message}"); + } + case "pause": + try + { + if (EditorApplication.isPlaying) + { + EditorApplication.isPaused = !EditorApplication.isPaused; + return new SuccessResponse( + EditorApplication.isPaused ? "Game paused." : "Game resumed." + ); + } + return new ErrorResponse("Cannot pause/resume: Not in play mode."); + } + catch (Exception e) + { + return new ErrorResponse($"Error pausing/resuming game: {e.Message}"); + } + case "stop": + try + { + if (EditorApplication.isPlaying) + { + EditorApplication.isPlaying = false; + return new SuccessResponse("Exited play mode."); + } + return new SuccessResponse("Already stopped (not in play mode)."); + } + catch (Exception e) + { + return new ErrorResponse($"Error stopping play mode: {e.Message}"); + } + + // Tool Control + case "set_active_tool": + var toolNameResult = p.GetRequired("toolName", "'toolName' parameter required for set_active_tool."); + if (!toolNameResult.IsSuccess) + return new ErrorResponse(toolNameResult.ErrorMessage); + return SetActiveTool(toolNameResult.Value); + + // Tag Management + case "add_tag": + var addTagResult = p.GetRequired("tagName", "'tagName' parameter required for add_tag."); + if (!addTagResult.IsSuccess) + return new ErrorResponse(addTagResult.ErrorMessage); + return AddTag(addTagResult.Value); + case "remove_tag": + var removeTagResult = p.GetRequired("tagName", "'tagName' parameter required for remove_tag."); + if (!removeTagResult.IsSuccess) + return new ErrorResponse(removeTagResult.ErrorMessage); + return RemoveTag(removeTagResult.Value); + // Layer Management + case "add_layer": + var addLayerResult = p.GetRequired("layerName", "'layerName' parameter required for add_layer."); + if (!addLayerResult.IsSuccess) + return new ErrorResponse(addLayerResult.ErrorMessage); + return AddLayer(addLayerResult.Value); + case "remove_layer": + var removeLayerResult = p.GetRequired("layerName", "'layerName' parameter required for remove_layer."); + if (!removeLayerResult.IsSuccess) + return new ErrorResponse(removeLayerResult.ErrorMessage); + return RemoveLayer(removeLayerResult.Value); + // --- Settings (Example) --- + // case "set_resolution": + // int? width = @params["width"]?.ToObject(); + // int? height = @params["height"]?.ToObject(); + // if (!width.HasValue || !height.HasValue) return new ErrorResponse("'width' and 'height' parameters required."); + // return SetGameViewResolution(width.Value, height.Value); + // case "set_quality": + // // Handle string name or int index + // return SetQualityLevel(@params["qualityLevel"]); + + default: + return new ErrorResponse( + $"Unknown action: '{action}'. Supported actions: play, pause, stop, set_active_tool, add_tag, remove_tag, add_layer, remove_layer. Use MCP resources for reading editor state, project info, tags, layers, selection, windows, prefab stage, and active tool." + ); + } + } + + // --- Tool Control Methods --- + + private static object SetActiveTool(string toolName) + { + try + { + Tool targetTool; + if (Enum.TryParse(toolName, true, out targetTool)) // Case-insensitive parse + { + // Check if it's a valid built-in tool + if (targetTool != Tool.None && targetTool <= Tool.Custom) // Tool.Custom is the last standard tool + { + UnityEditor.Tools.current = targetTool; + return new SuccessResponse($"Set active tool to '{targetTool}'."); + } + else + { + return new ErrorResponse( + $"Cannot directly set tool to '{toolName}'. It might be None, Custom, or invalid." + ); + } + } + else + { + // Potentially try activating a custom tool by name here if needed + // This often requires specific editor scripting knowledge for that tool. + return new ErrorResponse( + $"Could not parse '{toolName}' as a standard Unity Tool (View, Move, Rotate, Scale, Rect, Transform, Custom)." + ); + } + } + catch (Exception e) + { + return new ErrorResponse($"Error setting active tool: {e.Message}"); + } + } + + // --- Tag Management Methods --- + + private static object AddTag(string tagName) + { + if (string.IsNullOrWhiteSpace(tagName)) + return new ErrorResponse("Tag name cannot be empty or whitespace."); + + // Check if tag already exists + if (System.Linq.Enumerable.Contains(InternalEditorUtility.tags, tagName)) + { + return new ErrorResponse($"Tag '{tagName}' already exists."); + } + + try + { + // Add the tag using the internal utility + InternalEditorUtility.AddTag(tagName); + // Force save assets to ensure the change persists in the TagManager asset + AssetDatabase.SaveAssets(); + return new SuccessResponse($"Tag '{tagName}' added successfully."); + } + catch (Exception e) + { + return new ErrorResponse($"Failed to add tag '{tagName}': {e.Message}"); + } + } + + private static object RemoveTag(string tagName) + { + if (string.IsNullOrWhiteSpace(tagName)) + return new ErrorResponse("Tag name cannot be empty or whitespace."); + if (tagName.Equals("Untagged", StringComparison.OrdinalIgnoreCase)) + return new ErrorResponse("Cannot remove the built-in 'Untagged' tag."); + + // Check if tag exists before attempting removal + if (!System.Linq.Enumerable.Contains(InternalEditorUtility.tags, tagName)) + { + return new ErrorResponse($"Tag '{tagName}' does not exist."); + } + + try + { + // Remove the tag using the internal utility + InternalEditorUtility.RemoveTag(tagName); + // Force save assets + AssetDatabase.SaveAssets(); + return new SuccessResponse($"Tag '{tagName}' removed successfully."); + } + catch (Exception e) + { + // Catch potential issues if the tag is somehow in use or removal fails + return new ErrorResponse($"Failed to remove tag '{tagName}': {e.Message}"); + } + } + + // --- Layer Management Methods --- + + private static object AddLayer(string layerName) + { + if (string.IsNullOrWhiteSpace(layerName)) + return new ErrorResponse("Layer name cannot be empty or whitespace."); + + // Access the TagManager asset + SerializedObject tagManager = GetTagManager(); + if (tagManager == null) + return new ErrorResponse("Could not access TagManager asset."); + + SerializedProperty layersProp = tagManager.FindProperty("layers"); + if (layersProp == null || !layersProp.isArray) + return new ErrorResponse("Could not find 'layers' property in TagManager."); + + // Check if layer name already exists (case-insensitive check recommended) + for (int i = 0; i < TotalLayerCount; i++) + { + SerializedProperty layerSP = layersProp.GetArrayElementAtIndex(i); + if ( + layerSP != null + && layerName.Equals(layerSP.stringValue, StringComparison.OrdinalIgnoreCase) + ) + { + return new ErrorResponse($"Layer '{layerName}' already exists at index {i}."); + } + } + + // Find the first empty user layer slot (indices 8 to 31) + int firstEmptyUserLayer = -1; + for (int i = FirstUserLayerIndex; i < TotalLayerCount; i++) + { + SerializedProperty layerSP = layersProp.GetArrayElementAtIndex(i); + if (layerSP != null && string.IsNullOrEmpty(layerSP.stringValue)) + { + firstEmptyUserLayer = i; + break; + } + } + + if (firstEmptyUserLayer == -1) + { + return new ErrorResponse("No empty User Layer slots available (8-31 are full)."); + } + + // Assign the name to the found slot + try + { + SerializedProperty targetLayerSP = layersProp.GetArrayElementAtIndex( + firstEmptyUserLayer + ); + targetLayerSP.stringValue = layerName; + // Apply the changes to the TagManager asset + tagManager.ApplyModifiedProperties(); + // Save assets to make sure it's written to disk + AssetDatabase.SaveAssets(); + return new SuccessResponse( + $"Layer '{layerName}' added successfully to slot {firstEmptyUserLayer}." + ); + } + catch (Exception e) + { + return new ErrorResponse($"Failed to add layer '{layerName}': {e.Message}"); + } + } + + private static object RemoveLayer(string layerName) + { + if (string.IsNullOrWhiteSpace(layerName)) + return new ErrorResponse("Layer name cannot be empty or whitespace."); + + // Access the TagManager asset + SerializedObject tagManager = GetTagManager(); + if (tagManager == null) + return new ErrorResponse("Could not access TagManager asset."); + + SerializedProperty layersProp = tagManager.FindProperty("layers"); + if (layersProp == null || !layersProp.isArray) + return new ErrorResponse("Could not find 'layers' property in TagManager."); + + // Find the layer by name (must be user layer) + int layerIndexToRemove = -1; + for (int i = FirstUserLayerIndex; i < TotalLayerCount; i++) // Start from user layers + { + SerializedProperty layerSP = layersProp.GetArrayElementAtIndex(i); + // Case-insensitive comparison is safer + if ( + layerSP != null + && layerName.Equals(layerSP.stringValue, StringComparison.OrdinalIgnoreCase) + ) + { + layerIndexToRemove = i; + break; + } + } + + if (layerIndexToRemove == -1) + { + return new ErrorResponse($"User layer '{layerName}' not found."); + } + + // Clear the name for that index + try + { + SerializedProperty targetLayerSP = layersProp.GetArrayElementAtIndex( + layerIndexToRemove + ); + targetLayerSP.stringValue = string.Empty; // Set to empty string to remove + // Apply the changes + tagManager.ApplyModifiedProperties(); + // Save assets + AssetDatabase.SaveAssets(); + return new SuccessResponse( + $"Layer '{layerName}' (slot {layerIndexToRemove}) removed successfully." + ); + } + catch (Exception e) + { + return new ErrorResponse($"Failed to remove layer '{layerName}': {e.Message}"); + } + } + + // --- Helper Methods --- + + /// + /// Gets the SerializedObject for the TagManager asset. + /// + private static SerializedObject GetTagManager() + { + try + { + // Load the TagManager asset from the ProjectSettings folder + UnityEngine.Object[] tagManagerAssets = AssetDatabase.LoadAllAssetsAtPath( + "ProjectSettings/TagManager.asset" + ); + if (tagManagerAssets == null || tagManagerAssets.Length == 0) + { + McpLog.Error("[ManageEditor] TagManager.asset not found in ProjectSettings."); + return null; + } + // The first object in the asset file should be the TagManager + return new SerializedObject(tagManagerAssets[0]); + } + catch (Exception e) + { + McpLog.Error($"[ManageEditor] Error accessing TagManager.asset: {e.Message}"); + return null; + } + } + + // --- Example Implementations for Settings --- + /* + private static object SetGameViewResolution(int width, int height) { ... } + private static object SetQualityLevel(JToken qualityLevelToken) { ... } + */ + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/ManageEditor.cs.meta b/Packages/MCPForUnity/Editor/Tools/ManageEditor.cs.meta new file mode 100644 index 00000000..8b55fb87 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/ManageEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 43ac60aa36b361b4dbe4a038ae9f35c8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/ManageMaterial.cs b/Packages/MCPForUnity/Editor/Tools/ManageMaterial.cs new file mode 100644 index 00000000..e6d7cd22 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/ManageMaterial.cs @@ -0,0 +1,596 @@ +using System; +using System.Collections.Generic; +using MCPForUnity.Editor.Helpers; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.Tools +{ + [McpForUnityTool("manage_material", AutoRegister = false)] + public static class ManageMaterial + { + public static object HandleCommand(JObject @params) + { + string action = @params["action"]?.ToString()?.ToLowerInvariant(); + if (string.IsNullOrEmpty(action)) + { + return new ErrorResponse("Action is required"); + } + + try + { + switch (action) + { + case "ping": + return new SuccessResponse("pong", new { tool = "manage_material" }); + + case "create": + return CreateMaterial(@params); + + case "set_material_shader_property": + return SetMaterialShaderProperty(@params); + + case "set_material_color": + return SetMaterialColor(@params); + + case "assign_material_to_renderer": + return AssignMaterialToRenderer(@params); + + case "set_renderer_color": + return SetRendererColor(@params); + + case "get_material_info": + return GetMaterialInfo(@params); + + default: + return new ErrorResponse($"Unknown action: {action}"); + } + } + catch (Exception ex) + { + return new ErrorResponse(ex.Message, new { stackTrace = ex.StackTrace }); + } + } + + private static string NormalizePath(string path) + { + if (string.IsNullOrEmpty(path)) return path; + + // Normalize separators and ensure Assets/ root + path = AssetPathUtility.SanitizeAssetPath(path); + + // Ensure .mat extension + if (!path.EndsWith(".mat", StringComparison.OrdinalIgnoreCase)) + { + path += ".mat"; + } + + return path; + } + + private static object SetMaterialShaderProperty(JObject @params) + { + string materialPath = NormalizePath(@params["materialPath"]?.ToString()); + string property = @params["property"]?.ToString(); + JToken value = @params["value"]; + + if (string.IsNullOrEmpty(materialPath) || string.IsNullOrEmpty(property) || value == null) + { + return new ErrorResponse("materialPath, property, and value are required"); + } + + // Find material + var findInstruction = new JObject { ["find"] = materialPath }; + Material mat = ObjectResolver.Resolve(findInstruction, typeof(Material)) as Material; + + if (mat == null) + { + return new ErrorResponse($"Could not find material at path: {materialPath}"); + } + + Undo.RecordObject(mat, "Set Material Property"); + + // Normalize alias/casing once for all code paths + property = MaterialOps.ResolvePropertyName(mat, property); + + // 1. Try handling Texture instruction explicitly (ManageMaterial special feature) + if (value.Type == JTokenType.Object) + { + // Check if it looks like an instruction + if (value is JObject obj && (obj.ContainsKey("find") || obj.ContainsKey("method"))) + { + Texture tex = ObjectResolver.Resolve(obj, typeof(Texture)) as Texture; + if (tex != null && mat.HasProperty(property)) + { + mat.SetTexture(property, tex); + EditorUtility.SetDirty(mat); + return new SuccessResponse($"Set texture property {property} on {mat.name}"); + } + } + } + + // 2. Fallback to standard logic via MaterialOps (handles Colors, Floats, Strings->Path) + bool success = MaterialOps.TrySetShaderProperty(mat, property, value, UnityJsonSerializer.Instance); + + if (success) + { + EditorUtility.SetDirty(mat); + return new SuccessResponse($"Set property {property} on {mat.name}"); + } + else + { + return new ErrorResponse($"Failed to set property {property}. Value format might be unsupported or texture not found."); + } + } + + private static object SetMaterialColor(JObject @params) + { + string materialPath = NormalizePath(@params["materialPath"]?.ToString()); + JToken colorToken = @params["color"]; + string property = @params["property"]?.ToString(); + + if (string.IsNullOrEmpty(materialPath) || colorToken == null) + { + return new ErrorResponse("materialPath and color are required"); + } + + var findInstruction = new JObject { ["find"] = materialPath }; + Material mat = ObjectResolver.Resolve(findInstruction, typeof(Material)) as Material; + + if (mat == null) + { + return new ErrorResponse($"Could not find material at path: {materialPath}"); + } + + Color color; + try + { + color = MaterialOps.ParseColor(colorToken, UnityJsonSerializer.Instance); + } + catch (Exception e) + { + return new ErrorResponse($"Invalid color format: {e.Message}"); + } + + Undo.RecordObject(mat, "Set Material Color"); + + bool foundProp = false; + if (!string.IsNullOrEmpty(property)) + { + if (mat.HasProperty(property)) + { + mat.SetColor(property, color); + foundProp = true; + } + } + else + { + // Fallback logic: _BaseColor (URP/HDRP) then _Color (Built-in) + if (mat.HasProperty("_BaseColor")) + { + mat.SetColor("_BaseColor", color); + foundProp = true; + property = "_BaseColor"; + } + else if (mat.HasProperty("_Color")) + { + mat.SetColor("_Color", color); + foundProp = true; + property = "_Color"; + } + } + + if (foundProp) + { + EditorUtility.SetDirty(mat); + return new SuccessResponse($"Set color on {property}"); + } + else + { + return new ErrorResponse("Could not find suitable color property (_BaseColor or _Color) or specified property does not exist."); + } + } + + private static object AssignMaterialToRenderer(JObject @params) + { + string target = @params["target"]?.ToString(); + string searchMethod = @params["searchMethod"]?.ToString(); + string materialPath = NormalizePath(@params["materialPath"]?.ToString()); + int slot = @params["slot"]?.ToObject() ?? 0; + + if (string.IsNullOrEmpty(target) || string.IsNullOrEmpty(materialPath)) + { + return new ErrorResponse("target and materialPath are required"); + } + + var goInstruction = new JObject { ["find"] = target }; + if (!string.IsNullOrEmpty(searchMethod)) goInstruction["method"] = searchMethod; + + GameObject go = ObjectResolver.Resolve(goInstruction, typeof(GameObject)) as GameObject; + if (go == null) + { + return new ErrorResponse($"Could not find target GameObject: {target}"); + } + + Renderer renderer = go.GetComponent(); + if (renderer == null) + { + return new ErrorResponse($"GameObject {go.name} has no Renderer component"); + } + + var matInstruction = new JObject { ["find"] = materialPath }; + Material mat = ObjectResolver.Resolve(matInstruction, typeof(Material)) as Material; + if (mat == null) + { + return new ErrorResponse($"Could not find material: {materialPath}"); + } + + Undo.RecordObject(renderer, "Assign Material"); + + Material[] sharedMats = renderer.sharedMaterials; + if (slot < 0 || slot >= sharedMats.Length) + { + return new ErrorResponse($"Slot {slot} out of bounds (count: {sharedMats.Length})"); + } + + sharedMats[slot] = mat; + renderer.sharedMaterials = sharedMats; + + EditorUtility.SetDirty(renderer); + return new SuccessResponse($"Assigned material {mat.name} to {go.name} slot {slot}"); + } + + private static object SetRendererColor(JObject @params) + { + string target = @params["target"]?.ToString(); + string searchMethod = @params["searchMethod"]?.ToString(); + JToken colorToken = @params["color"]; + int slot = @params["slot"]?.ToObject() ?? 0; + string mode = @params["mode"]?.ToString() ?? "property_block"; + + if (string.IsNullOrEmpty(target) || colorToken == null) + { + return new ErrorResponse("target and color are required"); + } + + Color color; + try + { + color = MaterialOps.ParseColor(colorToken, UnityJsonSerializer.Instance); + } + catch (Exception e) + { + return new ErrorResponse($"Invalid color format: {e.Message}"); + } + + var goInstruction = new JObject { ["find"] = target }; + if (!string.IsNullOrEmpty(searchMethod)) goInstruction["method"] = searchMethod; + + GameObject go = ObjectResolver.Resolve(goInstruction, typeof(GameObject)) as GameObject; + if (go == null) + { + return new ErrorResponse($"Could not find target GameObject: {target}"); + } + + Renderer renderer = go.GetComponent(); + if (renderer == null) + { + return new ErrorResponse($"GameObject {go.name} has no Renderer component"); + } + + if (mode == "property_block") + { + if (slot < 0 || slot >= renderer.sharedMaterials.Length) + { + return new ErrorResponse($"Slot {slot} out of bounds (count: {renderer.sharedMaterials.Length})"); + } + + MaterialPropertyBlock block = new MaterialPropertyBlock(); + renderer.GetPropertyBlock(block, slot); + + if (renderer.sharedMaterials[slot] != null) + { + Material mat = renderer.sharedMaterials[slot]; + if (mat.HasProperty("_BaseColor")) block.SetColor("_BaseColor", color); + else if (mat.HasProperty("_Color")) block.SetColor("_Color", color); + else block.SetColor("_Color", color); + } + else + { + block.SetColor("_Color", color); + } + + renderer.SetPropertyBlock(block, slot); + EditorUtility.SetDirty(renderer); + return new SuccessResponse($"Set renderer color (PropertyBlock) on slot {slot}"); + } + else if (mode == "shared") + { + if (slot >= 0 && slot < renderer.sharedMaterials.Length) + { + Material mat = renderer.sharedMaterials[slot]; + if (mat == null) + { + return new ErrorResponse($"No material in slot {slot}"); + } + Undo.RecordObject(mat, "Set Material Color"); + if (mat.HasProperty("_BaseColor")) mat.SetColor("_BaseColor", color); + else mat.SetColor("_Color", color); + EditorUtility.SetDirty(mat); + return new SuccessResponse("Set shared material color"); + } + return new ErrorResponse("Invalid slot"); + } + else if (mode == "instance") + { + if (slot >= 0 && slot < renderer.materials.Length) + { + Material mat = renderer.materials[slot]; + if (mat == null) + { + return new ErrorResponse($"No material in slot {slot}"); + } + // Note: Undo cannot fully revert material instantiation + Undo.RecordObject(mat, "Set Instance Material Color"); + if (mat.HasProperty("_BaseColor")) mat.SetColor("_BaseColor", color); + else mat.SetColor("_Color", color); + return new SuccessResponse("Set instance material color", new { warning = "Material instance created; Undo cannot fully revert instantiation." }); + } + return new ErrorResponse("Invalid slot"); + } + + return new ErrorResponse($"Unknown mode: {mode}"); + } + + private static object GetMaterialInfo(JObject @params) + { + string materialPath = NormalizePath(@params["materialPath"]?.ToString()); + if (string.IsNullOrEmpty(materialPath)) + { + return new ErrorResponse("materialPath is required"); + } + + var findInstruction = new JObject { ["find"] = materialPath }; + Material mat = ObjectResolver.Resolve(findInstruction, typeof(Material)) as Material; + + if (mat == null) + { + return new ErrorResponse($"Could not find material at path: {materialPath}"); + } + + Shader shader = mat.shader; + var properties = new List(); + +#if UNITY_6000_0_OR_NEWER + int propertyCount = shader.GetPropertyCount(); + for (int i = 0; i < propertyCount; i++) + { + string name = shader.GetPropertyName(i); + var type = shader.GetPropertyType(i); + string description = shader.GetPropertyDescription(i); + + object currentValue = null; + try + { + if (mat.HasProperty(name)) + { + switch (type) + { + case UnityEngine.Rendering.ShaderPropertyType.Color: + var c = mat.GetColor(name); + currentValue = new { r = c.r, g = c.g, b = c.b, a = c.a }; + break; + case UnityEngine.Rendering.ShaderPropertyType.Vector: + var v = mat.GetVector(name); + currentValue = new { x = v.x, y = v.y, z = v.z, w = v.w }; + break; + case UnityEngine.Rendering.ShaderPropertyType.Float: + case UnityEngine.Rendering.ShaderPropertyType.Range: + currentValue = mat.GetFloat(name); + break; + case UnityEngine.Rendering.ShaderPropertyType.Texture: + currentValue = mat.GetTexture(name)?.name ?? "null"; + break; + } + } + } + catch (Exception ex) + { + currentValue = $""; + } + + properties.Add(new + { + name = name, + type = type.ToString(), + description = description, + value = currentValue + }); + } +#else + int propertyCount = ShaderUtil.GetPropertyCount(shader); + for (int i = 0; i < propertyCount; i++) + { + string name = ShaderUtil.GetPropertyName(shader, i); + ShaderUtil.ShaderPropertyType type = ShaderUtil.GetPropertyType(shader, i); + string description = ShaderUtil.GetPropertyDescription(shader, i); + + object currentValue = null; + try + { + if (mat.HasProperty(name)) + { + switch (type) + { + case ShaderUtil.ShaderPropertyType.Color: + var c = mat.GetColor(name); + currentValue = new { r = c.r, g = c.g, b = c.b, a = c.a }; + break; + case ShaderUtil.ShaderPropertyType.Vector: + var v = mat.GetVector(name); + currentValue = new { x = v.x, y = v.y, z = v.z, w = v.w }; + break; + case ShaderUtil.ShaderPropertyType.Float: currentValue = mat.GetFloat(name); break; + case ShaderUtil.ShaderPropertyType.Range: currentValue = mat.GetFloat(name); break; + case ShaderUtil.ShaderPropertyType.TexEnv: currentValue = mat.GetTexture(name)?.name ?? "null"; break; + } + } + } + catch (Exception ex) + { + currentValue = $""; + } + + properties.Add(new + { + name = name, + type = type.ToString(), + description = description, + value = currentValue + }); + } +#endif + + return new SuccessResponse($"Retrieved material info for {mat.name}", new + { + material = mat.name, + shader = shader.name, + properties = properties + }); + } + + private static object CreateMaterial(JObject @params) + { + string materialPath = NormalizePath(@params["materialPath"]?.ToString()); + string shaderName = @params["shader"]?.ToString() ?? "Standard"; + JToken colorToken = @params["color"]; + string colorProperty = @params["property"]?.ToString(); + + JObject properties = null; + JToken propsToken = @params["properties"]; + if (propsToken != null) + { + if (propsToken.Type == JTokenType.String) + { + try { properties = JObject.Parse(propsToken.ToString()); } + catch (Exception ex) { return new ErrorResponse($"Invalid JSON in properties: {ex.Message}"); } + } + else if (propsToken is JObject obj) + { + properties = obj; + } + } + + if (string.IsNullOrEmpty(materialPath)) + { + return new ErrorResponse("materialPath is required"); + } + + // Safety check: SanitizeAssetPath should guarantee Assets/ prefix + // This check catches edge cases where normalization might fail + if (!materialPath.StartsWith("Assets/")) + { + return new ErrorResponse($"Invalid path '{materialPath}'. Path must be within Assets/ folder."); + } + + Shader shader = RenderPipelineUtility.ResolveShader(shaderName); + if (shader == null) + { + return new ErrorResponse($"Could not find shader: {shaderName}"); + } + + // Check for existing asset to avoid silent overwrite + if (AssetDatabase.LoadAssetAtPath(materialPath) != null) + { + return new ErrorResponse($"Material already exists at {materialPath}"); + } + + Material material = null; + var shouldDestroyMaterial = true; + try + { + material = new Material(shader); + + // Apply color param during creation (keeps Python tool signature and C# implementation consistent). + // If "properties" already contains a color property, let properties win. + bool shouldApplyColor = false; + if (colorToken != null) + { + if (properties == null) + { + shouldApplyColor = true; + } + else if (!string.IsNullOrEmpty(colorProperty)) + { + // If colorProperty is specified, only check that specific property. + shouldApplyColor = !properties.ContainsKey(colorProperty); + } + else + { + // If colorProperty is not specified, check fallback properties. + shouldApplyColor = !properties.ContainsKey("_BaseColor") && !properties.ContainsKey("_Color"); + } + } + + if (shouldApplyColor) + { + Color color; + try + { + color = MaterialOps.ParseColor(colorToken, UnityJsonSerializer.Instance); + } + catch (Exception e) + { + return new ErrorResponse($"Invalid color format: {e.Message}"); + } + + if (!string.IsNullOrEmpty(colorProperty)) + { + if (material.HasProperty(colorProperty)) + { + material.SetColor(colorProperty, color); + } + else + { + return new ErrorResponse($"Specified color property '{colorProperty}' does not exist on this material."); + } + } + else if (material.HasProperty("_BaseColor")) + { + material.SetColor("_BaseColor", color); + } + else if (material.HasProperty("_Color")) + { + material.SetColor("_Color", color); + } + else + { + return new ErrorResponse("Could not find suitable color property (_BaseColor or _Color) on this material's shader."); + } + } + + AssetDatabase.CreateAsset(material, materialPath); + shouldDestroyMaterial = false; // material is now owned by the AssetDatabase + + if (properties != null) + { + MaterialOps.ApplyProperties(material, properties, UnityJsonSerializer.Instance); + } + + EditorUtility.SetDirty(material); + AssetDatabase.SaveAssets(); + + return new SuccessResponse($"Created material at {materialPath} with shader {shaderName}"); + } + finally + { + if (shouldDestroyMaterial && material != null) + { + UnityEngine.Object.DestroyImmediate(material); + } + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/ManageMaterial.cs.meta b/Packages/MCPForUnity/Editor/Tools/ManageMaterial.cs.meta new file mode 100644 index 00000000..a4ba8ed2 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/ManageMaterial.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e55741e2b00794a049a0ed5e63278a56 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/ManageScene.cs b/Packages/MCPForUnity/Editor/Tools/ManageScene.cs new file mode 100644 index 00000000..2ceecd9a --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/ManageScene.cs @@ -0,0 +1,838 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using MCPForUnity.Editor.Helpers; // For Response class +using MCPForUnity.Runtime.Helpers; // For ScreenshotUtility +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEditor.SceneManagement; +using UnityEngine; +using UnityEngine.SceneManagement; + +namespace MCPForUnity.Editor.Tools +{ + /// + /// Handles scene management operations like loading, saving, creating, and querying hierarchy. + /// + [McpForUnityTool("manage_scene", AutoRegister = false)] + public static class ManageScene + { + private sealed class SceneCommand + { + public string action { get; set; } = string.Empty; + public string name { get; set; } = string.Empty; + public string path { get; set; } = string.Empty; + public int? buildIndex { get; set; } + public string fileName { get; set; } = string.Empty; + public int? superSize { get; set; } + + // get_hierarchy paging + safety (summary-first) + public JToken parent { get; set; } + public int? pageSize { get; set; } + public int? cursor { get; set; } + public int? maxNodes { get; set; } + public int? maxDepth { get; set; } + public int? maxChildrenPerNode { get; set; } + public bool? includeTransform { get; set; } + } + + private static SceneCommand ToSceneCommand(JObject p) + { + if (p == null) return new SceneCommand(); + return new SceneCommand + { + action = (p["action"]?.ToString() ?? string.Empty).Trim().ToLowerInvariant(), + name = p["name"]?.ToString() ?? string.Empty, + path = p["path"]?.ToString() ?? string.Empty, + buildIndex = ParamCoercion.CoerceIntNullable(p["buildIndex"] ?? p["build_index"]), + fileName = (p["fileName"] ?? p["filename"])?.ToString() ?? string.Empty, + superSize = ParamCoercion.CoerceIntNullable(p["superSize"] ?? p["super_size"] ?? p["supersize"]), + + // get_hierarchy paging + safety + parent = p["parent"], + pageSize = ParamCoercion.CoerceIntNullable(p["pageSize"] ?? p["page_size"]), + cursor = ParamCoercion.CoerceIntNullable(p["cursor"]), + maxNodes = ParamCoercion.CoerceIntNullable(p["maxNodes"] ?? p["max_nodes"]), + maxDepth = ParamCoercion.CoerceIntNullable(p["maxDepth"] ?? p["max_depth"]), + maxChildrenPerNode = ParamCoercion.CoerceIntNullable(p["maxChildrenPerNode"] ?? p["max_children_per_node"]), + includeTransform = ParamCoercion.CoerceBoolNullable(p["includeTransform"] ?? p["include_transform"]), + }; + } + + /// + /// Main handler for scene management actions. + /// + public static object HandleCommand(JObject @params) + { + try { McpLog.Info("[ManageScene] HandleCommand: start", always: false); } catch { } + var cmd = ToSceneCommand(@params); + string action = cmd.action; + string name = string.IsNullOrEmpty(cmd.name) ? null : cmd.name; + string path = string.IsNullOrEmpty(cmd.path) ? null : cmd.path; // Relative to Assets/ + int? buildIndex = cmd.buildIndex; + // bool loadAdditive = @params["loadAdditive"]?.ToObject() ?? false; // Example for future extension + + // Ensure path is relative to Assets/, removing any leading "Assets/" + string relativeDir = path ?? string.Empty; + if (!string.IsNullOrEmpty(relativeDir)) + { + relativeDir = AssetPathUtility.NormalizeSeparators(relativeDir).Trim('/'); + if (relativeDir.StartsWith("Assets/", StringComparison.OrdinalIgnoreCase)) + { + relativeDir = relativeDir.Substring("Assets/".Length).TrimStart('/'); + } + } + + // Apply default *after* sanitizing, using the original path variable for the check + if (string.IsNullOrEmpty(path) && action == "create") // Check original path for emptiness + { + relativeDir = "Scenes"; // Default relative directory + } + + if (string.IsNullOrEmpty(action)) + { + return new ErrorResponse("Action parameter is required."); + } + + string sceneFileName = string.IsNullOrEmpty(name) ? null : $"{name}.unity"; + // Construct full system path correctly: ProjectRoot/Assets/relativeDir/sceneFileName + string fullPathDir = Path.Combine(Application.dataPath, relativeDir); // Combine with Assets path (Application.dataPath ends in Assets) + string fullPath = string.IsNullOrEmpty(sceneFileName) + ? null + : Path.Combine(fullPathDir, sceneFileName); + // Ensure relativePath always starts with "Assets/" and uses forward slashes + string relativePath = string.IsNullOrEmpty(sceneFileName) + ? null + : AssetPathUtility.NormalizeSeparators(Path.Combine("Assets", relativeDir, sceneFileName)); + + // Ensure directory exists for 'create' + if (action == "create" && !string.IsNullOrEmpty(fullPathDir)) + { + try + { + Directory.CreateDirectory(fullPathDir); + } + catch (Exception e) + { + return new ErrorResponse( + $"Could not create directory '{fullPathDir}': {e.Message}" + ); + } + } + + // Route action + try { McpLog.Info($"[ManageScene] Route action='{action}' name='{name}' path='{path}' buildIndex={(buildIndex.HasValue ? buildIndex.Value.ToString() : "null")}", always: false); } catch { } + switch (action) + { + case "create": + if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(relativePath)) + return new ErrorResponse( + "'name' and 'path' parameters are required for 'create' action." + ); + return CreateScene(fullPath, relativePath); + case "load": + // Loading can be done by path/name or build index + if (!string.IsNullOrEmpty(relativePath)) + return LoadScene(relativePath); + else if (buildIndex.HasValue) + return LoadScene(buildIndex.Value); + else + return new ErrorResponse( + "Either 'name'/'path' or 'buildIndex' must be provided for 'load' action." + ); + case "save": + // Save current scene, optionally to a new path + return SaveScene(fullPath, relativePath); + case "get_hierarchy": + try { McpLog.Info("[ManageScene] get_hierarchy: entering", always: false); } catch { } + var gh = GetSceneHierarchyPaged(cmd); + try { McpLog.Info("[ManageScene] get_hierarchy: exiting", always: false); } catch { } + return gh; + case "get_active": + try { McpLog.Info("[ManageScene] get_active: entering", always: false); } catch { } + var ga = GetActiveSceneInfo(); + try { McpLog.Info("[ManageScene] get_active: exiting", always: false); } catch { } + return ga; + case "get_build_settings": + return GetBuildSettingsScenes(); + case "screenshot": + return CaptureScreenshot(cmd.fileName, cmd.superSize); + // Add cases for modifying build settings, additive loading, unloading etc. + default: + return new ErrorResponse( + $"Unknown action: '{action}'. Valid actions: create, load, save, get_hierarchy, get_active, get_build_settings, screenshot." + ); + } + } + + /// + /// Captures a screenshot to Assets/Screenshots and returns a response payload. + /// Public so the tools UI can reuse the same logic without duplicating parameters. + /// Available in both Edit Mode and Play Mode. + /// + public static object ExecuteScreenshot(string fileName = null, int? superSize = null) + { + return CaptureScreenshot(fileName, superSize); + } + + private static object CreateScene(string fullPath, string relativePath) + { + if (File.Exists(fullPath)) + { + return new ErrorResponse($"Scene already exists at '{relativePath}'."); + } + + try + { + // Create a new empty scene + Scene newScene = EditorSceneManager.NewScene( + NewSceneSetup.EmptyScene, + NewSceneMode.Single + ); + // Save it to the specified path + bool saved = EditorSceneManager.SaveScene(newScene, relativePath); + + if (saved) + { + AssetDatabase.Refresh(ImportAssetOptions.ForceSynchronousImport); // Ensure Unity sees the new scene file + return new SuccessResponse( + $"Scene '{Path.GetFileName(relativePath)}' created successfully at '{relativePath}'.", + new { path = relativePath } + ); + } + else + { + // If SaveScene fails, it might leave an untitled scene open. + // Optionally try to close it, but be cautious. + return new ErrorResponse($"Failed to save new scene to '{relativePath}'."); + } + } + catch (Exception e) + { + return new ErrorResponse($"Error creating scene '{relativePath}': {e.Message}"); + } + } + + private static object LoadScene(string relativePath) + { + if ( + !File.Exists( + Path.Combine( + Application.dataPath.Substring( + 0, + Application.dataPath.Length - "Assets".Length + ), + relativePath + ) + ) + ) + { + return new ErrorResponse($"Scene file not found at '{relativePath}'."); + } + + // Check for unsaved changes in the current scene + if (EditorSceneManager.GetActiveScene().isDirty) + { + // Optionally prompt the user or save automatically before loading + return new ErrorResponse( + "Current scene has unsaved changes. Please save or discard changes before loading a new scene." + ); + // Example: bool saveOK = EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo(); + // if (!saveOK) return new ErrorResponse("Load cancelled by user."); + } + + try + { + EditorSceneManager.OpenScene(relativePath, OpenSceneMode.Single); + return new SuccessResponse( + $"Scene '{relativePath}' loaded successfully.", + new + { + path = relativePath, + name = Path.GetFileNameWithoutExtension(relativePath), + } + ); + } + catch (Exception e) + { + return new ErrorResponse($"Error loading scene '{relativePath}': {e.Message}"); + } + } + + private static object LoadScene(int buildIndex) + { + if (buildIndex < 0 || buildIndex >= SceneManager.sceneCountInBuildSettings) + { + return new ErrorResponse( + $"Invalid build index: {buildIndex}. Must be between 0 and {SceneManager.sceneCountInBuildSettings - 1}." + ); + } + + // Check for unsaved changes + if (EditorSceneManager.GetActiveScene().isDirty) + { + return new ErrorResponse( + "Current scene has unsaved changes. Please save or discard changes before loading a new scene." + ); + } + + try + { + string scenePath = SceneUtility.GetScenePathByBuildIndex(buildIndex); + EditorSceneManager.OpenScene(scenePath, OpenSceneMode.Single); + return new SuccessResponse( + $"Scene at build index {buildIndex} ('{scenePath}') loaded successfully.", + new + { + path = scenePath, + name = Path.GetFileNameWithoutExtension(scenePath), + buildIndex = buildIndex, + } + ); + } + catch (Exception e) + { + return new ErrorResponse( + $"Error loading scene with build index {buildIndex}: {e.Message}" + ); + } + } + + private static object SaveScene(string fullPath, string relativePath) + { + try + { + Scene currentScene = EditorSceneManager.GetActiveScene(); + if (!currentScene.IsValid()) + { + return new ErrorResponse("No valid scene is currently active to save."); + } + + bool saved; + string finalPath = currentScene.path; // Path where it was last saved or will be saved + + if (!string.IsNullOrEmpty(relativePath) && currentScene.path != relativePath) + { + // Save As... + // Ensure directory exists + string dir = Path.GetDirectoryName(fullPath); + if (!Directory.Exists(dir)) + Directory.CreateDirectory(dir); + + saved = EditorSceneManager.SaveScene(currentScene, relativePath); + finalPath = relativePath; + } + else + { + // Save (overwrite existing or save untitled) + if (string.IsNullOrEmpty(currentScene.path)) + { + // Scene is untitled, needs a path + return new ErrorResponse( + "Cannot save an untitled scene without providing a 'name' and 'path'. Use Save As functionality." + ); + } + saved = EditorSceneManager.SaveScene(currentScene); + } + + if (saved) + { + AssetDatabase.Refresh(ImportAssetOptions.ForceSynchronousImport); + return new SuccessResponse( + $"Scene '{currentScene.name}' saved successfully to '{finalPath}'.", + new { path = finalPath, name = currentScene.name } + ); + } + else + { + return new ErrorResponse($"Failed to save scene '{currentScene.name}'."); + } + } + catch (Exception e) + { + return new ErrorResponse($"Error saving scene: {e.Message}"); + } + } + + private static object CaptureScreenshot(string fileName, int? superSize) + { + try + { + int resolvedSuperSize = (superSize.HasValue && superSize.Value > 0) ? superSize.Value : 1; + + // Batch mode warning + if (Application.isBatchMode) + { + McpLog.Warn("[ManageScene] Screenshot capture in batch mode uses camera-based fallback. Results may vary."); + } + + // Check Screen Capture module availability and warn if not available + bool screenCaptureAvailable = ScreenshotUtility.IsScreenCaptureModuleAvailable; + bool hasCameraFallback = Camera.main != null || UnityEngine.Object.FindObjectsOfType().Length > 0; + +#if UNITY_2022_1_OR_NEWER + if (!screenCaptureAvailable && !hasCameraFallback) + { + return new ErrorResponse( + "Cannot capture screenshot. The Screen Capture module is not enabled and no Camera was found in the scene. " + + "Please either: (1) Enable the Screen Capture module: Window > Package Manager > Built-in > Screen Capture > Enable, " + + "or (2) Add a Camera to your scene for camera-based fallback capture." + ); + } + + if (!screenCaptureAvailable) + { + McpLog.Warn("[ManageScene] Screen Capture module not enabled. Using camera-based fallback. " + + "For best results, enable it: Window > Package Manager > Built-in > Screen Capture > Enable."); + } +#else + if (!hasCameraFallback) + { + return new ErrorResponse( + "No camera found in the scene. Screenshot capture on Unity versions before 2022.1 requires a Camera in the scene. " + + "Please add a Camera to your scene or upgrade to Unity 2022.1+ for ScreenCapture API support." + ); + } +#endif + + // Best-effort: ensure Game View exists and repaints before capture. + if (!Application.isBatchMode) + { + EnsureGameView(); + } + + ScreenshotCaptureResult result = ScreenshotUtility.CaptureToAssetsFolder(fileName, resolvedSuperSize, ensureUniqueFileName: true); + + // ScreenCapture.CaptureScreenshot is async. Import after the file actually hits disk. + if (result.IsAsync) + { + ScheduleAssetImportWhenFileExists(result.AssetsRelativePath, result.FullPath, timeoutSeconds: 30.0); + } + else + { + AssetDatabase.ImportAsset(result.AssetsRelativePath, ImportAssetOptions.ForceSynchronousImport); + } + + string verb = result.IsAsync ? "Screenshot requested" : "Screenshot captured"; + string message = $"{verb} to '{result.AssetsRelativePath}' (full: {result.FullPath})."; + + return new SuccessResponse( + message, + new + { + path = result.AssetsRelativePath, + fullPath = result.FullPath, + superSize = result.SuperSize, + isAsync = result.IsAsync, + } + ); + } + catch (Exception e) + { + return new ErrorResponse($"Error capturing screenshot: {e.Message}"); + } + } + + private static void EnsureGameView() + { + try + { + // Ensure a Game View exists and has a chance to repaint before capture. + try + { + if (!EditorApplication.ExecuteMenuItem("Window/General/Game")) + { + // Some Unity versions expose hotkey suffixes in menu paths. + EditorApplication.ExecuteMenuItem("Window/General/Game %2"); + } + } + catch (Exception e) + { + try { McpLog.Debug($"[ManageScene] screenshot: failed to open Game View via menu item: {e.Message}"); } catch { } + } + + try + { + var gameViewType = Type.GetType("UnityEditor.GameView,UnityEditor"); + if (gameViewType != null) + { + var window = EditorWindow.GetWindow(gameViewType); + window?.Repaint(); + } + } + catch (Exception e) + { + try { McpLog.Debug($"[ManageScene] screenshot: failed to repaint Game View: {e.Message}"); } catch { } + } + + try { SceneView.RepaintAll(); } + catch (Exception e) + { + try { McpLog.Debug($"[ManageScene] screenshot: failed to repaint Scene View: {e.Message}"); } catch { } + } + + try { EditorApplication.QueuePlayerLoopUpdate(); } + catch (Exception e) + { + try { McpLog.Debug($"[ManageScene] screenshot: failed to queue player loop update: {e.Message}"); } catch { } + } + } + catch (Exception e) + { + try { McpLog.Debug($"[ManageScene] screenshot: EnsureGameView failed: {e.Message}"); } catch { } + } + } + + private static void ScheduleAssetImportWhenFileExists(string assetsRelativePath, string fullPath, double timeoutSeconds) + { + if (string.IsNullOrWhiteSpace(assetsRelativePath) || string.IsNullOrWhiteSpace(fullPath)) + { + McpLog.Warn("[ManageScene] ScheduleAssetImportWhenFileExists: invalid paths provided, skipping import scheduling."); + return; + } + + double start = EditorApplication.timeSinceStartup; + int failureCount = 0; + bool hasSeenFile = false; + const int maxLoggedFailures = 3; + EditorApplication.CallbackFunction tick = null; + tick = () => + { + try + { + if (File.Exists(fullPath)) + { + hasSeenFile = true; + + AssetDatabase.ImportAsset(assetsRelativePath, ImportAssetOptions.ForceSynchronousImport); + McpLog.Debug($"[ManageScene] Imported asset at '{assetsRelativePath}'."); + EditorApplication.update -= tick; + return; + } + } + catch (Exception e) + { + failureCount++; + + if (failureCount <= maxLoggedFailures) + { + McpLog.Warn($"[ManageScene] Exception while importing asset '{assetsRelativePath}' from '{fullPath}' (attempt {failureCount}): {e}"); + } + } + + if (EditorApplication.timeSinceStartup - start > timeoutSeconds) + { + if (!hasSeenFile) + { + McpLog.Warn($"[ManageScene] Timed out waiting for file '{fullPath}' (asset: '{assetsRelativePath}') after {timeoutSeconds:F1} seconds. The asset was not imported."); + } + else + { + McpLog.Warn($"[ManageScene] Timed out importing asset '{assetsRelativePath}' from '{fullPath}' after {timeoutSeconds:F1} seconds. The file existed but the asset was not imported."); + } + + EditorApplication.update -= tick; + } + }; + + EditorApplication.update += tick; + } + + private static object GetActiveSceneInfo() + { + try + { + try { McpLog.Info("[ManageScene] get_active: querying EditorSceneManager.GetActiveScene", always: false); } catch { } + Scene activeScene = EditorSceneManager.GetActiveScene(); + try { McpLog.Info($"[ManageScene] get_active: got scene valid={activeScene.IsValid()} loaded={activeScene.isLoaded} name='{activeScene.name}'", always: false); } catch { } + if (!activeScene.IsValid()) + { + return new ErrorResponse("No active scene found."); + } + + var sceneInfo = new + { + name = activeScene.name, + path = activeScene.path, + buildIndex = activeScene.buildIndex, // -1 if not in build settings + isDirty = activeScene.isDirty, + isLoaded = activeScene.isLoaded, + rootCount = activeScene.rootCount, + }; + + return new SuccessResponse("Retrieved active scene information.", sceneInfo); + } + catch (Exception e) + { + try { McpLog.Error($"[ManageScene] get_active: exception {e.Message}"); } catch { } + return new ErrorResponse($"Error getting active scene info: {e.Message}"); + } + } + + private static object GetBuildSettingsScenes() + { + try + { + var scenes = new List(); + for (int i = 0; i < EditorBuildSettings.scenes.Length; i++) + { + var scene = EditorBuildSettings.scenes[i]; + scenes.Add( + new + { + path = scene.path, + guid = scene.guid.ToString(), + enabled = scene.enabled, + buildIndex = i, // Actual build index considering only enabled scenes might differ + } + ); + } + return new SuccessResponse("Retrieved scenes from Build Settings.", scenes); + } + catch (Exception e) + { + return new ErrorResponse($"Error getting scenes from Build Settings: {e.Message}"); + } + } + + private static object GetSceneHierarchyPaged(SceneCommand cmd) + { + try + { + // Check Prefab Stage first + var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); + Scene activeScene; + + if (prefabStage != null) + { + activeScene = prefabStage.scene; + try { McpLog.Info("[ManageScene] get_hierarchy: using Prefab Stage scene", always: false); } catch { } + } + else + { + try { McpLog.Info("[ManageScene] get_hierarchy: querying EditorSceneManager.GetActiveScene", always: false); } catch { } + activeScene = EditorSceneManager.GetActiveScene(); + } + + try { McpLog.Info($"[ManageScene] get_hierarchy: got scene valid={activeScene.IsValid()} loaded={activeScene.isLoaded} name='{activeScene.name}'", always: false); } catch { } + if (!activeScene.IsValid() || !activeScene.isLoaded) + { + return new ErrorResponse( + "No valid and loaded scene is active to get hierarchy from." + ); + } + + // Defaults tuned for safety; callers can override but we clamp to sane maxes. + // NOTE: pageSize is "items per page", not "number of pages". + // Keep this conservative to reduce peak response sizes when callers omit page_size. + int resolvedPageSize = Mathf.Clamp(cmd.pageSize ?? 50, 1, 500); + int resolvedCursor = Mathf.Max(0, cmd.cursor ?? 0); + int resolvedMaxNodes = Mathf.Clamp(cmd.maxNodes ?? 1000, 1, 5000); + int effectiveTake = Mathf.Min(resolvedPageSize, resolvedMaxNodes); + int resolvedMaxChildrenPerNode = Mathf.Clamp(cmd.maxChildrenPerNode ?? 200, 0, 2000); + bool includeTransform = cmd.includeTransform ?? false; + + // NOTE: maxDepth is accepted for forward-compatibility, but current paging mode + // returns a single level (roots or direct children). This keeps payloads bounded. + + List nodes; + string scope; + + GameObject parentGo = ResolveGameObject(cmd.parent, activeScene); + if (cmd.parent == null || cmd.parent.Type == JTokenType.Null) + { + try { McpLog.Info("[ManageScene] get_hierarchy: listing root objects (paged summary)", always: false); } catch { } + nodes = activeScene.GetRootGameObjects().Where(go => go != null).ToList(); + scope = "roots"; + } + else + { + if (parentGo == null) + { + return new ErrorResponse($"Parent GameObject ('{cmd.parent}') not found."); + } + try { McpLog.Info($"[ManageScene] get_hierarchy: listing children of '{parentGo.name}' (paged summary)", always: false); } catch { } + nodes = new List(parentGo.transform.childCount); + foreach (Transform child in parentGo.transform) + { + if (child != null) nodes.Add(child.gameObject); + } + scope = "children"; + } + + int total = nodes.Count; + if (resolvedCursor > total) resolvedCursor = total; + int end = Mathf.Min(total, resolvedCursor + effectiveTake); + + var items = new List(Mathf.Max(0, end - resolvedCursor)); + for (int i = resolvedCursor; i < end; i++) + { + var go = nodes[i]; + if (go == null) continue; + items.Add(BuildGameObjectSummary(go, includeTransform, resolvedMaxChildrenPerNode)); + } + + bool truncated = end < total; + string nextCursor = truncated ? end.ToString() : null; + + var payload = new + { + scope = scope, + cursor = resolvedCursor, + pageSize = effectiveTake, + next_cursor = nextCursor, + truncated = truncated, + total = total, + items = items, + }; + + var resp = new SuccessResponse($"Retrieved hierarchy page for scene '{activeScene.name}'.", payload); + try { McpLog.Info("[ManageScene] get_hierarchy: success", always: false); } catch { } + return resp; + } + catch (Exception e) + { + try { McpLog.Error($"[ManageScene] get_hierarchy: exception {e.Message}"); } catch { } + return new ErrorResponse($"Error getting scene hierarchy: {e.Message}"); + } + } + + private static GameObject ResolveGameObject(JToken targetToken, Scene activeScene) + { + if (targetToken == null || targetToken.Type == JTokenType.Null) return null; + + try + { + if (targetToken.Type == JTokenType.Integer || int.TryParse(targetToken.ToString(), out _)) + { + if (int.TryParse(targetToken.ToString(), out int id)) + { + var obj = EditorUtility.InstanceIDToObject(id); + if (obj is GameObject go) return go; + if (obj is Component c) return c.gameObject; + } + } + } + catch { } + + string s = targetToken.ToString(); + if (string.IsNullOrEmpty(s)) return null; + + // Path-based find (e.g., "Root/Child/GrandChild") + if (s.Contains("/")) + { + try + { + var ids = GameObjectLookup.SearchGameObjects("by_path", s, includeInactive: true, maxResults: 1); + if (ids.Count > 0) + { + var byPath = GameObjectLookup.FindById(ids[0]); + if (byPath != null) return byPath; + } + } + catch { } + } + + // Name-based find (first match, includes inactive) + try + { + var all = activeScene.GetRootGameObjects(); + foreach (var root in all) + { + if (root == null) continue; + if (root.name == s) return root; + var trs = root.GetComponentsInChildren(includeInactive: true); + foreach (var t in trs) + { + if (t != null && t.gameObject != null && t.gameObject.name == s) return t.gameObject; + } + } + } + catch { } + + return null; + } + + private static object BuildGameObjectSummary(GameObject go, bool includeTransform, int maxChildrenPerNode) + { + if (go == null) return null; + + int childCount = 0; + try { childCount = go.transform != null ? go.transform.childCount : 0; } catch { } + bool childrenTruncated = childCount > 0; // We do not inline children in summary mode. + + // Get component type names (lightweight - no full serialization) + var componentTypes = new List(); + try + { + var components = go.GetComponents(); + if (components != null) + { + foreach (var c in components) + { + if (c != null) + { + componentTypes.Add(c.GetType().Name); + } + } + } + } + catch (Exception ex) + { + McpLog.Debug($"[ManageScene] Failed to enumerate components for '{go.name}': {ex.Message}"); + } + + var d = new Dictionary + { + { "name", go.name }, + { "instanceID", go.GetInstanceID() }, + { "activeSelf", go.activeSelf }, + { "activeInHierarchy", go.activeInHierarchy }, + { "tag", go.tag }, + { "layer", go.layer }, + { "isStatic", go.isStatic }, + { "path", GetGameObjectPath(go) }, + { "childCount", childCount }, + { "childrenTruncated", childrenTruncated }, + { "childrenCursor", childCount > 0 ? "0" : null }, + { "childrenPageSizeDefault", maxChildrenPerNode }, + { "componentTypes", componentTypes }, + }; + + if (includeTransform && go.transform != null) + { + var t = go.transform; + d["transform"] = new + { + position = new[] { t.localPosition.x, t.localPosition.y, t.localPosition.z }, + rotation = new[] { t.localRotation.eulerAngles.x, t.localRotation.eulerAngles.y, t.localRotation.eulerAngles.z }, + scale = new[] { t.localScale.x, t.localScale.y, t.localScale.z }, + }; + } + + return d; + } + + private static string GetGameObjectPath(GameObject go) + { + if (go == null) return string.Empty; + try + { + var names = new Stack(); + Transform t = go.transform; + while (t != null) + { + names.Push(t.name); + t = t.parent; + } + return string.Join("/", names); + } + catch + { + return go.name; + } + } + + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/ManageScene.cs.meta b/Packages/MCPForUnity/Editor/Tools/ManageScene.cs.meta new file mode 100644 index 00000000..532618aa --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/ManageScene.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b6ddda47f4077e74fbb5092388cefcc2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/ManageScript.cs b/Packages/MCPForUnity/Editor/Tools/ManageScript.cs new file mode 100644 index 00000000..3e98172d --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/ManageScript.cs @@ -0,0 +1,2672 @@ +using System; +using System.IO; +using System.Linq; +using System.Collections.Generic; +using System.Text.RegularExpressions; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEngine; +using MCPForUnity.Editor.Constants; +using MCPForUnity.Editor.Helpers; +using System.Threading; +using System.Security.Cryptography; + +#if USE_ROSLYN +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.Formatting; +#endif + +#if UNITY_EDITOR +using UnityEditor.Compilation; +#endif + + +namespace MCPForUnity.Editor.Tools +{ + /// + /// Handles CRUD operations for C# scripts within the Unity project. + /// + /// + /// ROSLYN INSTALLATION GUIDE: + /// To enable advanced syntax validation with Roslyn compiler services: + /// + /// 1. Install Microsoft.CodeAnalysis.CSharp NuGet package: + /// - Open Package Manager in Unity + /// - Follow the instruction on https://github.com/GlitchEnzo/NuGetForUnity + /// + /// 2. Open NuGet Package Manager and Install Microsoft.CodeAnalysis.CSharp: + /// + /// 3. Alternative: Manual DLL installation: + /// - Download Microsoft.CodeAnalysis.CSharp.dll and dependencies + /// - Place in Assets/Plugins/ folder + /// - Ensure .NET compatibility settings are correct + /// + /// 4. Define USE_ROSLYN symbol: + /// - Go to Player Settings > Scripting Define Symbols + /// - Add "USE_ROSLYN" to enable Roslyn-based validation + /// + /// 5. Restart Unity after installation + /// + /// Note: Without Roslyn, the system falls back to basic structural validation. + /// Roslyn provides full C# compiler diagnostics with line numbers and detailed error messages. + /// + [McpForUnityTool("manage_script", AutoRegister = false)] + public static class ManageScript + { + /// + /// Resolves a directory under Assets/, preventing traversal and escaping. + /// Returns fullPathDir on disk and canonical 'Assets/...' relative path. + /// + private static bool TryResolveUnderAssets(string relDir, out string fullPathDir, out string relPathSafe) + { + string assets = AssetPathUtility.NormalizeSeparators(Application.dataPath); + + // Normalize caller path: allow both "Scripts/..." and "Assets/Scripts/..." + string rel = AssetPathUtility.NormalizeSeparators(relDir ?? "Scripts").Trim(); + if (string.IsNullOrEmpty(rel)) rel = "Scripts"; + + // Handle both "Assets" and "Assets/" prefixes + if (rel.Equals("Assets", StringComparison.OrdinalIgnoreCase)) + { + rel = string.Empty; + } + else if (rel.StartsWith("Assets/", StringComparison.OrdinalIgnoreCase)) + { + rel = rel.Substring(7); + } + + rel = rel.TrimStart('/'); + + string targetDir = AssetPathUtility.NormalizeSeparators(Path.Combine(assets, rel)); + string full = AssetPathUtility.NormalizeSeparators(Path.GetFullPath(targetDir)); + + bool underAssets = full.StartsWith(assets + "/", StringComparison.OrdinalIgnoreCase) + || string.Equals(full, assets, StringComparison.OrdinalIgnoreCase); + if (!underAssets) + { + fullPathDir = null; + relPathSafe = null; + return false; + } + + // Best-effort symlink guard: if the directory OR ANY ANCESTOR (up to Assets/) is a reparse point/symlink, reject + try + { + var di = new DirectoryInfo(full); + while (di != null) + { + if (di.Exists && (di.Attributes & FileAttributes.ReparsePoint) != 0) + { + fullPathDir = null; + relPathSafe = null; + return false; + } + var atAssets = string.Equals( + di.FullName.Replace('\\', '/'), + assets, + StringComparison.OrdinalIgnoreCase + ); + if (atAssets) break; + di = di.Parent; + } + } + catch { /* best effort; proceed */ } + + fullPathDir = full; + string tail = full.Length > assets.Length ? full.Substring(assets.Length).TrimStart('/') : string.Empty; + relPathSafe = ("Assets/" + tail).TrimEnd('/'); + return true; + } + /// + /// Main handler for script management actions. + /// + public static object HandleCommand(JObject @params) + { + // Handle null parameters + if (@params == null) + { + return new ErrorResponse("invalid_params", "Parameters cannot be null."); + } + + var p = new ToolParams(@params); + + // Extract and validate required parameters + var actionResult = p.GetRequired("action"); + if (!actionResult.IsSuccess) + { + return new ErrorResponse(actionResult.ErrorMessage); + } + string action = actionResult.Value.ToLowerInvariant(); + + var nameResult = p.GetRequired("name"); + if (!nameResult.IsSuccess) + { + return new ErrorResponse(nameResult.ErrorMessage); + } + string name = nameResult.Value; + + // Optional parameters + string path = p.Get("path"); // Relative to Assets/ + string contents = null; + + // Check if we have base64 encoded contents + bool contentsEncoded = p.GetBool("contentsEncoded", false); + if (contentsEncoded && p.Has("encodedContents")) + { + try + { + contents = DecodeBase64(p.Get("encodedContents")); + } + catch (Exception e) + { + return new ErrorResponse($"Failed to decode script contents: {e.Message}"); + } + } + else + { + contents = p.Get("contents"); + } + + string scriptType = p.Get("scriptType"); // For templates/validation + string namespaceName = p.Get("namespace"); // For organizing code + // Basic name validation (alphanumeric, underscores, cannot start with number) + if (!Regex.IsMatch(name, @"^[a-zA-Z_][a-zA-Z0-9_]*$", RegexOptions.CultureInvariant, TimeSpan.FromSeconds(2))) + { + return new ErrorResponse( + $"Invalid script name: '{name}'. Use only letters, numbers, underscores, and don't start with a number." + ); + } + + // Resolve and harden target directory under Assets/ + if (!TryResolveUnderAssets(path, out string fullPathDir, out string relPathSafeDir)) + { + return new ErrorResponse($"Invalid path. Target directory must be within 'Assets/'. Provided: '{(path ?? "(null)")}'"); + } + + // Construct file paths + string scriptFileName = $"{name}.cs"; + string fullPath = Path.Combine(fullPathDir, scriptFileName); + string relativePath = AssetPathUtility.NormalizeSeparators(Path.Combine(relPathSafeDir, scriptFileName)); + + // Ensure the target directory exists for create/update + if (action == "create" || action == "update") + { + try + { + Directory.CreateDirectory(fullPathDir); + } + catch (Exception e) + { + return new ErrorResponse( + $"Could not create directory '{fullPathDir}': {e.Message}" + ); + } + } + + // Route to specific action handlers + switch (action) + { + case "create": + return CreateScript( + fullPath, + relativePath, + name, + contents, + scriptType, + namespaceName + ); + case "read": + McpLog.Warn("manage_script.read is deprecated; prefer resources/read. Serving read for backward compatibility."); + return ReadScript(fullPath, relativePath); + case "update": + McpLog.Warn("manage_script.update is deprecated; prefer apply_text_edits. Serving update for backward compatibility."); + return UpdateScript(fullPath, relativePath, name, contents); + case "delete": + return DeleteScript(fullPath, relativePath); + case "apply_text_edits": + { + var textEdits = p.GetRaw("edits") as JArray; + string precondition = p.Get("precondition_sha256"); + // Respect optional options (guard type before indexing) + var optionsObj = p.GetRaw("options") as JObject; + string refreshOpt = optionsObj?["refresh"]?.ToString()?.ToLowerInvariant(); + string validateOpt = optionsObj?["validate"]?.ToString()?.ToLowerInvariant(); + return ApplyTextEdits(fullPath, relativePath, name, textEdits, precondition, refreshOpt, validateOpt); + } + case "validate": + { + string level = p.Get("level", "standard").ToLowerInvariant(); + var chosen = level switch + { + "basic" => ValidationLevel.Basic, + "standard" => ValidationLevel.Standard, + "strict" => ValidationLevel.Strict, + "comprehensive" => ValidationLevel.Comprehensive, + _ => ValidationLevel.Standard + }; + string fileText; + try { fileText = File.ReadAllText(fullPath); } + catch (Exception ex) { return new ErrorResponse($"Failed to read script: {ex.Message}"); } + + bool ok = ValidateScriptSyntax(fileText, chosen, out string[] diagsRaw); + var diags = (diagsRaw ?? Array.Empty()).Select(s => + { + var m = Regex.Match( + s, + @"^(ERROR|WARNING|INFO): (.*?)(?: \(Line (\d+)\))?$", + RegexOptions.CultureInvariant | RegexOptions.Multiline, + TimeSpan.FromMilliseconds(250) + ); + string severity = m.Success ? m.Groups[1].Value.ToLowerInvariant() : "info"; + string message = m.Success ? m.Groups[2].Value : s; + int lineNum = m.Success && int.TryParse(m.Groups[3].Value, out var l) ? l : 0; + return new { line = lineNum, col = 0, severity, message }; + }).ToArray(); + + var result = new { diagnostics = diags }; + return ok ? new SuccessResponse("Validation completed.", result) + : new ErrorResponse("Validation failed.", result); + } + case "edit": + McpLog.Warn("manage_script.edit is deprecated; prefer apply_text_edits. Serving structured edit for backward compatibility."); + var structEdits = @params["edits"] as JArray; + var options = @params["options"] as JObject; + return EditScript(fullPath, relativePath, name, structEdits, options); + case "get_sha": + { + try + { + if (!File.Exists(fullPath)) + return new ErrorResponse($"Script not found at '{relativePath}'."); + + string text = File.ReadAllText(fullPath); + string sha = ComputeSha256(text); + var fi = new FileInfo(fullPath); + long lengthBytes; + try { lengthBytes = new System.Text.UTF8Encoding(encoderShouldEmitUTF8Identifier: false).GetByteCount(text); } + catch { lengthBytes = fi.Exists ? fi.Length : 0; } + var data = new + { + uri = $"mcpforunity://path/{relativePath}", + path = relativePath, + sha256 = sha, + lengthBytes, + lastModifiedUtc = fi.Exists ? fi.LastWriteTimeUtc.ToString("o") : string.Empty + }; + return new SuccessResponse($"SHA computed for '{relativePath}'.", data); + } + catch (Exception ex) + { + return new ErrorResponse($"Failed to compute SHA: {ex.Message}"); + } + } + default: + return new ErrorResponse( + $"Unknown action: '{action}'. Valid actions are: create, delete, apply_text_edits, validate, read (deprecated), update (deprecated), edit (deprecated)." + ); + } + } + + /// + /// Decode base64 string to normal text + /// + private static string DecodeBase64(string encoded) + { + byte[] data = Convert.FromBase64String(encoded); + return System.Text.Encoding.UTF8.GetString(data); + } + + /// + /// Encode text to base64 string + /// + private static string EncodeBase64(string text) + { + byte[] data = System.Text.Encoding.UTF8.GetBytes(text); + return Convert.ToBase64String(data); + } + + private static object CreateScript( + string fullPath, + string relativePath, + string name, + string contents, + string scriptType, + string namespaceName + ) + { + // Check if script already exists + if (File.Exists(fullPath)) + { + return new ErrorResponse( + $"Script already exists at '{relativePath}'. Use 'update' action to modify." + ); + } + + // Generate default content if none provided + if (string.IsNullOrEmpty(contents)) + { + contents = GenerateDefaultScriptContent(name, scriptType, namespaceName); + } + + // Validate syntax with detailed error reporting using GUI setting + ValidationLevel validationLevel = GetValidationLevelFromGUI(); + bool isValid = ValidateScriptSyntax(contents, validationLevel, out string[] validationErrors); + if (!isValid) + { + return new ErrorResponse("validation_failed", new { status = "validation_failed", diagnostics = validationErrors ?? Array.Empty() }); + } + else if (validationErrors != null && validationErrors.Length > 0) + { + // Log warnings but don't block creation + McpLog.Warn($"Script validation warnings for {name}:\n" + string.Join("\n", validationErrors)); + } + + try + { + // Atomic create without BOM; schedule refresh after reply + var enc = new System.Text.UTF8Encoding(encoderShouldEmitUTF8Identifier: false); + var tmp = fullPath + ".tmp"; + File.WriteAllText(tmp, contents, enc); + try + { + File.Move(tmp, fullPath); + } + catch (IOException) + { + File.Copy(tmp, fullPath, overwrite: true); + try { File.Delete(tmp); } catch { } + } + + var uri = $"mcpforunity://path/{relativePath}"; + var ok = new SuccessResponse( + $"Script '{name}.cs' created successfully at '{relativePath}'.", + new { uri, scheduledRefresh = false } + ); + + ManageScriptRefreshHelpers.ImportAndRequestCompile(relativePath); + + return ok; + } + catch (Exception e) + { + return new ErrorResponse($"Failed to create script '{relativePath}': {e.Message}"); + } + } + + private static object ReadScript(string fullPath, string relativePath) + { + if (!File.Exists(fullPath)) + { + return new ErrorResponse($"Script not found at '{relativePath}'."); + } + + try + { + string contents = File.ReadAllText(fullPath); + + // Return both normal and encoded contents for larger files + bool isLarge = contents.Length > 10000; // If content is large, include encoded version + var uri = $"mcpforunity://path/{relativePath}"; + var responseData = new + { + uri, + path = relativePath, + contents = contents, + // For large files, also include base64-encoded version + encodedContents = isLarge ? EncodeBase64(contents) : null, + contentsEncoded = isLarge, + }; + + return new SuccessResponse( + $"Script '{Path.GetFileName(relativePath)}' read successfully.", + responseData + ); + } + catch (Exception e) + { + return new ErrorResponse($"Failed to read script '{relativePath}': {e.Message}"); + } + } + + private static object UpdateScript( + string fullPath, + string relativePath, + string name, + string contents + ) + { + if (!File.Exists(fullPath)) + { + return new ErrorResponse( + $"Script not found at '{relativePath}'. Use 'create' action to add a new script." + ); + } + if (string.IsNullOrEmpty(contents)) + { + return new ErrorResponse("Content is required for the 'update' action."); + } + + // Validate syntax with detailed error reporting using GUI setting + ValidationLevel validationLevel = GetValidationLevelFromGUI(); + bool isValid = ValidateScriptSyntax(contents, validationLevel, out string[] validationErrors); + if (!isValid) + { + return new ErrorResponse("validation_failed", new { status = "validation_failed", diagnostics = validationErrors ?? Array.Empty() }); + } + else if (validationErrors != null && validationErrors.Length > 0) + { + // Log warnings but don't block update + McpLog.Warn($"Script validation warnings for {name}:\n" + string.Join("\n", validationErrors)); + } + + try + { + // Safe write with atomic replace when available, without BOM + var encoding = new System.Text.UTF8Encoding(encoderShouldEmitUTF8Identifier: false); + string tempPath = fullPath + ".tmp"; + File.WriteAllText(tempPath, contents, encoding); + + string backupPath = fullPath + ".bak"; + try + { + File.Replace(tempPath, fullPath, backupPath); + try { if (File.Exists(backupPath)) File.Delete(backupPath); } catch { } + } + catch (PlatformNotSupportedException) + { + File.Copy(tempPath, fullPath, true); + try { File.Delete(tempPath); } catch { } + try { if (File.Exists(backupPath)) File.Delete(backupPath); } catch { } + } + catch (IOException) + { + File.Copy(tempPath, fullPath, true); + try { File.Delete(tempPath); } catch { } + try { if (File.Exists(backupPath)) File.Delete(backupPath); } catch { } + } + + // Prepare success response BEFORE any operation that can trigger a domain reload + var uri = $"mcpforunity://path/{relativePath}"; + var ok = new SuccessResponse( + $"Script '{name}.cs' updated successfully at '{relativePath}'.", + new { uri, path = relativePath, scheduledRefresh = true } + ); + + // Schedule a debounced import/compile on next editor tick to avoid stalling the reply + ManageScriptRefreshHelpers.ScheduleScriptRefresh(relativePath); + + return ok; + } + catch (Exception e) + { + return new ErrorResponse($"Failed to update script '{relativePath}': {e.Message}"); + } + } + + /// + /// Apply simple text edits specified by line/column ranges. Applies transactionally and validates result. + /// + private const int MaxEditPayloadBytes = 64 * 1024; + + private static object ApplyTextEdits( + string fullPath, + string relativePath, + string name, + JArray edits, + string preconditionSha256, + string refreshModeFromCaller = null, + string validateMode = null) + { + if (!File.Exists(fullPath)) + return new ErrorResponse($"Script not found at '{relativePath}'."); + // Refuse edits if the target or any ancestor is a symlink + try + { + var di = new DirectoryInfo(Path.GetDirectoryName(fullPath) ?? ""); + while (di != null && !string.Equals(di.FullName.Replace('\\', '/'), Application.dataPath.Replace('\\', '/'), StringComparison.OrdinalIgnoreCase)) + { + if (di.Exists && (di.Attributes & FileAttributes.ReparsePoint) != 0) + return new ErrorResponse("Refusing to edit a symlinked script path."); + di = di.Parent; + } + } + catch + { + // If checking attributes fails, proceed without the symlink guard + } + if (edits == null || edits.Count == 0) + return new ErrorResponse("No edits provided."); + + string original; + try { original = File.ReadAllText(fullPath); } + catch (Exception ex) { return new ErrorResponse($"Failed to read script: {ex.Message}"); } + + // Require precondition to avoid drift on large files + string currentSha = ComputeSha256(original); + if (string.IsNullOrEmpty(preconditionSha256)) + return new ErrorResponse("precondition_required", new { status = "precondition_required", current_sha256 = currentSha }); + if (!preconditionSha256.Equals(currentSha, StringComparison.OrdinalIgnoreCase)) + return new ErrorResponse("stale_file", new { status = "stale_file", expected_sha256 = preconditionSha256, current_sha256 = currentSha }); + + // Convert edits to absolute index ranges + var spans = new List<(int start, int end, string text)>(); + long totalBytes = 0; + foreach (var e in edits) + { + try + { + int sl = Math.Max(1, e.Value("startLine")); + int sc = Math.Max(1, e.Value("startCol")); + int el = Math.Max(1, e.Value("endLine")); + int ec = Math.Max(1, e.Value("endCol")); + string newText = e.Value("newText") ?? string.Empty; + + if (!TryIndexFromLineCol(original, sl, sc, out int sidx)) + return new ErrorResponse($"apply_text_edits: start out of range (line {sl}, col {sc})"); + if (!TryIndexFromLineCol(original, el, ec, out int eidx)) + return new ErrorResponse($"apply_text_edits: end out of range (line {el}, col {ec})"); + if (eidx < sidx) (sidx, eidx) = (eidx, sidx); + + spans.Add((sidx, eidx, newText)); + checked + { + totalBytes += System.Text.Encoding.UTF8.GetByteCount(newText); + } + } + catch (Exception ex) + { + return new ErrorResponse($"Invalid edit payload: {ex.Message}"); + } + } + + // Header guard: refuse edits that touch before the first 'using ' directive (after optional BOM) to prevent file corruption + int headerBoundary = (original.Length > 0 && original[0] == '\uFEFF') ? 1 : 0; // skip BOM once if present + // Find first top-level using (supports alias, static, and dotted namespaces) + var mUsing = System.Text.RegularExpressions.Regex.Match( + original, + @"(?m)^\s*using\s+(?:static\s+)?(?:[A-Za-z_]\w*\s*=\s*)?[A-Za-z_]\w*(?:\.[A-Za-z_]\w*)*\s*;", + System.Text.RegularExpressions.RegexOptions.CultureInvariant, + TimeSpan.FromSeconds(2) + ); + if (mUsing.Success) + { + headerBoundary = Math.Min(Math.Max(headerBoundary, mUsing.Index), original.Length); + } + foreach (var sp in spans) + { + if (sp.start < headerBoundary) + { + return new ErrorResponse("using_guard", new { status = "using_guard", hint = "Refusing to edit before the first 'using'. Use anchor_insert near a method or a structured edit." }); + } + } + + // Attempt auto-upgrade: if a single edit targets a method header/body, re-route as structured replace_method + if (spans.Count == 1) + { + var sp = spans[0]; + // Heuristic: around the start of the edit, try to match a method header in original + int searchStart = Math.Max(0, sp.start - 200); + int searchEnd = Math.Min(original.Length, sp.start + 200); + string slice = original.Substring(searchStart, searchEnd - searchStart); + var rx = new System.Text.RegularExpressions.Regex(@"(?m)^[\t ]*(?:\[[^\]]+\][\t ]*)*[\t ]*(?:public|private|protected|internal|static|virtual|override|sealed|async|extern|unsafe|new|partial)[\s\S]*?\b([A-Za-z_][A-Za-z0-9_]*)\s*\("); + var mh = rx.Match(slice); + if (mh.Success) + { + string methodName = mh.Groups[1].Value; + // Find class span containing the edit + if (TryComputeClassSpan(original, name, null, out var clsStart, out var clsLen, out _)) + { + if (TryComputeMethodSpan(original, clsStart, clsLen, methodName, null, null, null, out var mStart, out var mLen, out _)) + { + // If the edit overlaps the method span significantly, treat as replace_method + if (sp.start <= mStart + 2 && sp.end >= mStart + 1) + { + var structEdits = new JArray(); + + // Apply the edit to get a candidate string, then recompute method span on the edited text + string candidate = original.Remove(sp.start, sp.end - sp.start).Insert(sp.start, sp.text ?? string.Empty); + string replacementText; + if (TryComputeClassSpan(candidate, name, null, out var cls2Start, out var cls2Len, out _) + && TryComputeMethodSpan(candidate, cls2Start, cls2Len, methodName, null, null, null, out var m2Start, out var m2Len, out _)) + { + replacementText = candidate.Substring(m2Start, m2Len); + } + else + { + // Fallback: adjust method start by the net delta if the edit was before the method + int delta = (sp.text?.Length ?? 0) - (sp.end - sp.start); + int adjustedStart = mStart + (sp.start <= mStart ? delta : 0); + adjustedStart = Math.Max(0, Math.Min(adjustedStart, candidate.Length)); + + // If the edit was within the original method span, adjust the length by the delta within-method + int withinMethodDelta = 0; + if (sp.start >= mStart && sp.start <= mStart + mLen) + { + withinMethodDelta = delta; + } + int adjustedLen = mLen + withinMethodDelta; + adjustedLen = Math.Max(0, Math.Min(candidate.Length - adjustedStart, adjustedLen)); + replacementText = candidate.Substring(adjustedStart, adjustedLen); + } + + var op = new JObject + { + ["mode"] = "replace_method", + ["className"] = name, + ["methodName"] = methodName, + ["replacement"] = replacementText + }; + structEdits.Add(op); + // Reuse structured path + return EditScript(fullPath, relativePath, name, structEdits, new JObject { ["refresh"] = "immediate", ["validate"] = "standard" }); + } + } + } + } + } + + if (totalBytes > MaxEditPayloadBytes) + { + return new ErrorResponse("too_large", new { status = "too_large", limitBytes = MaxEditPayloadBytes, hint = "split into smaller edits" }); + } + + // Ensure non-overlap and apply from back to front + spans = spans.OrderByDescending(t => t.start).ToList(); + for (int i = 1; i < spans.Count; i++) + { + if (spans[i].end > spans[i - 1].start) + { + var conflict = new[] { new { startA = spans[i].start, endA = spans[i].end, startB = spans[i - 1].start, endB = spans[i - 1].end } }; + return new ErrorResponse("overlap", new { status = "overlap", conflicts = conflict, hint = "Sort ranges descending by start and compute from the same snapshot." }); + } + } + + string working = original; + bool relaxed = string.Equals(validateMode, "relaxed", StringComparison.OrdinalIgnoreCase); + bool syntaxOnly = string.Equals(validateMode, "syntax", StringComparison.OrdinalIgnoreCase); + foreach (var sp in spans) + { + string next = working.Remove(sp.start, sp.end - sp.start).Insert(sp.start, sp.text ?? string.Empty); + if (relaxed) + { + // Scoped balance check: validate just around the changed region to avoid false positives + int originalLength = sp.end - sp.start; + int newLength = sp.text?.Length ?? 0; + int endPos = sp.start + newLength; + if (!CheckScopedBalance(next, Math.Max(0, sp.start - 500), Math.Min(next.Length, endPos + 500))) + { + return new ErrorResponse("unbalanced_braces", new { status = "unbalanced_braces", line = 0, expected = "{}()[] (scoped)", hint = "Use standard validation or shrink the edit range." }); + } + } + working = next; + } + + // No-op guard: if resulting text is identical, avoid writes and return explicit no-op + if (string.Equals(working, original, StringComparison.Ordinal)) + { + string noChangeSha = ComputeSha256(original); + return new SuccessResponse( + $"No-op: contents unchanged for '{relativePath}'.", + new + { + uri = $"mcpforunity://path/{relativePath}", + path = relativePath, + editsApplied = 0, + no_op = true, + sha256 = noChangeSha, + evidence = new { reason = "identical_content" } + } + ); + } + + // Always check final structural balance regardless of relaxed mode + if (!CheckBalancedDelimiters(working, out int line, out char expected)) + { + int startLine = Math.Max(1, line - 5); + int endLine = line + 5; + string hint = $"unbalanced_braces at line {line}. Call resources/read for lines {startLine}-{endLine} and resend a smaller apply_text_edits that restores balance."; + return new ErrorResponse(hint, new { status = "unbalanced_braces", line, expected = expected.ToString(), evidenceWindow = new { startLine, endLine } }); + } + +#if USE_ROSLYN + if (!syntaxOnly) + { + var tree = CSharpSyntaxTree.ParseText(working); + var diagnostics = tree.GetDiagnostics().Where(d => d.Severity == DiagnosticSeverity.Error).Take(3) + .Select(d => new { + line = d.Location.GetLineSpan().StartLinePosition.Line + 1, + col = d.Location.GetLineSpan().StartLinePosition.Character + 1, + code = d.Id, + message = d.GetMessage() + }).ToArray(); + if (diagnostics.Length > 0) + { + int firstLine = diagnostics[0].line; + int startLineRos = Math.Max(1, firstLine - 5); + int endLineRos = firstLine + 5; + return new ErrorResponse("syntax_error", new { status = "syntax_error", diagnostics, evidenceWindow = new { startLine = startLineRos, endLine = endLineRos } }); + } + + // Optional formatting + try + { + var root = tree.GetRoot(); + var workspace = new AdhocWorkspace(); + root = Microsoft.CodeAnalysis.Formatting.Formatter.Format(root, workspace); + working = root.ToFullString(); + } + catch { } + } +#endif + + string newSha = ComputeSha256(working); + + // Atomic write and schedule refresh + try + { + var enc = new System.Text.UTF8Encoding(encoderShouldEmitUTF8Identifier: false); + var tmp = fullPath + ".tmp"; + File.WriteAllText(tmp, working, enc); + string backup = fullPath + ".bak"; + try + { + File.Replace(tmp, fullPath, backup); + try { if (File.Exists(backup)) File.Delete(backup); } catch { /* ignore */ } + } + catch (PlatformNotSupportedException) + { + File.Copy(tmp, fullPath, true); + try { File.Delete(tmp); } catch { } + try { if (File.Exists(backup)) File.Delete(backup); } catch { } + } + catch (IOException) + { + File.Copy(tmp, fullPath, true); + try { File.Delete(tmp); } catch { } + try { if (File.Exists(backup)) File.Delete(backup); } catch { } + } + + // Respect refresh mode: immediate vs debounced + bool immediate = string.Equals(refreshModeFromCaller, "immediate", StringComparison.OrdinalIgnoreCase) || + string.Equals(refreshModeFromCaller, "sync", StringComparison.OrdinalIgnoreCase); + if (immediate) + { + McpLog.Info($"[ManageScript] ApplyTextEdits: immediate refresh for '{relativePath}'"); + AssetDatabase.ImportAsset( + relativePath, + ImportAssetOptions.ForceSynchronousImport | ImportAssetOptions.ForceUpdate + ); +#if UNITY_EDITOR + UnityEditor.Compilation.CompilationPipeline.RequestScriptCompilation(); +#endif + } + else + { + McpLog.Info($"[ManageScript] ApplyTextEdits: debounced refresh scheduled for '{relativePath}'"); + ManageScriptRefreshHelpers.ScheduleScriptRefresh(relativePath); + } + + return new SuccessResponse( + $"Applied {spans.Count} text edit(s) to '{relativePath}'.", + new + { + uri = $"mcpforunity://path/{relativePath}", + path = relativePath, + editsApplied = spans.Count, + sha256 = newSha, + scheduledRefresh = !immediate + } + ); + } + catch (Exception ex) + { + return new ErrorResponse($"Failed to write edits: {ex.Message}"); + } + } + + private static bool TryIndexFromLineCol(string text, int line1, int col1, out int index) + { + // 1-based line/col to absolute index (0-based), col positions are counted in code points + int line = 1, col = 1; + for (int i = 0; i <= text.Length; i++) + { + if (line == line1 && col == col1) + { + index = i; + return true; + } + if (i == text.Length) break; + char c = text[i]; + if (c == '\r') + { + // Treat CRLF as a single newline; skip the LF if present + if (i + 1 < text.Length && text[i + 1] == '\n') + i++; + line++; + col = 1; + } + else if (c == '\n') + { + line++; + col = 1; + } + else + { + col++; + } + } + index = -1; + return false; + } + + private static string ComputeSha256(string contents) + { + using (var sha = SHA256.Create()) + { + var bytes = System.Text.Encoding.UTF8.GetBytes(contents); + var hash = sha.ComputeHash(bytes); + return BitConverter.ToString(hash).Replace("-", string.Empty).ToLowerInvariant(); + } + } + + private static bool CheckBalancedDelimiters(string text, out int line, out char expected) + { + var braceStack = new Stack(); + var parenStack = new Stack(); + var bracketStack = new Stack(); + bool inString = false, inChar = false, inSingle = false, inMulti = false, escape = false; + line = 1; expected = '\0'; + + for (int i = 0; i < text.Length; i++) + { + char c = text[i]; + char next = i + 1 < text.Length ? text[i + 1] : '\0'; + + if (c == '\n') { line++; if (inSingle) inSingle = false; } + + if (escape) { escape = false; continue; } + + if (inString) + { + if (c == '\\') { escape = true; } + else if (c == '"') inString = false; + continue; + } + if (inChar) + { + if (c == '\\') { escape = true; } + else if (c == '\'') inChar = false; + continue; + } + if (inSingle) continue; + if (inMulti) + { + if (c == '*' && next == '/') { inMulti = false; i++; } + continue; + } + + if (c == '"') { inString = true; continue; } + if (c == '\'') { inChar = true; continue; } + if (c == '/' && next == '/') { inSingle = true; i++; continue; } + if (c == '/' && next == '*') { inMulti = true; i++; continue; } + + switch (c) + { + case '{': braceStack.Push(line); break; + case '}': + if (braceStack.Count == 0) { expected = '{'; return false; } + braceStack.Pop(); + break; + case '(': parenStack.Push(line); break; + case ')': + if (parenStack.Count == 0) { expected = '('; return false; } + parenStack.Pop(); + break; + case '[': bracketStack.Push(line); break; + case ']': + if (bracketStack.Count == 0) { expected = '['; return false; } + bracketStack.Pop(); + break; + } + } + + if (braceStack.Count > 0) { line = braceStack.Peek(); expected = '}'; return false; } + if (parenStack.Count > 0) { line = parenStack.Peek(); expected = ')'; return false; } + if (bracketStack.Count > 0) { line = bracketStack.Peek(); expected = ']'; return false; } + + return true; + } + + // Lightweight scoped balance: checks delimiters within a substring, ignoring outer context + private static bool CheckScopedBalance(string text, int start, int end) + { + start = Math.Max(0, Math.Min(text.Length, start)); + end = Math.Max(start, Math.Min(text.Length, end)); + int brace = 0, paren = 0, bracket = 0; + bool inStr = false, inChr = false, esc = false; + for (int i = start; i < end; i++) + { + char c = text[i]; + char n = (i + 1 < end) ? text[i + 1] : '\0'; + if (inStr) + { + if (!esc && c == '"') inStr = false; esc = (!esc && c == '\\'); continue; + } + if (inChr) + { + if (!esc && c == '\'') inChr = false; esc = (!esc && c == '\\'); continue; + } + if (c == '"') { inStr = true; esc = false; continue; } + if (c == '\'') { inChr = true; esc = false; continue; } + if (c == '/' && n == '/') { while (i < end && text[i] != '\n') i++; continue; } + if (c == '/' && n == '*') { i += 2; while (i + 1 < end && !(text[i] == '*' && text[i + 1] == '/')) i++; i++; continue; } + if (c == '{') brace++; + else if (c == '}') brace--; + else if (c == '(') paren++; + else if (c == ')') paren--; + else if (c == '[') bracket++; else if (c == ']') bracket--; + // Allow temporary negative balance - will check tolerance at end + } + return brace >= -3 && paren >= -3 && bracket >= -3; // tolerate more context from outside region + } + + private static object DeleteScript(string fullPath, string relativePath) + { + if (!File.Exists(fullPath)) + { + return new ErrorResponse($"Script not found at '{relativePath}'. Cannot delete."); + } + + try + { + // Use AssetDatabase.MoveAssetToTrash for safer deletion (allows undo) + bool deleted = AssetDatabase.MoveAssetToTrash(relativePath); + if (deleted) + { + AssetDatabase.Refresh(ImportAssetOptions.ForceSynchronousImport); + return new SuccessResponse( + $"Script '{Path.GetFileName(relativePath)}' moved to trash successfully.", + new { deleted = true } + ); + } + else + { + // Fallback or error if MoveAssetToTrash fails + return new ErrorResponse( + $"Failed to move script '{relativePath}' to trash. It might be locked or in use." + ); + } + } + catch (Exception e) + { + return new ErrorResponse($"Error deleting script '{relativePath}': {e.Message}"); + } + } + + /// + /// Structured edits (AST-backed where available) on existing scripts. + /// Supports class-level replace/delete with Roslyn span computation if USE_ROSLYN is defined, + /// otherwise falls back to a conservative balanced-brace scan. + /// + private static object EditScript( + string fullPath, + string relativePath, + string name, + JArray edits, + JObject options) + { + if (!File.Exists(fullPath)) + return new ErrorResponse($"Script not found at '{relativePath}'."); + // Refuse edits if the target is a symlink + try + { + var attrs = File.GetAttributes(fullPath); + if ((attrs & FileAttributes.ReparsePoint) != 0) + return new ErrorResponse("Refusing to edit a symlinked script path."); + } + catch + { + // ignore failures checking attributes and proceed + } + if (edits == null || edits.Count == 0) + return new ErrorResponse("No edits provided."); + + string original; + try { original = File.ReadAllText(fullPath); } + catch (Exception ex) { return new ErrorResponse($"Failed to read script: {ex.Message}"); } + + string working = original; + + try + { + var replacements = new List<(int start, int length, string text)>(); + int appliedCount = 0; + + // Apply mode: atomic (default) computes all spans against original and applies together. + // Sequential applies each edit immediately to the current working text (useful for dependent edits). + string applyMode = options?["applyMode"]?.ToString()?.ToLowerInvariant(); + bool applySequentially = applyMode == "sequential"; + + foreach (var e in edits) + { + var op = (JObject)e; + var mode = (op.Value("mode") ?? op.Value("op") ?? string.Empty).ToLowerInvariant(); + + switch (mode) + { + case "replace_class": + { + string className = op.Value("className"); + string ns = op.Value("namespace"); + string replacement = ExtractReplacement(op); + + if (string.IsNullOrWhiteSpace(className)) + return new ErrorResponse("replace_class requires 'className'."); + if (replacement == null) + return new ErrorResponse("replace_class requires 'replacement' (inline or base64)."); + + if (!TryComputeClassSpan(working, className, ns, out var spanStart, out var spanLength, out var why)) + return new ErrorResponse($"replace_class failed: {why}"); + + if (!ValidateClassSnippet(replacement, className, out var vErr)) + return new ErrorResponse($"Replacement snippet invalid: {vErr}"); + + if (applySequentially) + { + working = working.Remove(spanStart, spanLength).Insert(spanStart, NormalizeNewlines(replacement)); + appliedCount++; + } + else + { + replacements.Add((spanStart, spanLength, NormalizeNewlines(replacement))); + } + break; + } + + case "delete_class": + { + string className = op.Value("className"); + string ns = op.Value("namespace"); + if (string.IsNullOrWhiteSpace(className)) + return new ErrorResponse("delete_class requires 'className'."); + + if (!TryComputeClassSpan(working, className, ns, out var s, out var l, out var why)) + return new ErrorResponse($"delete_class failed: {why}"); + + if (applySequentially) + { + working = working.Remove(s, l); + appliedCount++; + } + else + { + replacements.Add((s, l, string.Empty)); + } + break; + } + + case "replace_method": + { + string className = op.Value("className"); + string ns = op.Value("namespace"); + string methodName = op.Value("methodName"); + string replacement = ExtractReplacement(op); + string returnType = op.Value("returnType"); + string parametersSignature = op.Value("parametersSignature"); + string attributesContains = op.Value("attributesContains"); + + if (string.IsNullOrWhiteSpace(className)) return new ErrorResponse("replace_method requires 'className'."); + if (string.IsNullOrWhiteSpace(methodName)) return new ErrorResponse("replace_method requires 'methodName'."); + if (replacement == null) return new ErrorResponse("replace_method requires 'replacement' (inline or base64)."); + + if (!TryComputeClassSpan(working, className, ns, out var clsStart, out var clsLen, out var whyClass)) + return new ErrorResponse($"replace_method failed to locate class: {whyClass}"); + + if (!TryComputeMethodSpan(working, clsStart, clsLen, methodName, returnType, parametersSignature, attributesContains, out var mStart, out var mLen, out var whyMethod)) + { + bool hasDependentInsert = edits.Any(j => j is JObject jo && + string.Equals(jo.Value("className"), className, StringComparison.Ordinal) && + string.Equals(jo.Value("methodName"), methodName, StringComparison.Ordinal) && + ((jo.Value("mode") ?? jo.Value("op") ?? string.Empty).ToLowerInvariant() == "insert_method")); + string hint = hasDependentInsert && !applySequentially ? " Hint: This batch inserts this method. Use options.applyMode='sequential' or split into separate calls." : string.Empty; + return new ErrorResponse($"replace_method failed: {whyMethod}.{hint}"); + } + + if (applySequentially) + { + working = working.Remove(mStart, mLen).Insert(mStart, NormalizeNewlines(replacement)); + appliedCount++; + } + else + { + replacements.Add((mStart, mLen, NormalizeNewlines(replacement))); + } + break; + } + + case "delete_method": + { + string className = op.Value("className"); + string ns = op.Value("namespace"); + string methodName = op.Value("methodName"); + string returnType = op.Value("returnType"); + string parametersSignature = op.Value("parametersSignature"); + string attributesContains = op.Value("attributesContains"); + + if (string.IsNullOrWhiteSpace(className)) return new ErrorResponse("delete_method requires 'className'."); + if (string.IsNullOrWhiteSpace(methodName)) return new ErrorResponse("delete_method requires 'methodName'."); + + if (!TryComputeClassSpan(working, className, ns, out var clsStart, out var clsLen, out var whyClass)) + return new ErrorResponse($"delete_method failed to locate class: {whyClass}"); + + if (!TryComputeMethodSpan(working, clsStart, clsLen, methodName, returnType, parametersSignature, attributesContains, out var mStart, out var mLen, out var whyMethod)) + { + bool hasDependentInsert = edits.Any(j => j is JObject jo && + string.Equals(jo.Value("className"), className, StringComparison.Ordinal) && + string.Equals(jo.Value("methodName"), methodName, StringComparison.Ordinal) && + ((jo.Value("mode") ?? jo.Value("op") ?? string.Empty).ToLowerInvariant() == "insert_method")); + string hint = hasDependentInsert && !applySequentially ? " Hint: This batch inserts this method. Use options.applyMode='sequential' or split into separate calls." : string.Empty; + return new ErrorResponse($"delete_method failed: {whyMethod}.{hint}"); + } + + if (applySequentially) + { + working = working.Remove(mStart, mLen); + appliedCount++; + } + else + { + replacements.Add((mStart, mLen, string.Empty)); + } + break; + } + + case "insert_method": + { + string className = op.Value("className"); + string ns = op.Value("namespace"); + string position = (op.Value("position") ?? "end").ToLowerInvariant(); + string afterMethodName = op.Value("afterMethodName"); + string afterReturnType = op.Value("afterReturnType"); + string afterParameters = op.Value("afterParametersSignature"); + string afterAttributesContains = op.Value("afterAttributesContains"); + string snippet = ExtractReplacement(op); + // Harden: refuse empty replacement for inserts + if (snippet == null || snippet.Trim().Length == 0) + return new ErrorResponse("insert_method requires a non-empty 'replacement' text."); + + if (string.IsNullOrWhiteSpace(className)) return new ErrorResponse("insert_method requires 'className'."); + if (snippet == null) return new ErrorResponse("insert_method requires 'replacement' (inline or base64) containing a full method declaration."); + + if (!TryComputeClassSpan(working, className, ns, out var clsStart, out var clsLen, out var whyClass)) + return new ErrorResponse($"insert_method failed to locate class: {whyClass}"); + + if (position == "after") + { + if (string.IsNullOrEmpty(afterMethodName)) return new ErrorResponse("insert_method with position='after' requires 'afterMethodName'."); + if (!TryComputeMethodSpan(working, clsStart, clsLen, afterMethodName, afterReturnType, afterParameters, afterAttributesContains, out var aStart, out var aLen, out var whyAfter)) + return new ErrorResponse($"insert_method(after) failed to locate anchor method: {whyAfter}"); + int insAt = aStart + aLen; + string text = NormalizeNewlines("\n\n" + snippet.TrimEnd() + "\n"); + if (applySequentially) + { + working = working.Insert(insAt, text); + appliedCount++; + } + else + { + replacements.Add((insAt, 0, text)); + } + } + else if (!TryFindClassInsertionPoint(working, clsStart, clsLen, position, out var insAt, out var whyIns)) + return new ErrorResponse($"insert_method failed: {whyIns}"); + else + { + string text = NormalizeNewlines("\n\n" + snippet.TrimEnd() + "\n"); + if (applySequentially) + { + working = working.Insert(insAt, text); + appliedCount++; + } + else + { + replacements.Add((insAt, 0, text)); + } + } + break; + } + + case "anchor_insert": + { + string anchor = op.Value("anchor"); + string position = (op.Value("position") ?? "before").ToLowerInvariant(); + string text = op.Value("text") ?? ExtractReplacement(op); + if (string.IsNullOrWhiteSpace(anchor)) return new ErrorResponse("anchor_insert requires 'anchor' (regex)."); + if (string.IsNullOrEmpty(text)) return new ErrorResponse("anchor_insert requires non-empty 'text'."); + + try + { + var rx = new Regex(anchor, RegexOptions.Multiline, TimeSpan.FromSeconds(2)); + var m = rx.Match(working); + if (!m.Success) return new ErrorResponse($"anchor_insert: anchor not found: {anchor}"); + int insAt = position == "after" ? m.Index + m.Length : m.Index; + string norm = NormalizeNewlines(text); + if (!norm.EndsWith("\n")) + { + norm += "\n"; + } + + // Duplicate guard: if identical snippet already exists within this class, skip insert + if (TryComputeClassSpan(working, name, null, out var clsStartDG, out var clsLenDG, out _)) + { + string classSlice = working.Substring(clsStartDG, Math.Min(clsLenDG, working.Length - clsStartDG)); + if (classSlice.IndexOf(norm, StringComparison.Ordinal) >= 0) + { + // Do not insert duplicate; treat as no-op + break; + } + } + if (applySequentially) + { + working = working.Insert(insAt, norm); + appliedCount++; + } + else + { + replacements.Add((insAt, 0, norm)); + } + } + catch (Exception ex) + { + return new ErrorResponse($"anchor_insert failed: {ex.Message}"); + } + break; + } + + case "anchor_delete": + { + string anchor = op.Value("anchor"); + if (string.IsNullOrWhiteSpace(anchor)) return new ErrorResponse("anchor_delete requires 'anchor' (regex)."); + try + { + var rx = new Regex(anchor, RegexOptions.Multiline, TimeSpan.FromSeconds(2)); + var m = rx.Match(working); + if (!m.Success) return new ErrorResponse($"anchor_delete: anchor not found: {anchor}"); + int delAt = m.Index; + int delLen = m.Length; + if (applySequentially) + { + working = working.Remove(delAt, delLen); + appliedCount++; + } + else + { + replacements.Add((delAt, delLen, string.Empty)); + } + } + catch (Exception ex) + { + return new ErrorResponse($"anchor_delete failed: {ex.Message}"); + } + break; + } + + case "anchor_replace": + { + string anchor = op.Value("anchor"); + string replacement = op.Value("text") ?? op.Value("replacement") ?? ExtractReplacement(op) ?? string.Empty; + if (string.IsNullOrWhiteSpace(anchor)) return new ErrorResponse("anchor_replace requires 'anchor' (regex)."); + try + { + var rx = new Regex(anchor, RegexOptions.Multiline, TimeSpan.FromSeconds(2)); + var m = rx.Match(working); + if (!m.Success) return new ErrorResponse($"anchor_replace: anchor not found: {anchor}"); + int at = m.Index; + int len = m.Length; + string norm = NormalizeNewlines(replacement); + if (applySequentially) + { + working = working.Remove(at, len).Insert(at, norm); + appliedCount++; + } + else + { + replacements.Add((at, len, norm)); + } + } + catch (Exception ex) + { + return new ErrorResponse($"anchor_replace failed: {ex.Message}"); + } + break; + } + + default: + return new ErrorResponse($"Unknown edit mode: '{mode}'. Allowed: replace_class, delete_class, replace_method, delete_method, insert_method, anchor_insert, anchor_delete, anchor_replace."); + } + } + + if (!applySequentially) + { + if (HasOverlaps(replacements)) + { + var ordered = replacements.OrderByDescending(r => r.start).ToList(); + for (int i = 1; i < ordered.Count; i++) + { + if (ordered[i].start + ordered[i].length > ordered[i - 1].start) + { + var conflict = new[] { new { startA = ordered[i].start, endA = ordered[i].start + ordered[i].length, startB = ordered[i - 1].start, endB = ordered[i - 1].start + ordered[i - 1].length } }; + return new ErrorResponse("overlap", new { status = "overlap", conflicts = conflict, hint = "Sort ranges descending by start and compute from the same snapshot." }); + } + } + return new ErrorResponse("overlap", new { status = "overlap" }); + } + + foreach (var r in replacements.OrderByDescending(r => r.start)) + working = working.Remove(r.start, r.length).Insert(r.start, r.text); + appliedCount = replacements.Count; + } + + // Guard against structural imbalance before validation + if (!CheckBalancedDelimiters(working, out int lineBal, out char expectedBal)) + return new ErrorResponse("unbalanced_braces", new { status = "unbalanced_braces", line = lineBal, expected = expectedBal.ToString() }); + + // No-op guard for structured edits: if text unchanged, return explicit no-op + if (string.Equals(working, original, StringComparison.Ordinal)) + { + var sameSha = ComputeSha256(original); + return new SuccessResponse( + $"No-op: contents unchanged for '{relativePath}'.", + new + { + path = relativePath, + uri = $"mcpforunity://path/{relativePath}", + editsApplied = 0, + no_op = true, + sha256 = sameSha, + evidence = new { reason = "identical_content" } + } + ); + } + + // Validate result using override from options if provided; otherwise GUI strictness + var level = GetValidationLevelFromGUI(); + try + { + var validateOpt = options?["validate"]?.ToString()?.ToLowerInvariant(); + if (!string.IsNullOrEmpty(validateOpt)) + { + level = validateOpt switch + { + "basic" => ValidationLevel.Basic, + "standard" => ValidationLevel.Standard, + "comprehensive" => ValidationLevel.Comprehensive, + "strict" => ValidationLevel.Strict, + _ => level + }; + } + } + catch { /* ignore option parsing issues */ } + if (!ValidateScriptSyntax(working, level, out var errors)) + return new ErrorResponse("validation_failed", new { status = "validation_failed", diagnostics = errors ?? Array.Empty() }); + else if (errors != null && errors.Length > 0) + McpLog.Warn($"Script validation warnings for {name}:\n" + string.Join("\n", errors)); + + // Atomic write with backup; schedule refresh + // Decide refresh behavior + string refreshMode = options?["refresh"]?.ToString()?.ToLowerInvariant(); + bool immediate = refreshMode == "immediate" || refreshMode == "sync"; + + // Persist changes atomically (no BOM), then compute/return new file SHA + var enc = new System.Text.UTF8Encoding(encoderShouldEmitUTF8Identifier: false); + var tmp = fullPath + ".tmp"; + File.WriteAllText(tmp, working, enc); + var backup = fullPath + ".bak"; + try + { + File.Replace(tmp, fullPath, backup); + try { if (File.Exists(backup)) File.Delete(backup); } catch { } + } + catch (PlatformNotSupportedException) + { + File.Copy(tmp, fullPath, true); + try { File.Delete(tmp); } catch { } + try { if (File.Exists(backup)) File.Delete(backup); } catch { } + } + catch (IOException) + { + File.Copy(tmp, fullPath, true); + try { File.Delete(tmp); } catch { } + try { if (File.Exists(backup)) File.Delete(backup); } catch { } + } + + var newSha = ComputeSha256(working); + var ok = new SuccessResponse( + $"Applied {appliedCount} structured edit(s) to '{relativePath}'.", + new + { + path = relativePath, + uri = $"mcpforunity://path/{relativePath}", + editsApplied = appliedCount, + scheduledRefresh = !immediate, + sha256 = newSha + } + ); + + if (immediate) + { + McpLog.Info($"[ManageScript] EditScript: immediate refresh for '{relativePath}'", always: false); + ManageScriptRefreshHelpers.ImportAndRequestCompile(relativePath); + } + else + { + ManageScriptRefreshHelpers.ScheduleScriptRefresh(relativePath); + } + return ok; + } + catch (Exception ex) + { + return new ErrorResponse($"Edit failed: {ex.Message}"); + } + } + + private static bool HasOverlaps(IEnumerable<(int start, int length, string text)> list) + { + var arr = list.OrderBy(x => x.start).ToArray(); + for (int i = 1; i < arr.Length; i++) + { + if (arr[i - 1].start + arr[i - 1].length > arr[i].start) + return true; + } + return false; + } + + private static string ExtractReplacement(JObject op) + { + var inline = op.Value("replacement"); + if (!string.IsNullOrEmpty(inline)) return inline; + + var b64 = op.Value("replacementBase64"); + if (!string.IsNullOrEmpty(b64)) + { + try { return System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(b64)); } + catch { return null; } + } + return null; + } + + private static string NormalizeNewlines(string t) + { + if (string.IsNullOrEmpty(t)) return t; + return t.Replace("\r\n", "\n").Replace("\r", "\n"); + } + + private static bool ValidateClassSnippet(string snippet, string expectedName, out string err) + { +#if USE_ROSLYN + try + { + var tree = CSharpSyntaxTree.ParseText(snippet); + var root = tree.GetRoot(); + var classes = root.DescendantNodes().OfType().ToList(); + if (classes.Count != 1) { err = "snippet must contain exactly one class declaration"; return false; } + // Optional: enforce expected name + // if (classes[0].Identifier.ValueText != expectedName) { err = $"snippet declares '{classes[0].Identifier.ValueText}', expected '{expectedName}'"; return false; } + err = null; return true; + } + catch (Exception ex) { err = ex.Message; return false; } +#else + if (string.IsNullOrWhiteSpace(snippet) || !snippet.Contains("class ")) { err = "no 'class' keyword found in snippet"; return false; } + err = null; return true; +#endif + } + + private static bool TryComputeClassSpan(string source, string className, string ns, out int start, out int length, out string why) + { +#if USE_ROSLYN + try + { + var tree = CSharpSyntaxTree.ParseText(source); + var root = tree.GetRoot(); + var classes = root.DescendantNodes() + .OfType() + .Where(c => c.Identifier.ValueText == className); + + if (!string.IsNullOrEmpty(ns)) + { + classes = classes.Where(c => + (c.FirstAncestorOrSelf()?.Name?.ToString() ?? "") == ns + || (c.FirstAncestorOrSelf()?.Name?.ToString() ?? "") == ns); + } + + var list = classes.ToList(); + if (list.Count == 0) { start = length = 0; why = $"class '{className}' not found" + (ns != null ? $" in namespace '{ns}'" : ""); return false; } + if (list.Count > 1) { start = length = 0; why = $"class '{className}' matched {list.Count} declarations (partial/nested?). Disambiguate."; return false; } + + var cls = list[0]; + var span = cls.FullSpan; // includes attributes & leading trivia + start = span.Start; length = span.Length; why = null; return true; + } + catch + { + // fall back below + } +#endif + return TryComputeClassSpanBalanced(source, className, ns, out start, out length, out why); + } + + private static bool TryComputeClassSpanBalanced(string source, string className, string ns, out int start, out int length, out string why) + { + start = length = 0; why = null; + var idx = IndexOfClassToken(source, className); + if (idx < 0) { why = $"class '{className}' not found (balanced scan)"; return false; } + + if (!string.IsNullOrEmpty(ns) && !AppearsWithinNamespaceHeader(source, idx, ns)) + { why = $"class '{className}' not under namespace '{ns}' (balanced scan)"; return false; } + + // Include modifiers/attributes on the same line: back up to the start of line + int lineStart = idx; + while (lineStart > 0 && source[lineStart - 1] != '\n' && source[lineStart - 1] != '\r') lineStart--; + + int i = idx; + while (i < source.Length && source[i] != '{') i++; + if (i >= source.Length) { why = "no opening brace after class header"; return false; } + + int depth = 0; bool inStr = false, inChar = false, inSL = false, inML = false, esc = false; + int startSpan = lineStart; + for (; i < source.Length; i++) + { + char c = source[i]; + char n = i + 1 < source.Length ? source[i + 1] : '\0'; + + if (inSL) { if (c == '\n') inSL = false; continue; } + if (inML) { if (c == '*' && n == '/') { inML = false; i++; } continue; } + if (inStr) { if (!esc && c == '"') inStr = false; esc = (!esc && c == '\\'); continue; } + if (inChar) { if (!esc && c == '\'') inChar = false; esc = (!esc && c == '\\'); continue; } + + if (c == '/' && n == '/') { inSL = true; i++; continue; } + if (c == '/' && n == '*') { inML = true; i++; continue; } + if (c == '"') { inStr = true; continue; } + if (c == '\'') { inChar = true; continue; } + + if (c == '{') { depth++; } + else if (c == '}') + { + depth--; + if (depth == 0) { start = startSpan; length = (i - startSpan) + 1; return true; } + if (depth < 0) { why = "brace underflow"; return false; } + } + } + why = "unterminated class block"; return false; + } + + private static bool TryComputeMethodSpan( + string source, + int classStart, + int classLength, + string methodName, + string returnType, + string parametersSignature, + string attributesContains, + out int start, + out int length, + out string why) + { + start = length = 0; why = null; + int searchStart = classStart; + int searchEnd = Math.Min(source.Length, classStart + classLength); + + // 1) Find the method header using a stricter regex (allows optional attributes above) + string rtPattern = string.IsNullOrEmpty(returnType) ? @"[^\s]+" : Regex.Escape(returnType).Replace("\\ ", "\\s+"); + string namePattern = Regex.Escape(methodName); + // If a parametersSignature is provided, it may include surrounding parentheses. Strip them so + // we can safely embed the signature inside our own parenthesis group without duplicating. + string paramsPattern; + if (string.IsNullOrEmpty(parametersSignature)) + { + paramsPattern = @"[\s\S]*?"; // permissive when not specified + } + else + { + string ps = parametersSignature.Trim(); + if (ps.StartsWith("(") && ps.EndsWith(")") && ps.Length >= 2) + { + ps = ps.Substring(1, ps.Length - 2); + } + // Escape literal text of the signature + paramsPattern = Regex.Escape(ps); + } + string pattern = + @"(?m)^[\t ]*(?:\[[^\]]+\][\t ]*)*[\t ]*" + + @"(?:(?:public|private|protected|internal|static|virtual|override|sealed|async|extern|unsafe|new|partial|readonly|volatile|event|abstract|ref|in|out)\s+)*" + + rtPattern + @"[\t ]+" + namePattern + @"\s*(?:<[^>]+>)?\s*\(" + paramsPattern + @"\)"; + + string slice = source.Substring(searchStart, searchEnd - searchStart); + var headerMatch = Regex.Match(slice, pattern, RegexOptions.Multiline, TimeSpan.FromSeconds(2)); + if (!headerMatch.Success) + { + why = $"method '{methodName}' header not found in class"; return false; + } + int headerIndex = searchStart + headerMatch.Index; + + // Optional attributes filter: look upward from headerIndex for contiguous attribute lines + if (!string.IsNullOrEmpty(attributesContains)) + { + int attrScanStart = headerIndex; + while (attrScanStart > searchStart) + { + int prevNl = source.LastIndexOf('\n', attrScanStart - 1); + if (prevNl < 0 || prevNl < searchStart) break; + string prevLine = source.Substring(prevNl + 1, attrScanStart - (prevNl + 1)); + if (prevLine.TrimStart().StartsWith("[")) { attrScanStart = prevNl; continue; } + break; + } + string attrBlock = source.Substring(attrScanStart, headerIndex - attrScanStart); + if (attrBlock.IndexOf(attributesContains, StringComparison.Ordinal) < 0) + { + why = $"method '{methodName}' found but attributes filter did not match"; return false; + } + } + + // backtrack to the very start of header/attributes to include in span + int lineStart = headerIndex; + while (lineStart > searchStart && source[lineStart - 1] != '\n' && source[lineStart - 1] != '\r') lineStart--; + // If previous lines are attributes, include them + int attrStart = lineStart; + int probe = lineStart - 1; + while (probe > searchStart) + { + int prevNl = source.LastIndexOf('\n', probe); + if (prevNl < 0 || prevNl < searchStart) break; + string prev = source.Substring(prevNl + 1, attrStart - (prevNl + 1)); + if (prev.TrimStart().StartsWith("[")) { attrStart = prevNl + 1; probe = prevNl - 1; } + else break; + } + + // 2) Walk from the end of signature to detect body style ('{' or '=> ...;') and compute end + // Find the '(' that belongs to the method signature, not attributes + int nameTokenIdx = IndexOfTokenWithin(source, methodName, headerIndex, searchEnd); + if (nameTokenIdx < 0) { why = $"method '{methodName}' token not found after header"; return false; } + int sigOpenParen = IndexOfTokenWithin(source, "(", nameTokenIdx, searchEnd); + if (sigOpenParen < 0) { why = "method parameter list '(' not found"; return false; } + + int i = sigOpenParen; + int parenDepth = 0; bool inStr = false, inChar = false, inSL = false, inML = false, esc = false; + for (; i < searchEnd; i++) + { + char c = source[i]; + char n = i + 1 < searchEnd ? source[i + 1] : '\0'; + if (inSL) { if (c == '\n') inSL = false; continue; } + if (inML) { if (c == '*' && n == '/') { inML = false; i++; } continue; } + if (inStr) { if (!esc && c == '"') inStr = false; esc = (!esc && c == '\\'); continue; } + if (inChar) { if (!esc && c == '\'') inChar = false; esc = (!esc && c == '\\'); continue; } + + if (c == '/' && n == '/') { inSL = true; i++; continue; } + if (c == '/' && n == '*') { inML = true; i++; continue; } + if (c == '"') { inStr = true; continue; } + if (c == '\'') { inChar = true; continue; } + + if (c == '(') parenDepth++; + if (c == ')') { parenDepth--; if (parenDepth == 0) { i++; break; } } + } + + // After params: detect expression-bodied or block-bodied + // Skip whitespace/comments + for (; i < searchEnd; i++) + { + char c = source[i]; + char n = i + 1 < searchEnd ? source[i + 1] : '\0'; + if (char.IsWhiteSpace(c)) continue; + if (c == '/' && n == '/') { while (i < searchEnd && source[i] != '\n') i++; continue; } + if (c == '/' && n == '*') { i += 2; while (i + 1 < searchEnd && !(source[i] == '*' && source[i + 1] == '/')) i++; i++; continue; } + break; + } + + // Tolerate generic constraints between params and body: multiple 'where T : ...' + for (; ; ) + { + // Skip whitespace/comments before checking for 'where' + for (; i < searchEnd; i++) + { + char c = source[i]; + char n = i + 1 < searchEnd ? source[i + 1] : '\0'; + if (char.IsWhiteSpace(c)) continue; + if (c == '/' && n == '/') { while (i < searchEnd && source[i] != '\n') i++; continue; } + if (c == '/' && n == '*') { i += 2; while (i + 1 < searchEnd && !(source[i] == '*' && source[i + 1] == '/')) i++; i++; continue; } + break; + } + + // Check word-boundary 'where' + bool hasWhere = false; + if (i + 5 <= searchEnd) + { + hasWhere = source[i] == 'w' && source[i + 1] == 'h' && source[i + 2] == 'e' && source[i + 3] == 'r' && source[i + 4] == 'e'; + if (hasWhere) + { + // Left boundary + if (i - 1 >= 0) + { + char lb = source[i - 1]; + if (char.IsLetterOrDigit(lb) || lb == '_') hasWhere = false; + } + // Right boundary + if (hasWhere && i + 5 < searchEnd) + { + char rb = source[i + 5]; + if (char.IsLetterOrDigit(rb) || rb == '_') hasWhere = false; + } + } + } + if (!hasWhere) break; + + // Advance past the entire where-constraint clause until we hit '{' or '=>' or ';' + i += 5; // past 'where' + while (i < searchEnd) + { + char c = source[i]; + char n = i + 1 < searchEnd ? source[i + 1] : '\0'; + if (c == '{' || c == ';' || (c == '=' && n == '>')) break; + // Skip comments inline + if (c == '/' && n == '/') { while (i < searchEnd && source[i] != '\n') i++; continue; } + if (c == '/' && n == '*') { i += 2; while (i + 1 < searchEnd && !(source[i] == '*' && source[i + 1] == '/')) i++; i++; continue; } + i++; + } + } + + // Re-check for expression-bodied after constraints + if (i < searchEnd - 1 && source[i] == '=' && source[i + 1] == '>') + { + // expression-bodied method: seek to terminating semicolon + int j = i; + bool done = false; + while (j < searchEnd) + { + char c = source[j]; + if (c == ';') { done = true; break; } + j++; + } + if (!done) { why = "unterminated expression-bodied method"; return false; } + start = attrStart; length = (j - attrStart) + 1; return true; + } + + if (i >= searchEnd || source[i] != '{') { why = "no opening brace after method signature"; return false; } + + int depth = 0; inStr = false; inChar = false; inSL = false; inML = false; esc = false; + int startSpan = attrStart; + for (; i < searchEnd; i++) + { + char c = source[i]; + char n = i + 1 < searchEnd ? source[i + 1] : '\0'; + if (inSL) { if (c == '\n') inSL = false; continue; } + if (inML) { if (c == '*' && n == '/') { inML = false; i++; } continue; } + if (inStr) { if (!esc && c == '"') inStr = false; esc = (!esc && c == '\\'); continue; } + if (inChar) { if (!esc && c == '\'') inChar = false; esc = (!esc && c == '\\'); continue; } + + if (c == '/' && n == '/') { inSL = true; i++; continue; } + if (c == '/' && n == '*') { inML = true; i++; continue; } + if (c == '"') { inStr = true; continue; } + if (c == '\'') { inChar = true; continue; } + + if (c == '{') depth++; + else if (c == '}') + { + depth--; + if (depth == 0) { start = startSpan; length = (i - startSpan) + 1; return true; } + if (depth < 0) { why = "brace underflow in method"; return false; } + } + } + why = "unterminated method block"; return false; + } + + private static int IndexOfTokenWithin(string s, string token, int start, int end) + { + int idx = s.IndexOf(token, start, StringComparison.Ordinal); + return (idx >= 0 && idx < end) ? idx : -1; + } + + private static bool TryFindClassInsertionPoint(string source, int classStart, int classLength, string position, out int insertAt, out string why) + { + insertAt = 0; why = null; + int searchStart = classStart; + int searchEnd = Math.Min(source.Length, classStart + classLength); + + if (position == "start") + { + // find first '{' after class header, insert just after with a newline + int i = IndexOfTokenWithin(source, "{", searchStart, searchEnd); + if (i < 0) { why = "could not find class opening brace"; return false; } + insertAt = i + 1; return true; + } + else // end + { + // walk to matching closing brace of class and insert just before it + int i = IndexOfTokenWithin(source, "{", searchStart, searchEnd); + if (i < 0) { why = "could not find class opening brace"; return false; } + int depth = 0; bool inStr = false, inChar = false, inSL = false, inML = false, esc = false; + for (; i < searchEnd; i++) + { + char c = source[i]; + char n = i + 1 < searchEnd ? source[i + 1] : '\0'; + if (inSL) { if (c == '\n') inSL = false; continue; } + if (inML) { if (c == '*' && n == '/') { inML = false; i++; } continue; } + if (inStr) { if (!esc && c == '"') inStr = false; esc = (!esc && c == '\\'); continue; } + if (inChar) { if (!esc && c == '\'') inChar = false; esc = (!esc && c == '\\'); continue; } + + if (c == '/' && n == '/') { inSL = true; i++; continue; } + if (c == '/' && n == '*') { inML = true; i++; continue; } + if (c == '"') { inStr = true; continue; } + if (c == '\'') { inChar = true; continue; } + + if (c == '{') depth++; + else if (c == '}') + { + depth--; + if (depth == 0) { insertAt = i; return true; } + if (depth < 0) { why = "brace underflow while scanning class"; return false; } + } + } + why = "could not find class closing brace"; return false; + } + } + + private static int IndexOfClassToken(string s, string className) + { + // simple token search; could be tightened with Regex for word boundaries + var pattern = "class " + className; + return s.IndexOf(pattern, StringComparison.Ordinal); + } + + private static bool AppearsWithinNamespaceHeader(string s, int pos, string ns) + { + int from = Math.Max(0, pos - 2000); + var slice = s.Substring(from, pos - from); + return slice.Contains("namespace " + ns); + } + + /// + /// Generates basic C# script content based on name and type. + /// + private static string GenerateDefaultScriptContent( + string name, + string scriptType, + string namespaceName + ) + { + string usingStatements = "using UnityEngine;\nusing System.Collections;\n"; + string classDeclaration; + string body = + "\n // Use this for initialization\n void Start() {\n\n }\n\n // Update is called once per frame\n void Update() {\n\n }\n"; + + string baseClass = ""; + if (!string.IsNullOrEmpty(scriptType)) + { + if (scriptType.Equals("MonoBehaviour", StringComparison.OrdinalIgnoreCase)) + baseClass = " : MonoBehaviour"; + else if (scriptType.Equals("ScriptableObject", StringComparison.OrdinalIgnoreCase)) + { + baseClass = " : ScriptableObject"; + body = ""; // ScriptableObjects don't usually need Start/Update + } + else if ( + scriptType.Equals("Editor", StringComparison.OrdinalIgnoreCase) + || scriptType.Equals("EditorWindow", StringComparison.OrdinalIgnoreCase) + ) + { + usingStatements += "using UnityEditor;\n"; + if (scriptType.Equals("Editor", StringComparison.OrdinalIgnoreCase)) + baseClass = " : Editor"; + else + baseClass = " : EditorWindow"; + body = ""; // Editor scripts have different structures + } + // Add more types as needed + } + + classDeclaration = $"public class {name}{baseClass}"; + + string fullContent = $"{usingStatements}\n"; + bool useNamespace = !string.IsNullOrEmpty(namespaceName); + + if (useNamespace) + { + fullContent += $"namespace {namespaceName}\n{{\n"; + // Indent class and body if using namespace + classDeclaration = " " + classDeclaration; + body = string.Join("\n", body.Split('\n').Select(line => " " + line)); + } + + fullContent += $"{classDeclaration}\n{{\n{body}\n}}"; + + if (useNamespace) + { + fullContent += "\n}"; // Close namespace + } + + return fullContent.Trim() + "\n"; // Ensure a trailing newline + } + + /// + /// Gets the validation level from the GUI settings + /// + private static ValidationLevel GetValidationLevelFromGUI() + { + int savedLevel = EditorPrefs.GetInt(EditorPrefKeys.ValidationLevel, (int)ValidationLevel.Standard); + return (ValidationLevel)Mathf.Clamp(savedLevel, 0, 3); + } + + /// + /// Validates C# script syntax using multiple validation layers. + /// + private static bool ValidateScriptSyntax(string contents) + { + return ValidateScriptSyntax(contents, ValidationLevel.Standard, out _); + } + + /// + /// Advanced syntax validation with detailed diagnostics and configurable strictness. + /// + private static bool ValidateScriptSyntax(string contents, ValidationLevel level, out string[] errors) + { + var errorList = new System.Collections.Generic.List(); + errors = null; + + if (string.IsNullOrEmpty(contents)) + { + return true; // Empty content is valid + } + + // Basic structural validation + if (!ValidateBasicStructure(contents, errorList)) + { + errors = errorList.ToArray(); + return false; + } + +#if USE_ROSLYN + // Advanced Roslyn-based validation: only run for Standard+; fail on Roslyn errors + if (level >= ValidationLevel.Standard) + { + if (!ValidateScriptSyntaxRoslyn(contents, level, errorList)) + { + errors = errorList.ToArray(); + return false; + } + } +#endif + + // Unity-specific validation + if (level >= ValidationLevel.Standard) + { + ValidateScriptSyntaxUnity(contents, errorList); + } + + // Semantic analysis for common issues + if (level >= ValidationLevel.Comprehensive) + { + ValidateSemanticRules(contents, errorList); + } + +#if USE_ROSLYN + // Full semantic compilation validation for Strict level + if (level == ValidationLevel.Strict) + { + if (!ValidateScriptSemantics(contents, errorList)) + { + errors = errorList.ToArray(); + return false; // Strict level fails on any semantic errors + } + } +#endif + + errors = errorList.ToArray(); + return errorList.Count == 0 || (level != ValidationLevel.Strict && !errorList.Any(e => e.StartsWith("ERROR:"))); + } + + /// + /// Validation strictness levels + /// + private enum ValidationLevel + { + Basic, // Only syntax errors + Standard, // Syntax + Unity best practices + Comprehensive, // All checks + semantic analysis + Strict // Treat all issues as errors + } + + /// + /// Validates basic code structure (braces, quotes, comments) + /// + private static bool ValidateBasicStructure(string contents, System.Collections.Generic.List errors) + { + bool isValid = true; + int braceBalance = 0; + int parenBalance = 0; + int bracketBalance = 0; + bool inStringLiteral = false; + bool inCharLiteral = false; + bool inSingleLineComment = false; + bool inMultiLineComment = false; + bool escaped = false; + + for (int i = 0; i < contents.Length; i++) + { + char c = contents[i]; + char next = i + 1 < contents.Length ? contents[i + 1] : '\0'; + + // Handle escape sequences + if (escaped) + { + escaped = false; + continue; + } + + if (c == '\\' && (inStringLiteral || inCharLiteral)) + { + escaped = true; + continue; + } + + // Handle comments + if (!inStringLiteral && !inCharLiteral) + { + if (c == '/' && next == '/' && !inMultiLineComment) + { + inSingleLineComment = true; + continue; + } + if (c == '/' && next == '*' && !inSingleLineComment) + { + inMultiLineComment = true; + i++; // Skip next character + continue; + } + if (c == '*' && next == '/' && inMultiLineComment) + { + inMultiLineComment = false; + i++; // Skip next character + continue; + } + } + + if (c == '\n') + { + inSingleLineComment = false; + continue; + } + + if (inSingleLineComment || inMultiLineComment) + continue; + + // Handle string and character literals + if (c == '"' && !inCharLiteral) + { + inStringLiteral = !inStringLiteral; + continue; + } + if (c == '\'' && !inStringLiteral) + { + inCharLiteral = !inCharLiteral; + continue; + } + + if (inStringLiteral || inCharLiteral) + continue; + + // Count brackets and braces + switch (c) + { + case '{': braceBalance++; break; + case '}': braceBalance--; break; + case '(': parenBalance++; break; + case ')': parenBalance--; break; + case '[': bracketBalance++; break; + case ']': bracketBalance--; break; + } + + // Check for negative balances (closing without opening) + if (braceBalance < 0) + { + errors.Add("ERROR: Unmatched closing brace '}'"); + isValid = false; + } + if (parenBalance < 0) + { + errors.Add("ERROR: Unmatched closing parenthesis ')'"); + isValid = false; + } + if (bracketBalance < 0) + { + errors.Add("ERROR: Unmatched closing bracket ']'"); + isValid = false; + } + } + + // Check final balances + if (braceBalance != 0) + { + errors.Add($"ERROR: Unbalanced braces (difference: {braceBalance})"); + isValid = false; + } + if (parenBalance != 0) + { + errors.Add($"ERROR: Unbalanced parentheses (difference: {parenBalance})"); + isValid = false; + } + if (bracketBalance != 0) + { + errors.Add($"ERROR: Unbalanced brackets (difference: {bracketBalance})"); + isValid = false; + } + if (inStringLiteral) + { + errors.Add("ERROR: Unterminated string literal"); + isValid = false; + } + if (inCharLiteral) + { + errors.Add("ERROR: Unterminated character literal"); + isValid = false; + } + if (inMultiLineComment) + { + errors.Add("WARNING: Unterminated multi-line comment"); + } + + return isValid; + } + +#if USE_ROSLYN + /// + /// Cached compilation references for performance + /// + private static System.Collections.Generic.List _cachedReferences = null; + private static DateTime _cacheTime = DateTime.MinValue; + private static readonly TimeSpan CacheExpiry = TimeSpan.FromMinutes(5); + + /// + /// Validates syntax using Roslyn compiler services + /// + private static bool ValidateScriptSyntaxRoslyn(string contents, ValidationLevel level, System.Collections.Generic.List errors) + { + try + { + var syntaxTree = CSharpSyntaxTree.ParseText(contents); + var diagnostics = syntaxTree.GetDiagnostics(); + + bool hasErrors = false; + foreach (var diagnostic in diagnostics) + { + string severity = diagnostic.Severity.ToString().ToUpper(); + string message = $"{severity}: {diagnostic.GetMessage()}"; + + if (diagnostic.Severity == DiagnosticSeverity.Error) + { + hasErrors = true; + } + + // Include warnings in comprehensive mode + if (level >= ValidationLevel.Standard || diagnostic.Severity == DiagnosticSeverity.Error) //Also use Standard for now + { + var location = diagnostic.Location.GetLineSpan(); + if (location.IsValid) + { + message += $" (Line {location.StartLinePosition.Line + 1})"; + } + errors.Add(message); + } + } + + return !hasErrors; + } + catch (Exception ex) + { + errors.Add($"ERROR: Roslyn validation failed: {ex.Message}"); + return false; + } + } + + /// + /// Validates script semantics using full compilation context to catch namespace, type, and method resolution errors + /// + private static bool ValidateScriptSemantics(string contents, System.Collections.Generic.List errors) + { + try + { + // Get compilation references with caching + var references = GetCompilationReferences(); + if (references == null || references.Count == 0) + { + errors.Add("WARNING: Could not load compilation references for semantic validation"); + return true; // Don't fail if we can't get references + } + + // Create syntax tree + var syntaxTree = CSharpSyntaxTree.ParseText(contents); + + // Create compilation with full context + var compilation = CSharpCompilation.Create( + "TempValidation", + new[] { syntaxTree }, + references, + new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary) + ); + + // Get semantic diagnostics - this catches all the issues you mentioned! + var diagnostics = compilation.GetDiagnostics(); + + bool hasErrors = false; + foreach (var diagnostic in diagnostics) + { + if (diagnostic.Severity == DiagnosticSeverity.Error) + { + hasErrors = true; + var location = diagnostic.Location.GetLineSpan(); + string locationInfo = location.IsValid ? + $" (Line {location.StartLinePosition.Line + 1}, Column {location.StartLinePosition.Character + 1})" : ""; + + // Include diagnostic ID for better error identification + string diagnosticId = !string.IsNullOrEmpty(diagnostic.Id) ? $" [{diagnostic.Id}]" : ""; + errors.Add($"ERROR: {diagnostic.GetMessage()}{diagnosticId}{locationInfo}"); + } + else if (diagnostic.Severity == DiagnosticSeverity.Warning) + { + var location = diagnostic.Location.GetLineSpan(); + string locationInfo = location.IsValid ? + $" (Line {location.StartLinePosition.Line + 1}, Column {location.StartLinePosition.Character + 1})" : ""; + + string diagnosticId = !string.IsNullOrEmpty(diagnostic.Id) ? $" [{diagnostic.Id}]" : ""; + errors.Add($"WARNING: {diagnostic.GetMessage()}{diagnosticId}{locationInfo}"); + } + } + + return !hasErrors; + } + catch (Exception ex) + { + errors.Add($"ERROR: Semantic validation failed: {ex.Message}"); + return false; + } + } + + /// + /// Gets compilation references with caching for performance + /// + private static System.Collections.Generic.List GetCompilationReferences() + { + // Check cache validity + if (_cachedReferences != null && DateTime.Now - _cacheTime < CacheExpiry) + { + return _cachedReferences; + } + + try + { + var references = new System.Collections.Generic.List(); + + // Core .NET assemblies + references.Add(MetadataReference.CreateFromFile(typeof(object).Assembly.Location)); // mscorlib/System.Private.CoreLib + references.Add(MetadataReference.CreateFromFile(typeof(System.Linq.Enumerable).Assembly.Location)); // System.Linq + references.Add(MetadataReference.CreateFromFile(typeof(System.Collections.Generic.List<>).Assembly.Location)); // System.Collections + + // Unity assemblies + try + { + references.Add(MetadataReference.CreateFromFile(typeof(UnityEngine.Debug).Assembly.Location)); // UnityEngine + } + catch (Exception ex) + { + McpLog.Warn($"Could not load UnityEngine assembly: {ex.Message}"); + } + +#if UNITY_EDITOR + try + { + references.Add(MetadataReference.CreateFromFile(typeof(UnityEditor.Editor).Assembly.Location)); // UnityEditor + } + catch (Exception ex) + { + McpLog.Warn($"Could not load UnityEditor assembly: {ex.Message}"); + } + + // Get Unity project assemblies + try + { + var assemblies = CompilationPipeline.GetAssemblies(); + foreach (var assembly in assemblies) + { + if (File.Exists(assembly.outputPath)) + { + references.Add(MetadataReference.CreateFromFile(assembly.outputPath)); + } + } + } + catch (Exception ex) + { + McpLog.Warn($"Could not load Unity project assemblies: {ex.Message}"); + } +#endif + + // Cache the results + _cachedReferences = references; + _cacheTime = DateTime.Now; + + return references; + } + catch (Exception ex) + { + McpLog.Error($"Failed to get compilation references: {ex.Message}"); + return new System.Collections.Generic.List(); + } + } +#else + private static bool ValidateScriptSyntaxRoslyn(string contents, ValidationLevel level, System.Collections.Generic.List errors) + { + // Fallback when Roslyn is not available + return true; + } +#endif + + /// + /// Validates Unity-specific coding rules and best practices + /// //TODO: Naive Unity Checks and not really yield any results, need to be improved + /// + private static void ValidateScriptSyntaxUnity(string contents, System.Collections.Generic.List errors) + { + // Check for common Unity anti-patterns + if (contents.Contains("FindObjectOfType") && contents.Contains("Update()")) + { + errors.Add("WARNING: FindObjectOfType in Update() can cause performance issues"); + } + + if (contents.Contains("GameObject.Find") && contents.Contains("Update()")) + { + errors.Add("WARNING: GameObject.Find in Update() can cause performance issues"); + } + + // Check for proper MonoBehaviour usage + if (contents.Contains(": MonoBehaviour") && !contents.Contains("using UnityEngine")) + { + errors.Add("WARNING: MonoBehaviour requires 'using UnityEngine;'"); + } + + // Check for SerializeField usage + if (contents.Contains("[SerializeField]") && !contents.Contains("using UnityEngine")) + { + errors.Add("WARNING: SerializeField requires 'using UnityEngine;'"); + } + + // Check for proper coroutine usage + if (contents.Contains("StartCoroutine") && !contents.Contains("IEnumerator")) + { + errors.Add("WARNING: StartCoroutine typically requires IEnumerator methods"); + } + + // Check for Update without FixedUpdate for physics + if (contents.Contains("Rigidbody") && contents.Contains("Update()") && !contents.Contains("FixedUpdate()")) + { + errors.Add("WARNING: Consider using FixedUpdate() for Rigidbody operations"); + } + + // Check for missing null checks on Unity objects + if (contents.Contains("GetComponent<") && !contents.Contains("!= null")) + { + errors.Add("WARNING: Consider null checking GetComponent results"); + } + + // Check for proper event function signatures + if (contents.Contains("void Start(") && !contents.Contains("void Start()")) + { + errors.Add("WARNING: Start() should not have parameters"); + } + + if (contents.Contains("void Update(") && !contents.Contains("void Update()")) + { + errors.Add("WARNING: Update() should not have parameters"); + } + + // Check for inefficient string operations + if (contents.Contains("Update()") && contents.Contains("\"") && contents.Contains("+")) + { + errors.Add("WARNING: String concatenation in Update() can cause garbage collection issues"); + } + } + + /// + /// Validates semantic rules and common coding issues + /// + private static void ValidateSemanticRules(string contents, System.Collections.Generic.List errors) + { + // Check for potential memory leaks + if (contents.Contains("new ") && contents.Contains("Update()")) + { + errors.Add("WARNING: Creating objects in Update() may cause memory issues"); + } + + // Check for magic numbers + var magicNumberPattern = new Regex(@"\b\d+\.?\d*f?\b(?!\s*[;})\]])", RegexOptions.CultureInvariant, TimeSpan.FromSeconds(2)); + var matches = magicNumberPattern.Matches(contents); + if (matches.Count > 5) + { + errors.Add("WARNING: Consider using named constants instead of magic numbers"); + } + + // Check for long methods (simple line count check) + var methodPattern = new Regex(@"(public|private|protected|internal)?\s*(static)?\s*\w+\s+\w+\s*\([^)]*\)\s*{", RegexOptions.CultureInvariant, TimeSpan.FromSeconds(2)); + var methodMatches = methodPattern.Matches(contents); + foreach (Match match in methodMatches) + { + int startIndex = match.Index; + int braceCount = 0; + int lineCount = 0; + bool inMethod = false; + + for (int i = startIndex; i < contents.Length; i++) + { + if (contents[i] == '{') + { + braceCount++; + inMethod = true; + } + else if (contents[i] == '}') + { + braceCount--; + if (braceCount == 0 && inMethod) + break; + } + else if (contents[i] == '\n' && inMethod) + { + lineCount++; + } + } + + if (lineCount > 50) + { + errors.Add("WARNING: Method is very long, consider breaking it into smaller methods"); + break; // Only report once + } + } + + // Check for proper exception handling + if (contents.Contains("catch") && contents.Contains("catch()")) + { + errors.Add("WARNING: Empty catch blocks should be avoided"); + } + + // Check for proper async/await usage + if (contents.Contains("async ") && !contents.Contains("await")) + { + errors.Add("WARNING: Async method should contain await or return Task"); + } + + // Check for hardcoded tags and layers + if (contents.Contains("\"Player\"") || contents.Contains("\"Enemy\"")) + { + errors.Add("WARNING: Consider using constants for tags instead of hardcoded strings"); + } + } + + //TODO: A easier way for users to update incorrect scripts (now duplicated with the updateScript method and need to also update server side, put aside for now) + /// + /// Public method to validate script syntax with configurable validation level + /// Returns detailed validation results including errors and warnings + /// + // public static object ValidateScript(JObject @params) + // { + // string contents = @params["contents"]?.ToString(); + // string validationLevel = @params["validationLevel"]?.ToString() ?? "standard"; + + // if (string.IsNullOrEmpty(contents)) + // { + // return new ErrorResponse("Contents parameter is required for validation."); + // } + + // // Parse validation level + // ValidationLevel level = ValidationLevel.Standard; + // switch (validationLevel.ToLower()) + // { + // case "basic": level = ValidationLevel.Basic; break; + // case "standard": level = ValidationLevel.Standard; break; + // case "comprehensive": level = ValidationLevel.Comprehensive; break; + // case "strict": level = ValidationLevel.Strict; break; + // default: + // return new ErrorResponse($"Invalid validation level: '{validationLevel}'. Valid levels are: basic, standard, comprehensive, strict."); + // } + + // // Perform validation + // bool isValid = ValidateScriptSyntax(contents, level, out string[] validationErrors); + + // var errors = validationErrors?.Where(e => e.StartsWith("ERROR:")).ToArray() ?? new string[0]; + // var warnings = validationErrors?.Where(e => e.StartsWith("WARNING:")).ToArray() ?? new string[0]; + + // var result = new + // { + // isValid = isValid, + // validationLevel = validationLevel, + // errorCount = errors.Length, + // warningCount = warnings.Length, + // errors = errors, + // warnings = warnings, + // summary = isValid + // ? (warnings.Length > 0 ? $"Validation passed with {warnings.Length} warnings" : "Validation passed with no issues") + // : $"Validation failed with {errors.Length} errors and {warnings.Length} warnings" + // }; + + // if (isValid) + // { + // return new SuccessResponse("Script validation completed successfully.", result); + // } + // else + // { + // return new ErrorResponse("Script validation failed.", result); + // } + // } + } + + // Debounced refresh/compile scheduler to coalesce bursts of edits + static class RefreshDebounce + { + private static int _pending; + private static readonly object _lock = new object(); + private static readonly HashSet _paths = new HashSet(StringComparer.OrdinalIgnoreCase); + + // The timestamp of the most recent schedule request. + private static DateTime _lastRequest; + + // Guard to ensure we only have a single ticking callback running. + private static bool _scheduled; + + public static void Schedule(string relPath, TimeSpan window) + { + // Record that work is pending and track the path in a threadsafe way. + Interlocked.Exchange(ref _pending, 1); + lock (_lock) + { + _paths.Add(relPath); + _lastRequest = DateTime.UtcNow; + + // If a debounce timer is already scheduled it will pick up the new request. + if (_scheduled) + return; + + _scheduled = true; + } + + // Kick off a ticking callback that waits until the window has elapsed + // from the last request before performing the refresh. + EditorApplication.delayCall += () => Tick(window); + // Nudge the editor loop so ticks run even if the window is unfocused + EditorApplication.QueuePlayerLoopUpdate(); + } + + private static void Tick(TimeSpan window) + { + bool ready; + lock (_lock) + { + // Only proceed once the debounce window has fully elapsed. + ready = (DateTime.UtcNow - _lastRequest) >= window; + if (ready) + { + _scheduled = false; + } + } + + if (!ready) + { + // Window has not yet elapsed; check again on the next editor tick. + EditorApplication.delayCall += () => Tick(window); + return; + } + + if (Interlocked.Exchange(ref _pending, 0) == 1) + { + string[] toImport; + lock (_lock) { toImport = _paths.ToArray(); _paths.Clear(); } + foreach (var p in toImport) + { + var sp = ManageScriptRefreshHelpers.SanitizeAssetsPath(p); + AssetDatabase.ImportAsset(sp, ImportAssetOptions.ForceUpdate | ImportAssetOptions.ForceSynchronousImport); + } +#if UNITY_EDITOR + UnityEditor.Compilation.CompilationPipeline.RequestScriptCompilation(); +#endif + // Fallback if needed: + // AssetDatabase.Refresh(); + } + } + } + + static class ManageScriptRefreshHelpers + { + public static string SanitizeAssetsPath(string p) + { + if (string.IsNullOrEmpty(p)) return p; + p = AssetPathUtility.NormalizeSeparators(p).Trim(); + if (p.StartsWith("mcpforunity://path/", StringComparison.OrdinalIgnoreCase)) + p = p.Substring("mcpforunity://path/".Length); + while (p.StartsWith("Assets/Assets/", StringComparison.OrdinalIgnoreCase)) + p = p.Substring("Assets/".Length); + if (!p.StartsWith("Assets/", StringComparison.OrdinalIgnoreCase)) + p = "Assets/" + p.TrimStart('/'); + return p; + } + + public static void ScheduleScriptRefresh(string relPath) + { + var sp = SanitizeAssetsPath(relPath); + RefreshDebounce.Schedule(sp, TimeSpan.FromMilliseconds(200)); + } + + public static void ImportAndRequestCompile(string relPath, bool synchronous = true) + { + var sp = SanitizeAssetsPath(relPath); + var opts = ImportAssetOptions.ForceUpdate; + if (synchronous) opts |= ImportAssetOptions.ForceSynchronousImport; + AssetDatabase.ImportAsset(sp, opts); +#if UNITY_EDITOR + UnityEditor.Compilation.CompilationPipeline.RequestScriptCompilation(); +#endif + } + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/ManageScript.cs.meta b/Packages/MCPForUnity/Editor/Tools/ManageScript.cs.meta new file mode 100644 index 00000000..091cfe1c --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/ManageScript.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 626d2d44668019a45ae52e9ee066b7ec +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/ManageScriptableObject.cs b/Packages/MCPForUnity/Editor/Tools/ManageScriptableObject.cs new file mode 100644 index 00000000..62d1c19a --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/ManageScriptableObject.cs @@ -0,0 +1,1522 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text.RegularExpressions; +using MCPForUnity.Editor.Helpers; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.Tools +{ + /// + /// Single tool for ScriptableObject workflows: + /// - action=create: create a ScriptableObject asset (and optionally apply patches) + /// - action=modify: apply serialized property patches to an existing asset + /// + /// Patching is performed via SerializedObject/SerializedProperty paths (Unity-native), not reflection. + /// + [McpForUnityTool("manage_scriptable_object", AutoRegister = false)] + public static class ManageScriptableObject + { + private const string CodeCompilingOrReloading = "compiling_or_reloading"; + private const string CodeInvalidParams = "invalid_params"; + private const string CodeTypeNotFound = "type_not_found"; + private const string CodeInvalidFolderPath = "invalid_folder_path"; + private const string CodeTargetNotFound = "target_not_found"; + private const string CodeAssetCreateFailed = "asset_create_failed"; + + private static readonly HashSet ValidActions = new(StringComparer.OrdinalIgnoreCase) + { + // NOTE: Action strings are normalized by NormalizeAction() (lowercased, '_'/'-' removed), + // so we only need the canonical normalized forms here. + "create", + "createso", + "modify", + "modifyso", + }; + + public static object HandleCommand(JObject @params) + { + if (@params == null) + { + return new ErrorResponse(CodeInvalidParams); + } + + if (EditorApplication.isCompiling || EditorApplication.isUpdating) + { + // Unity is transient; treat as retryable on the client side. + return new ErrorResponse(CodeCompilingOrReloading, new { hint = "retry" }); + } + + // Allow JSON-string parameters for objects/arrays. + JsonUtil.CoerceJsonStringParameter(@params, "target"); + CoerceJsonStringArrayParameter(@params, "patches"); + + string actionRaw = @params["action"]?.ToString(); + if (string.IsNullOrWhiteSpace(actionRaw)) + { + return new ErrorResponse(CodeInvalidParams, new { message = "'action' is required.", validActions = ValidActions.ToArray() }); + } + + string action = NormalizeAction(actionRaw); + if (!ValidActions.Contains(action)) + { + return new ErrorResponse(CodeInvalidParams, new { message = $"Unknown action: '{actionRaw}'.", validActions = ValidActions.ToArray() }); + } + + if (IsCreateAction(action)) + { + return HandleCreate(@params); + } + + return HandleModify(@params); + } + + private static object HandleCreate(JObject @params) + { + string typeName = @params["typeName"]?.ToString() ?? @params["type_name"]?.ToString(); + string folderPath = @params["folderPath"]?.ToString() ?? @params["folder_path"]?.ToString(); + string assetName = @params["assetName"]?.ToString() ?? @params["asset_name"]?.ToString(); + bool overwrite = @params["overwrite"]?.ToObject() ?? false; + + if (string.IsNullOrWhiteSpace(typeName)) + { + return new ErrorResponse(CodeInvalidParams, new { message = "'typeName' is required." }); + } + + if (string.IsNullOrWhiteSpace(folderPath)) + { + return new ErrorResponse(CodeInvalidParams, new { message = "'folderPath' is required." }); + } + + if (string.IsNullOrWhiteSpace(assetName)) + { + return new ErrorResponse(CodeInvalidParams, new { message = "'assetName' is required." }); + } + + if (assetName.Contains("/") || assetName.Contains("\\")) + { + return new ErrorResponse(CodeInvalidParams, new { message = "'assetName' must not contain path separators." }); + } + + if (!TryNormalizeFolderPath(folderPath, out var normalizedFolder, out var folderNormalizeError)) + { + return new ErrorResponse(CodeInvalidFolderPath, new { message = folderNormalizeError, folderPath }); + } + + if (!EnsureFolderExists(normalizedFolder, out var folderError)) + { + return new ErrorResponse(CodeInvalidFolderPath, new { message = folderError, folderPath = normalizedFolder }); + } + + var resolvedType = ResolveType(typeName); + if (resolvedType == null || !typeof(ScriptableObject).IsAssignableFrom(resolvedType)) + { + return new ErrorResponse(CodeTypeNotFound, new { message = $"ScriptableObject type not found: '{typeName}'", typeName }); + } + + string fileName = assetName.EndsWith(".asset", StringComparison.OrdinalIgnoreCase) + ? assetName + : assetName + ".asset"; + string desiredPath = $"{normalizedFolder.TrimEnd('/')}/{fileName}"; + string finalPath = overwrite ? desiredPath : AssetDatabase.GenerateUniqueAssetPath(desiredPath); + + ScriptableObject instance; + try + { + instance = ScriptableObject.CreateInstance(resolvedType); + if (instance == null) + { + return new ErrorResponse(CodeAssetCreateFailed, new { message = "CreateInstance returned null.", typeName = resolvedType.FullName }); + } + } + catch (Exception ex) + { + return new ErrorResponse(CodeAssetCreateFailed, new { message = ex.Message, typeName = resolvedType.FullName }); + } + + // GUID-preserving overwrite logic + bool isNewAsset = true; + try + { + if (overwrite) + { + var existingAsset = AssetDatabase.LoadAssetAtPath(finalPath); + if (existingAsset != null && existingAsset.GetType() == resolvedType) + { + // Preserve GUID by overwriting existing asset data in-place + EditorUtility.CopySerialized(instance, existingAsset); + + // Fix for "Main Object Name does not match filename" warning: + // CopySerialized overwrites the name with the (empty) name of the new instance. + // We must restore the correct name to match the filename. + existingAsset.name = Path.GetFileNameWithoutExtension(finalPath); + + UnityEngine.Object.DestroyImmediate(instance); // Destroy temporary instance + instance = existingAsset; // Proceed with patching the existing asset + isNewAsset = false; + + // Mark dirty to ensure changes are picked up + EditorUtility.SetDirty(instance); + } + else if (existingAsset != null) + { + // Type mismatch or not a ScriptableObject - must delete and recreate to change type, losing GUID + // (Or we could warn, but overwrite usually implies replacing) + AssetDatabase.DeleteAsset(finalPath); + } + } + + if (isNewAsset) + { + // Ensure the new instance has the correct name before creating asset to avoid warnings + instance.name = Path.GetFileNameWithoutExtension(finalPath); + AssetDatabase.CreateAsset(instance, finalPath); + } + } + catch (Exception ex) + { + return new ErrorResponse(CodeAssetCreateFailed, new { message = ex.Message, path = finalPath }); + } + + string guid = AssetDatabase.AssetPathToGUID(finalPath); + var patchesToken = @params["patches"]; + object patchResults = null; + var warnings = new List(); + + if (patchesToken is JArray patches && patches.Count > 0) + { + var patchApply = ApplyPatches(instance, patches); + patchResults = patchApply.results; + warnings.AddRange(patchApply.warnings); + } + + EditorUtility.SetDirty(instance); + AssetDatabase.SaveAssets(); + + return new SuccessResponse( + "ScriptableObject created.", + new + { + guid, + path = finalPath, + typeNameResolved = resolvedType.FullName, + patchResults, + warnings = warnings.Count > 0 ? warnings : null + } + ); + } + + private static object HandleModify(JObject @params) + { + if (!TryResolveTarget(@params["target"], out var target, out var targetPath, out var targetGuid, out var err)) + { + return err; + } + + var patchesToken = @params["patches"]; + if (patchesToken == null || patchesToken.Type == JTokenType.Null) + { + return new ErrorResponse(CodeInvalidParams, new { message = "'patches' is required.", targetPath, targetGuid }); + } + + if (patchesToken is not JArray patches) + { + return new ErrorResponse(CodeInvalidParams, new { message = "'patches' must be an array.", targetPath, targetGuid }); + } + + // Phase 5: Dry-run mode - validate patches without applying + bool dryRun = @params["dryRun"]?.ToObject() ?? @params["dry_run"]?.ToObject() ?? false; + + if (dryRun) + { + var validationResults = ValidatePatches(target, patches); + return new SuccessResponse( + "Dry-run validation complete.", + new + { + targetGuid, + targetPath, + targetTypeName = target.GetType().FullName, + dryRun = true, + valid = validationResults.All(r => (bool)r.GetType().GetProperty("ok")?.GetValue(r)), + validationResults + } + ); + } + + var (results, warnings) = ApplyPatches(target, patches); + + return new SuccessResponse( + "Serialized properties patched.", + new + { + targetGuid, + targetPath, + targetTypeName = target.GetType().FullName, + results, + warnings = warnings.Count > 0 ? warnings : null + } + ); + } + + /// + /// Validates patches without applying them (for dry-run mode). + /// Checks that property paths exist and that value types are compatible. + /// + private static List ValidatePatches(UnityEngine.Object target, JArray patches) + { + var results = new List(patches.Count); + var so = new SerializedObject(target); + so.Update(); + + for (int i = 0; i < patches.Count; i++) + { + if (patches[i] is not JObject patchObj) + { + results.Add(new { index = i, propertyPath = "", op = "", ok = false, message = $"Patch at index {i} must be an object." }); + continue; + } + + string propertyPath = patchObj["propertyPath"]?.ToString() + ?? patchObj["property_path"]?.ToString() + ?? patchObj["path"]?.ToString(); + string op = (patchObj["op"]?.ToString() ?? "set").Trim(); + + if (string.IsNullOrWhiteSpace(propertyPath)) + { + results.Add(new { index = i, propertyPath = propertyPath ?? "", op, ok = false, message = "Missing required field: propertyPath" }); + continue; + } + + // Normalize the path + string normalizedPath = NormalizePropertyPath(propertyPath); + string normalizedOp = op.ToLowerInvariant(); + + // For array_resize, check if the array exists + if (normalizedOp == "array_resize") + { + var valueToken = patchObj["value"]; + if (valueToken == null || valueToken.Type == JTokenType.Null) + { + results.Add(new { index = i, propertyPath = normalizedPath, op, ok = false, message = "array_resize requires integer 'value'." }); + continue; + } + + int size = ParamCoercion.CoerceInt(valueToken, -1); + if (size < 0) + { + results.Add(new { index = i, propertyPath = normalizedPath, op, ok = false, message = "array_resize requires non-negative integer 'value'." }); + continue; + } + + // Check if the array path exists + string arrayPath = normalizedPath; + if (arrayPath.EndsWith(".Array.size", StringComparison.Ordinal)) + { + arrayPath = arrayPath.Substring(0, arrayPath.Length - ".Array.size".Length); + } + + var arrayProp = so.FindProperty(arrayPath); + if (arrayProp == null) + { + results.Add(new { index = i, propertyPath = normalizedPath, op, ok = false, message = $"Array not found: {arrayPath}" }); + continue; + } + + if (!arrayProp.isArray) + { + results.Add(new { index = i, propertyPath = normalizedPath, op, ok = false, message = $"Property is not an array: {arrayPath}" }); + continue; + } + + results.Add(new { index = i, propertyPath = normalizedPath, op, ok = true, message = $"Will resize to {size}.", currentSize = arrayProp.arraySize }); + continue; + } + + // For set operations, check if the property exists (or can be auto-grown) + var prop = so.FindProperty(normalizedPath); + + // Check if it's an auto-growable array element path + bool isAutoGrowable = false; + if (prop == null) + { + var match = Regex.Match(normalizedPath, @"^(.+?)\.Array\.data\[(\d+)\]"); + if (match.Success) + { + string arrayPath = match.Groups[1].Value; + var arrayProp = so.FindProperty(arrayPath); + if (arrayProp != null && arrayProp.isArray) + { + isAutoGrowable = true; + // Get the element type info from existing elements or report as growable + int targetIndex = int.Parse(match.Groups[2].Value); + if (arrayProp.arraySize > 0) + { + var sampleElement = arrayProp.GetArrayElementAtIndex(0); + results.Add(new { + index = i, + propertyPath = normalizedPath, + op, + ok = true, + message = $"Will auto-grow array from {arrayProp.arraySize} to {targetIndex + 1}.", + elementType = sampleElement?.propertyType.ToString() ?? "unknown" + }); + } + else + { + results.Add(new { + index = i, + propertyPath = normalizedPath, + op, + ok = true, + message = $"Will auto-grow empty array to size {targetIndex + 1}." + }); + } + continue; + } + } + } + + if (prop == null && !isAutoGrowable) + { + results.Add(new { index = i, propertyPath = normalizedPath, op, ok = false, message = $"Property not found: {normalizedPath}" }); + continue; + } + + if (prop != null) + { + // Property exists - validate value format for supported complex types + var valueToken = patchObj["value"]; + string valueValidationMsg = null; + bool valueFormatOk = true; + + // Enhanced dry-run: validate value format for AnimationCurve and Quaternion + // Uses shared validators from VectorParsing + if (valueToken != null && valueToken.Type != JTokenType.Null) + { + switch (prop.propertyType) + { + case SerializedPropertyType.AnimationCurve: + valueFormatOk = VectorParsing.ValidateAnimationCurveFormat(valueToken, out valueValidationMsg); + break; + case SerializedPropertyType.Quaternion: + valueFormatOk = VectorParsing.ValidateQuaternionFormat(valueToken, out valueValidationMsg); + break; + } + } + + if (valueFormatOk) + { + results.Add(new { + index = i, + propertyPath = normalizedPath, + op, + ok = true, + message = valueValidationMsg ?? "Property found.", + propertyType = prop.propertyType.ToString(), + isArray = prop.isArray + }); + } + else + { + results.Add(new { + index = i, + propertyPath = normalizedPath, + op, + ok = false, + message = valueValidationMsg, + propertyType = prop.propertyType.ToString(), + isArray = prop.isArray + }); + } + } + } + + return results; + } + + private static (List results, List warnings) ApplyPatches(UnityEngine.Object target, JArray patches) + { + var warnings = new List(); + var results = new List(patches.Count); + bool anyChanged = false; + + var so = new SerializedObject(target); + so.Update(); + + for (int i = 0; i < patches.Count; i++) + { + if (patches[i] is not JObject patchObj) + { + results.Add(new { propertyPath = "", op = "", ok = false, message = $"Patch at index {i} must be an object." }); + continue; + } + + string propertyPath = patchObj["propertyPath"]?.ToString() + ?? patchObj["property_path"]?.ToString() + ?? patchObj["path"]?.ToString(); + string op = (patchObj["op"]?.ToString() ?? "set").Trim(); + if (string.IsNullOrWhiteSpace(propertyPath)) + { + results.Add(new { propertyPath = propertyPath ?? "", op, ok = false, message = "Missing required field: propertyPath" }); + continue; + } + + if (string.IsNullOrWhiteSpace(op)) + { + op = "set"; + } + + var patchResult = ApplyPatch(so, propertyPath, op, patchObj, out bool changed); + anyChanged |= changed; + results.Add(patchResult); + + // Array resize should be applied immediately so later paths resolve. + if (string.Equals(op, "array_resize", StringComparison.OrdinalIgnoreCase) && changed) + { + so.ApplyModifiedProperties(); + so.Update(); + } + } + + if (anyChanged) + { + so.ApplyModifiedProperties(); + EditorUtility.SetDirty(target); + AssetDatabase.SaveAssets(); + } + + return (results, warnings); + } + + private static object ApplyPatch(SerializedObject so, string propertyPath, string op, JObject patchObj, out bool changed) + { + changed = false; + try + { + // Phase 1.1: Normalize friendly path syntax (e.g., myList[5] → myList.Array.data[5]) + string normalizedPath = NormalizePropertyPath(propertyPath); + string normalizedOp = op.Trim().ToLowerInvariant(); + + switch (normalizedOp) + { + case "array_resize": + return ApplyArrayResize(so, normalizedPath, patchObj, out changed); + case "set": + default: + return ApplySet(so, normalizedPath, patchObj, out changed); + } + } + catch (Exception ex) + { + return new { propertyPath, op, ok = false, message = ex.Message }; + } + } + + /// + /// Normalizes friendly property path syntax to Unity's internal format. + /// Converts bracket notation (e.g., myList[5]) to Unity's Array.data format (myList.Array.data[5]). + /// + private static string NormalizePropertyPath(string path) + { + if (string.IsNullOrEmpty(path)) + return path; + + // Pattern: word[number] where it's not already in .Array.data[number] format + // We need to handle cases like: myList[5], nested.list[0].field, etc. + // But NOT: myList.Array.data[5] (already in Unity format) + + // Replace fieldName[index] with fieldName.Array.data[index] + // But only if it's not already in Array.data format + return Regex.Replace(path, @"(\w+)\[(\d+)\]", m => + { + string fieldName = m.Groups[1].Value; + string index = m.Groups[2].Value; + + // Check if this match is already part of .Array.data[index] pattern + // by checking if the text immediately before the field name is ".Array." + // and the field name is "data" + int matchStart = m.Index; + if (fieldName == "data" && matchStart >= 7) // Length of ".Array." + { + string preceding = path.Substring(matchStart - 7, 7); + if (preceding == ".Array.") + { + // Already in Unity format (e.g., myList.Array.data[0]), return as-is + return m.Value; + } + } + + return $"{fieldName}.Array.data[{index}]"; + }); + } + + /// + /// Ensures an array has sufficient capacity for the given index. + /// Automatically resizes the array if the target index is beyond current bounds. + /// + /// The SerializedObject containing the array + /// The normalized property path (must be in Array.data format) + /// True if the array was resized + /// True if the path is valid for setting, false if it cannot be resolved + private static bool EnsureArrayCapacity(SerializedObject so, string path, out bool resized) + { + resized = false; + + // Match pattern: something.Array.data[N] + var match = Regex.Match(path, @"^(.+?)\.Array\.data\[(\d+)\]"); + if (!match.Success) + { + // Not an array element path, nothing to do + return true; + } + + string arrayPath = match.Groups[1].Value; + if (!int.TryParse(match.Groups[2].Value, out int targetIndex)) + { + return false; + } + + var arrayProp = so.FindProperty(arrayPath); + if (arrayProp == null || !arrayProp.isArray) + { + // Array property not found or not an array + return false; + } + + if (arrayProp.arraySize <= targetIndex) + { + // Need to grow the array + arrayProp.arraySize = targetIndex + 1; + so.ApplyModifiedProperties(); + so.Update(); + resized = true; + } + + return true; + } + + private static object ApplyArrayResize(SerializedObject so, string propertyPath, JObject patchObj, out bool changed) + { + changed = false; + + // Use ParamCoercion for robust int parsing + var valueToken = patchObj["value"]; + if (valueToken == null || valueToken.Type == JTokenType.Null) + { + return new { propertyPath, op = "array_resize", ok = false, message = "array_resize requires integer 'value'." }; + } + + int newSize = ParamCoercion.CoerceInt(valueToken, -1); + if (newSize < 0) + { + return new { propertyPath, op = "array_resize", ok = false, message = "array_resize requires integer 'value'." }; + } + + newSize = Math.Max(0, newSize); + + // Unity supports resizing either: + // - the array/list property itself (prop.isArray -> prop.arraySize) + // - the synthetic leaf property ".Array.size" (prop.intValue) + // + // Different Unity versions/serialization edge cases can fail to resolve the synthetic leaf via FindProperty + // (or can return different property types), so we keep a "best-effort" fallback: + // - Prefer acting on the requested path if it resolves. + // - If the requested path doesn't resolve, try to resolve the *array property* and set arraySize directly. + SerializedProperty prop = so.FindProperty(propertyPath); + SerializedProperty arrayProp = null; + if (propertyPath.EndsWith(".Array.size", StringComparison.Ordinal)) + { + // Caller explicitly targeted the synthetic leaf. Resolve the parent array property as a fallback + // (Unity sometimes fails to resolve the synthetic leaf in certain serialization contexts). + var arrayPath = propertyPath.Substring(0, propertyPath.Length - ".Array.size".Length); + arrayProp = so.FindProperty(arrayPath); + } + else + { + // Caller targeted either the array property itself (e.g., "items") or some other property. + // If it's already an array, we can resize it directly. Otherwise, we attempt to resolve + // a synthetic ".Array.size" leaf as a convenience, which some clients may pass. + arrayProp = prop != null && prop.isArray ? prop : so.FindProperty(propertyPath + ".Array.size"); + } + + if (prop == null) + { + // If we failed to find the direct property but we *can* find the array property, use that. + if (arrayProp != null && arrayProp.isArray) + { + if (arrayProp.arraySize != newSize) + { + arrayProp.arraySize = newSize; + changed = true; + } + return new + { + propertyPath, + op = "array_resize", + ok = true, + resolvedPropertyType = "Array", + message = $"Set array size to {newSize}." + }; + } + + return new { propertyPath, op = "array_resize", ok = false, message = $"Property not found: {propertyPath}" }; + } + + // Unity may represent ".Array.size" as either Integer or ArraySize depending on version. + if ((prop.propertyType == SerializedPropertyType.Integer || prop.propertyType == SerializedPropertyType.ArraySize) + && propertyPath.EndsWith(".Array.size", StringComparison.Ordinal)) + { + // We successfully resolved the synthetic leaf; write the size through its intValue. + if (prop.intValue != newSize) + { + prop.intValue = newSize; + changed = true; + } + return new { propertyPath, op = "array_resize", ok = true, resolvedPropertyType = prop.propertyType.ToString(), message = $"Set array size to {newSize}." }; + } + + if (prop.isArray) + { + // We resolved the array property itself; write through arraySize. + if (prop.arraySize != newSize) + { + prop.arraySize = newSize; + changed = true; + } + return new { propertyPath, op = "array_resize", ok = true, resolvedPropertyType = "Array", message = $"Set array size to {newSize}." }; + } + + return new { propertyPath, op = "array_resize", ok = false, resolvedPropertyType = prop.propertyType.ToString(), message = $"Property is not an array or array-size field: {propertyPath}" }; + } + + private static object ApplySet(SerializedObject so, string propertyPath, JObject patchObj, out bool changed) + { + changed = false; + + // Phase 1.2: Auto-resize arrays if targeting an index beyond current bounds + if (!EnsureArrayCapacity(so, propertyPath, out bool arrayResized)) + { + // Could not resolve the array path - try to find the property anyway for a better error message + var checkProp = so.FindProperty(propertyPath); + if (checkProp == null) + { + // Try to provide helpful context about what went wrong + var arrayMatch = Regex.Match(propertyPath, @"^(.+?)\.Array\.data\[(\d+)\]"); + if (arrayMatch.Success) + { + string arrayPath = arrayMatch.Groups[1].Value; + var arrayProp = so.FindProperty(arrayPath); + if (arrayProp == null) + { + return new { propertyPath, op = "set", ok = false, message = $"Array property not found: {arrayPath}" }; + } + if (!arrayProp.isArray) + { + return new { propertyPath, op = "set", ok = false, message = $"Property is not an array: {arrayPath}" }; + } + } + return new { propertyPath, op = "set", ok = false, message = $"Property not found: {propertyPath}" }; + } + } + + var prop = so.FindProperty(propertyPath); + if (prop == null) + { + return new { propertyPath, op = "set", ok = false, message = $"Property not found: {propertyPath}" }; + } + + // Track if we resized - this counts as a change + if (arrayResized) + { + changed = true; + } + + if (prop.propertyType == SerializedPropertyType.ObjectReference) + { + var refObj = patchObj["ref"] as JObject; + var objRefValue = patchObj["value"]; + UnityEngine.Object newRef = null; + string refGuid = refObj?["guid"]?.ToString(); + string refPath = refObj?["path"]?.ToString(); + string resolveMethod = "explicit"; + + if (refObj == null && objRefValue?.Type == JTokenType.Null) + { + // Explicit null - clear the reference + newRef = null; + resolveMethod = "cleared"; + } + else if (!string.IsNullOrEmpty(refGuid) || !string.IsNullOrEmpty(refPath)) + { + // Traditional ref object with guid or path + string resolvedPath = !string.IsNullOrEmpty(refGuid) + ? AssetDatabase.GUIDToAssetPath(refGuid) + : AssetPathUtility.SanitizeAssetPath(refPath); + + if (!string.IsNullOrEmpty(resolvedPath)) + { + newRef = AssetDatabase.LoadAssetAtPath(resolvedPath); + } + resolveMethod = !string.IsNullOrEmpty(refGuid) ? "ref.guid" : "ref.path"; + } + else if (objRefValue?.Type == JTokenType.String) + { + // Phase 4: GUID shorthand - allow plain string value + string strVal = objRefValue.ToString(); + + // Check if it's a GUID (32 hex characters, no dashes) + if (Regex.IsMatch(strVal, @"^[0-9a-fA-F]{32}$")) + { + string guidPath = AssetDatabase.GUIDToAssetPath(strVal); + if (!string.IsNullOrEmpty(guidPath)) + { + newRef = AssetDatabase.LoadAssetAtPath(guidPath); + resolveMethod = "guid-shorthand"; + } + } + // Check if it looks like an asset path + else if (strVal.StartsWith("Assets/", StringComparison.OrdinalIgnoreCase) || + strVal.Contains("/")) + { + string sanitizedPath = AssetPathUtility.SanitizeAssetPath(strVal); + newRef = AssetDatabase.LoadAssetAtPath(sanitizedPath); + resolveMethod = "path-shorthand"; + } + } + + if (prop.objectReferenceValue != newRef) + { + prop.objectReferenceValue = newRef; + changed = true; + } + + string refMessage = newRef == null ? "Cleared reference." : $"Set reference ({resolveMethod})."; + return new { propertyPath, op = "set", ok = true, resolvedPropertyType = prop.propertyType.ToString(), message = refMessage }; + } + + var valueToken = patchObj["value"]; + if (valueToken == null) + { + return new { propertyPath, op = "set", ok = false, resolvedPropertyType = prop.propertyType.ToString(), message = "Missing required field: value" }; + } + + bool ok = TrySetValue(prop, valueToken, out string message); + changed = ok; + return new { propertyPath, op = "set", ok, resolvedPropertyType = prop.propertyType.ToString(), message }; + } + + private static bool TrySetValue(SerializedProperty prop, JToken valueToken, out string message) + { + return TrySetValueRecursive(prop, valueToken, out message, 0); + } + + /// + /// Recursively sets values on SerializedProperties, supporting bulk array and object mapping. + /// + /// The property to set + /// The JSON value + /// Output message describing the result + /// Current recursion depth (for safety limits) + private static bool TrySetValueRecursive(SerializedProperty prop, JToken valueToken, out string message, int depth) + { + message = null; + const int MaxRecursionDepth = 20; + + if (depth > MaxRecursionDepth) + { + message = $"Maximum recursion depth ({MaxRecursionDepth}) exceeded. Check for circular references."; + return false; + } + + try + { + // Phase 3.1: Handle bulk array mapping - JArray value for array/list properties + if (prop.isArray && prop.propertyType != SerializedPropertyType.String && valueToken is JArray jArray) + { + // Resize the array to match the JSON array + prop.arraySize = jArray.Count; + + // Get the SerializedObject and apply so we can access elements + var so = prop.serializedObject; + so.ApplyModifiedProperties(); + so.Update(); + + int successCount = 0; + var errors = new List(); + + for (int i = 0; i < jArray.Count; i++) + { + var elementProp = prop.GetArrayElementAtIndex(i); + if (elementProp == null) + { + errors.Add($"Could not get element at index {i}"); + continue; + } + + if (TrySetValueRecursive(elementProp, jArray[i], out string elemMessage, depth + 1)) + { + successCount++; + } + else + { + errors.Add($"[{i}]: {elemMessage}"); + } + } + + so.ApplyModifiedProperties(); + + if (errors.Count > 0) + { + message = $"Set {successCount}/{jArray.Count} elements. Errors: {string.Join("; ", errors)}"; + return successCount > 0; // Partial success + } + + message = $"Set array with {jArray.Count} elements."; + return true; + } + + // Phase 3.2: Handle bulk object mapping - JObject value for Generic (struct/class) properties + if (prop.propertyType == SerializedPropertyType.Generic && !prop.isArray && valueToken is JObject jObj) + { + int successCount = 0; + var errors = new List(); + var so = prop.serializedObject; + + foreach (var kvp in jObj) + { + string childPath = prop.propertyPath + "." + kvp.Key; + var childProp = so.FindProperty(childPath); + + if (childProp == null) + { + errors.Add($"Property not found: {kvp.Key}"); + continue; + } + + if (TrySetValueRecursive(childProp, kvp.Value, out string childMessage, depth + 1)) + { + successCount++; + } + else + { + errors.Add($"{kvp.Key}: {childMessage}"); + } + } + + so.ApplyModifiedProperties(); + + if (errors.Count > 0) + { + message = $"Set {successCount}/{jObj.Count} fields. Errors: {string.Join("; ", errors)}"; + return successCount > 0; // Partial success + } + + message = $"Set struct/class with {jObj.Count} fields."; + return true; + } + + // Supported Types: Integer, Boolean, Float, String, Enum, Vector2, Vector3, Vector4, Color + // Using shared helpers from ParamCoercion and VectorParsing + switch (prop.propertyType) + { + case SerializedPropertyType.Integer: + // Use ParamCoercion for robust int parsing + int intVal = ParamCoercion.CoerceInt(valueToken, int.MinValue); + if (intVal == int.MinValue && valueToken?.Type != JTokenType.Integer) + { + // Double-check: if it's actually int.MinValue or failed to parse + if (valueToken == null || valueToken.Type == JTokenType.Null || + (valueToken.Type == JTokenType.String && !int.TryParse(valueToken.ToString(), out _))) + { + message = "Expected integer value."; + return false; + } + } + prop.intValue = intVal; + message = "Set int."; + return true; + + case SerializedPropertyType.Boolean: + // Use ParamCoercion for robust bool parsing (handles "true", "1", "yes", etc.) + if (valueToken == null || valueToken.Type == JTokenType.Null) + { + message = "Expected boolean value."; + return false; + } + bool boolVal = ParamCoercion.CoerceBool(valueToken, false); + // Verify it actually looked like a bool + if (valueToken.Type != JTokenType.Boolean) + { + string strVal = valueToken.ToString().Trim().ToLowerInvariant(); + if (strVal != "true" && strVal != "false" && strVal != "1" && strVal != "0" && + strVal != "yes" && strVal != "no" && strVal != "on" && strVal != "off") + { + message = "Expected boolean value."; + return false; + } + } + prop.boolValue = boolVal; + message = "Set bool."; + return true; + + case SerializedPropertyType.Float: + // Use ParamCoercion for robust float parsing + float floatVal = ParamCoercion.CoerceFloat(valueToken, float.NaN); + if (float.IsNaN(floatVal)) + { + message = "Expected float value."; + return false; + } + prop.floatValue = floatVal; + message = "Set float."; + return true; + + case SerializedPropertyType.String: + prop.stringValue = valueToken.Type == JTokenType.Null ? null : valueToken.ToString(); + message = "Set string."; + return true; + + case SerializedPropertyType.Enum: + return TrySetEnum(prop, valueToken, out message); + + case SerializedPropertyType.Vector2: + // Use VectorParsing for Vector2 + var v2 = VectorParsing.ParseVector2(valueToken); + if (v2 == null) + { + message = "Expected Vector2 (array or object)."; + return false; + } + prop.vector2Value = v2.Value; + message = "Set Vector2."; + return true; + + case SerializedPropertyType.Vector3: + // Use VectorParsing for Vector3 + var v3 = VectorParsing.ParseVector3(valueToken); + if (v3 == null) + { + message = "Expected Vector3 (array or object)."; + return false; + } + prop.vector3Value = v3.Value; + message = "Set Vector3."; + return true; + + case SerializedPropertyType.Vector4: + // Use VectorParsing for Vector4 + var v4 = VectorParsing.ParseVector4(valueToken); + if (v4 == null) + { + message = "Expected Vector4 (array or object)."; + return false; + } + prop.vector4Value = v4.Value; + message = "Set Vector4."; + return true; + + case SerializedPropertyType.Color: + // Use VectorParsing for Color + var col = VectorParsing.ParseColor(valueToken); + if (col == null) + { + message = "Expected Color (array or object)."; + return false; + } + prop.colorValue = col.Value; + message = "Set Color."; + return true; + + case SerializedPropertyType.AnimationCurve: + return TrySetAnimationCurve(prop, valueToken, out message); + + case SerializedPropertyType.Quaternion: + return TrySetQuaternion(prop, valueToken, out message); + + case SerializedPropertyType.Generic: + // Generic properties (structs/classes) should be handled above with JObject mapping + // If we get here, the value wasn't a JObject + if (prop.isArray) + { + message = $"Expected array (JArray) for array property, got {valueToken?.Type.ToString() ?? "null"}."; + } + else + { + message = $"Expected object (JObject) for struct/class property, got {valueToken?.Type.ToString() ?? "null"}."; + } + return false; + + default: + message = $"Unsupported SerializedPropertyType: {prop.propertyType}. " + + "This type cannot be set via MCP patches. Consider editing the .asset file directly " + + "or using Unity's Inspector. For complex types, check if there's a supported alternative format."; + return false; + } + } + catch (Exception ex) + { + message = ex.Message; + return false; + } + } + + private static bool TrySetEnum(SerializedProperty prop, JToken valueToken, out string message) + { + message = null; + var names = prop.enumNames; + if (names == null || names.Length == 0) { message = "Enum has no names."; return false; } + + if (valueToken.Type == JTokenType.Integer) + { + int idx = valueToken.Value(); + if (idx < 0 || idx >= names.Length) { message = $"Enum index out of range: {idx}"; return false; } + prop.enumValueIndex = idx; message = "Set enum."; return true; + } + + string s = valueToken.ToString(); + for (int i = 0; i < names.Length; i++) + { + if (string.Equals(names[i], s, StringComparison.OrdinalIgnoreCase)) + { + prop.enumValueIndex = i; message = "Set enum."; return true; + } + } + message = $"Unknown enum name '{s}'."; + return false; + } + + /// + /// Sets an AnimationCurve property from a JSON structure. + /// + /// Supported formats: + /// + /// Wrapped: { "keys": [ { "time": 0, "value": 1.0 }, ... ] } + /// Direct array: [ { "time": 0, "value": 1.0 }, ... ] + /// Null/empty: Sets an empty AnimationCurve + /// + /// + /// Keyframe fields: + /// + /// time (float): Keyframe time position. Default: 0 + /// value (float): Keyframe value. Default: 0 + /// inSlope or inTangent (float): Incoming tangent slope. Default: 0 + /// outSlope or outTangent (float): Outgoing tangent slope. Default: 0 + /// weightedMode (int): Weighted mode enum (0=None, 1=In, 2=Out, 3=Both). Default: 0 (None) + /// inWeight (float): Incoming tangent weight. Default: 0 + /// outWeight (float): Outgoing tangent weight. Default: 0 + /// + /// + /// Note: All keyframe fields are optional. Missing fields gracefully default to 0, + /// which produces linear interpolation when both tangents are 0. + /// + /// The SerializedProperty of type AnimationCurve to set + /// JSON token containing the curve data + /// Output message describing the result + /// True if successful, false if the format is invalid + private static bool TrySetAnimationCurve(SerializedProperty prop, JToken valueToken, out string message) + { + message = null; + + if (valueToken == null || valueToken.Type == JTokenType.Null) + { + // Set to empty curve + prop.animationCurveValue = new AnimationCurve(); + message = "Set AnimationCurve to empty."; + return true; + } + + JArray keysArray = null; + + // Accept either { "keys": [...] } or just [...] + if (valueToken is JObject curveObj) + { + keysArray = curveObj["keys"] as JArray; + if (keysArray == null) + { + message = "AnimationCurve object requires 'keys' array. Expected: { \"keys\": [ { \"time\": 0, \"value\": 0 }, ... ] }"; + return false; + } + } + else if (valueToken is JArray directArray) + { + keysArray = directArray; + } + else + { + message = "AnimationCurve requires object with 'keys' or array of keyframes. " + + "Expected: { \"keys\": [ { \"time\": 0, \"value\": 0, \"inSlope\": 0, \"outSlope\": 0 }, ... ] }"; + return false; + } + + try + { + var curve = new AnimationCurve(); + foreach (var keyToken in keysArray) + { + if (keyToken is not JObject keyObj) + { + message = "Each keyframe must be an object with 'time' and 'value'."; + return false; + } + + float time = keyObj["time"]?.Value() ?? 0f; + float value = keyObj["value"]?.Value() ?? 0f; + float inSlope = keyObj["inSlope"]?.Value() ?? keyObj["inTangent"]?.Value() ?? 0f; + float outSlope = keyObj["outSlope"]?.Value() ?? keyObj["outTangent"]?.Value() ?? 0f; + + var keyframe = new Keyframe(time, value, inSlope, outSlope); + + // Optional: weighted tangent mode (Unity 2018.1+) + if (keyObj["weightedMode"] != null) + { + int weightedMode = keyObj["weightedMode"].Value(); + keyframe.weightedMode = (WeightedMode)weightedMode; + } + if (keyObj["inWeight"] != null) + { + keyframe.inWeight = keyObj["inWeight"].Value(); + } + if (keyObj["outWeight"] != null) + { + keyframe.outWeight = keyObj["outWeight"].Value(); + } + + curve.AddKey(keyframe); + } + + prop.animationCurveValue = curve; + message = $"Set AnimationCurve with {keysArray.Count} keyframes."; + return true; + } + catch (Exception ex) + { + message = $"Failed to parse AnimationCurve: {ex.Message}"; + return false; + } + } + + /// + /// Sets a Quaternion property from JSON. + /// + /// Supported formats: + /// + /// Euler array: [x, y, z] - Euler angles in degrees + /// Raw quaternion array: [x, y, z, w] - Direct quaternion components + /// Object format: { "x": 0, "y": 0, "z": 0, "w": 1 } - Direct components + /// Explicit euler: { "euler": [x, y, z] } - Euler angles in degrees + /// Null/empty: Sets Quaternion.identity (no rotation) + /// + /// + /// Format detection: + /// + /// 3-element array → Interpreted as Euler angles (degrees) + /// 4-element array → Interpreted as raw quaternion [x, y, z, w] + /// Object with euler → Uses euler array for rotation + /// Object with x, y, z, w → Uses raw quaternion components + /// + /// + /// The SerializedProperty of type Quaternion to set + /// JSON token containing the quaternion data + /// Output message describing the result + /// True if successful, false if the format is invalid + private static bool TrySetQuaternion(SerializedProperty prop, JToken valueToken, out string message) + { + message = null; + + if (valueToken == null || valueToken.Type == JTokenType.Null) + { + prop.quaternionValue = Quaternion.identity; + message = "Set Quaternion to identity."; + return true; + } + + try + { + if (valueToken is JArray arr) + { + if (arr.Count == 3) + { + // Euler angles [x, y, z] + var euler = new Vector3( + arr[0].Value(), + arr[1].Value(), + arr[2].Value() + ); + prop.quaternionValue = Quaternion.Euler(euler); + message = $"Set Quaternion from Euler({euler.x}, {euler.y}, {euler.z})."; + return true; + } + else if (arr.Count == 4) + { + // Raw quaternion [x, y, z, w] + prop.quaternionValue = new Quaternion( + arr[0].Value(), + arr[1].Value(), + arr[2].Value(), + arr[3].Value() + ); + message = "Set Quaternion from [x, y, z, w]."; + return true; + } + else + { + message = "Quaternion array must have 3 elements (Euler) or 4 elements (x, y, z, w)."; + return false; + } + } + else if (valueToken is JObject obj) + { + // Check for explicit euler property + if (obj["euler"] is JArray eulerArr && eulerArr.Count == 3) + { + var euler = new Vector3( + eulerArr[0].Value(), + eulerArr[1].Value(), + eulerArr[2].Value() + ); + prop.quaternionValue = Quaternion.Euler(euler); + message = $"Set Quaternion from euler: ({euler.x}, {euler.y}, {euler.z})."; + return true; + } + + // Object format { x, y, z, w } + if (obj["x"] != null && obj["y"] != null && obj["z"] != null && obj["w"] != null) + { + prop.quaternionValue = new Quaternion( + obj["x"].Value(), + obj["y"].Value(), + obj["z"].Value(), + obj["w"].Value() + ); + message = "Set Quaternion from { x, y, z, w }."; + return true; + } + + message = "Quaternion object must have { x, y, z, w } or { euler: [x, y, z] }."; + return false; + } + else + { + message = "Quaternion requires array [x,y,z] (Euler), [x,y,z,w] (raw), or object { x, y, z, w }."; + return false; + } + } + catch (Exception ex) + { + message = $"Failed to parse Quaternion: {ex.Message}"; + return false; + } + } + + private static bool TryResolveTarget(JToken targetToken, out UnityEngine.Object target, out string targetPath, out string targetGuid, out object error) + { + target = null; + targetPath = null; + targetGuid = null; + error = null; + + if (targetToken is not JObject targetObj) + { + error = new ErrorResponse(CodeInvalidParams, new { message = "'target' must be an object with {guid|path}." }); + return false; + } + + string guid = targetObj["guid"]?.ToString(); + string path = targetObj["path"]?.ToString(); + + if (string.IsNullOrWhiteSpace(guid) && string.IsNullOrWhiteSpace(path)) + { + error = new ErrorResponse(CodeInvalidParams, new { message = "'target' must include 'guid' or 'path'." }); + return false; + } + + string resolvedPath = !string.IsNullOrWhiteSpace(guid) + ? AssetDatabase.GUIDToAssetPath(guid) + : AssetPathUtility.SanitizeAssetPath(path); + + if (string.IsNullOrWhiteSpace(resolvedPath)) + { + error = new ErrorResponse(CodeTargetNotFound, new { message = "Could not resolve target path.", guid, path }); + return false; + } + + var obj = AssetDatabase.LoadAssetAtPath(resolvedPath); + if (obj == null) + { + error = new ErrorResponse(CodeTargetNotFound, new { message = "Target asset not found.", targetPath = resolvedPath, targetGuid = guid }); + return false; + } + + target = obj; + targetPath = resolvedPath; + targetGuid = string.IsNullOrWhiteSpace(guid) ? AssetDatabase.AssetPathToGUID(resolvedPath) : guid; + return true; + } + + private static void CoerceJsonStringArrayParameter(JObject @params, string paramName) + { + var token = @params?[paramName]; + if (token != null && token.Type == JTokenType.String) + { + try + { + var parsed = JToken.Parse(token.ToString()); + if (parsed is JArray arr) + { + @params[paramName] = arr; + } + } + catch (Exception e) + { + McpLog.Warn($"[MCP] Could not parse '{paramName}' JSON string: {e.Message}"); + } + } + } + + private static bool EnsureFolderExists(string folderPath, out string error) + { + error = null; + if (string.IsNullOrWhiteSpace(folderPath)) + { + error = "Folder path is empty."; + return false; + } + + // Expect normalized input here (Assets/... or Assets). + string sanitized = SanitizeSlashes(folderPath); + + if (!sanitized.StartsWith("Assets/", StringComparison.OrdinalIgnoreCase) + && !string.Equals(sanitized, "Assets", StringComparison.OrdinalIgnoreCase)) + { + error = "Folder path must be under Assets/."; + return false; + } + + if (string.Equals(sanitized, "Assets", StringComparison.OrdinalIgnoreCase)) + { + return true; + } + + sanitized = sanitized.TrimEnd('/'); + if (AssetDatabase.IsValidFolder(sanitized)) + { + return true; + } + + // Create recursively from Assets/ + var parts = sanitized.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries); + if (parts.Length == 0 || !string.Equals(parts[0], "Assets", StringComparison.OrdinalIgnoreCase)) + { + error = "Folder path must start with Assets/"; + return false; + } + + string current = "Assets"; + for (int i = 1; i < parts.Length; i++) + { + string next = current + "/" + parts[i]; + if (!AssetDatabase.IsValidFolder(next)) + { + string guid = AssetDatabase.CreateFolder(current, parts[i]); + if (string.IsNullOrEmpty(guid)) + { + error = $"Failed to create folder: {next}"; + return false; + } + } + current = next; + } + + return AssetDatabase.IsValidFolder(sanitized); + } + + private static string SanitizeSlashes(string path) + { + if (string.IsNullOrWhiteSpace(path)) + { + return path; + } + + var s = AssetPathUtility.NormalizeSeparators(path); + while (s.IndexOf("//", StringComparison.Ordinal) >= 0) + { + s = s.Replace("//", "/", StringComparison.Ordinal); + } + return s; + } + + private static bool TryNormalizeFolderPath(string folderPath, out string normalized, out string error) + { + normalized = null; + error = null; + + if (string.IsNullOrWhiteSpace(folderPath)) + { + error = "Folder path is empty."; + return false; + } + + var s = SanitizeSlashes(folderPath.Trim()); + + // Reject obvious non-project/invalid roots. We only support Assets/ (and relative paths that will be rooted under Assets/). + if (s.StartsWith("/", StringComparison.Ordinal) + || s.StartsWith("file:", StringComparison.OrdinalIgnoreCase) + || Regex.IsMatch(s, @"^[a-zA-Z]:")) + { + error = "Folder path must be a project-relative path under Assets/."; + return false; + } + + if (s.StartsWith("Packages/", StringComparison.OrdinalIgnoreCase) + || s.StartsWith("ProjectSettings/", StringComparison.OrdinalIgnoreCase) + || s.StartsWith("Library/", StringComparison.OrdinalIgnoreCase)) + { + error = "Folder path must be under Assets/."; + return false; + } + + if (string.Equals(s, "Assets", StringComparison.OrdinalIgnoreCase)) + { + normalized = "Assets"; + return true; + } + + if (s.StartsWith("Assets/", StringComparison.OrdinalIgnoreCase)) + { + normalized = s.TrimEnd('/'); + return true; + } + + // Allow relative paths like "Temp/MyFolder" and root them under Assets/. + normalized = ("Assets/" + s.TrimStart('/')).TrimEnd('/'); + return true; + } + + // NOTE: Local TryGet* helpers have been removed. + // Using shared helpers instead: ParamCoercion (for int/float/bool) and VectorParsing (for Vector2/3/4, Color) + + private static string NormalizeAction(string raw) + { + var s = raw.Trim(); + s = s.Replace("-", "").Replace("_", ""); + return s.ToLowerInvariant(); + } + + private static bool IsCreateAction(string normalized) + { + return normalized == "create" || normalized == "createso"; + } + + /// + /// Resolves a type by name. Delegates to UnityTypeResolver.ResolveAny(). + /// + private static Type ResolveType(string typeName) + { + return Helpers.UnityTypeResolver.ResolveAny(typeName); + } + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/ManageScriptableObject.cs.meta b/Packages/MCPForUnity/Editor/Tools/ManageScriptableObject.cs.meta new file mode 100644 index 00000000..fa17b473 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/ManageScriptableObject.cs.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: 9e0bb5a8c1b24b7ea8bce09ce0a1f234 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: + + + diff --git a/Packages/MCPForUnity/Editor/Tools/ManageShader.cs b/Packages/MCPForUnity/Editor/Tools/ManageShader.cs new file mode 100644 index 00000000..87b86fed --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/ManageShader.cs @@ -0,0 +1,344 @@ +using System; +using System.IO; +using System.Linq; +using System.Text.RegularExpressions; +using MCPForUnity.Editor.Helpers; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.Tools +{ + /// + /// Handles CRUD operations for shader files within the Unity project. + /// + [McpForUnityTool("manage_shader", AutoRegister = false)] + public static class ManageShader + { + /// + /// Main handler for shader management actions. + /// + public static object HandleCommand(JObject @params) + { + // Extract parameters + string action = @params["action"]?.ToString()?.ToLowerInvariant(); + string name = @params["name"]?.ToString(); + string path = @params["path"]?.ToString(); // Relative to Assets/ + string contents = null; + + // Check if we have base64 encoded contents + bool contentsEncoded = @params["contentsEncoded"]?.ToObject() ?? false; + if (contentsEncoded && @params["encodedContents"] != null) + { + try + { + contents = DecodeBase64(@params["encodedContents"].ToString()); + } + catch (Exception e) + { + return new ErrorResponse($"Failed to decode shader contents: {e.Message}"); + } + } + else + { + contents = @params["contents"]?.ToString(); + } + + // Validate required parameters + if (string.IsNullOrEmpty(action)) + { + return new ErrorResponse("Action parameter is required."); + } + if (string.IsNullOrEmpty(name)) + { + return new ErrorResponse("Name parameter is required."); + } + // Basic name validation (alphanumeric, underscores, cannot start with number) + if (!Regex.IsMatch(name, @"^[a-zA-Z_][a-zA-Z0-9_]*$")) + { + return new ErrorResponse( + $"Invalid shader name: '{name}'. Use only letters, numbers, underscores, and don't start with a number." + ); + } + + // Ensure path is relative to Assets/, removing any leading "Assets/" + // Set default directory to "Shaders" if path is not provided + string relativeDir = path ?? "Shaders"; // Default to "Shaders" if path is null + if (!string.IsNullOrEmpty(relativeDir)) + { + relativeDir = AssetPathUtility.NormalizeSeparators(relativeDir).Trim('/'); + if (relativeDir.StartsWith("Assets/", StringComparison.OrdinalIgnoreCase)) + { + relativeDir = relativeDir.Substring("Assets/".Length).TrimStart('/'); + } + } + // Handle empty string case explicitly after processing + if (string.IsNullOrEmpty(relativeDir)) + { + relativeDir = "Shaders"; // Ensure default if path was provided as "" or only "/" or "Assets/" + } + + // Construct paths + string shaderFileName = $"{name}.shader"; + string fullPathDir = Path.Combine(Application.dataPath, relativeDir); + string fullPath = Path.Combine(fullPathDir, shaderFileName); + string relativePath = AssetPathUtility.NormalizeSeparators( + Path.Combine("Assets", relativeDir, shaderFileName) + ); // Ensure "Assets/" prefix and forward slashes + + // Ensure the target directory exists for create/update + if (action == "create" || action == "update") + { + try + { + if (!Directory.Exists(fullPathDir)) + { + Directory.CreateDirectory(fullPathDir); + // Refresh AssetDatabase to recognize new folders + AssetDatabase.Refresh(ImportAssetOptions.ForceSynchronousImport); + } + } + catch (Exception e) + { + return new ErrorResponse( + $"Could not create directory '{fullPathDir}': {e.Message}" + ); + } + } + + // Route to specific action handlers + switch (action) + { + case "create": + return CreateShader(fullPath, relativePath, name, contents); + case "read": + return ReadShader(fullPath, relativePath); + case "update": + return UpdateShader(fullPath, relativePath, name, contents); + case "delete": + return DeleteShader(fullPath, relativePath); + default: + return new ErrorResponse( + $"Unknown action: '{action}'. Valid actions are: create, read, update, delete." + ); + } + } + + /// + /// Decode base64 string to normal text + /// + private static string DecodeBase64(string encoded) + { + byte[] data = Convert.FromBase64String(encoded); + return System.Text.Encoding.UTF8.GetString(data); + } + + /// + /// Encode text to base64 string + /// + private static string EncodeBase64(string text) + { + byte[] data = System.Text.Encoding.UTF8.GetBytes(text); + return Convert.ToBase64String(data); + } + + private static object CreateShader( + string fullPath, + string relativePath, + string name, + string contents + ) + { + // Check if shader already exists + if (File.Exists(fullPath)) + { + return new ErrorResponse( + $"Shader already exists at '{relativePath}'. Use 'update' action to modify." + ); + } + + // Add validation for shader name conflicts in Unity + if (Shader.Find(name) != null) + { + return new ErrorResponse( + $"A shader with name '{name}' already exists in the project. Choose a different name." + ); + } + + // Generate default content if none provided + if (string.IsNullOrEmpty(contents)) + { + contents = GenerateDefaultShaderContent(name); + } + + try + { + File.WriteAllText(fullPath, contents, new System.Text.UTF8Encoding(false)); + AssetDatabase.ImportAsset(relativePath); + AssetDatabase.Refresh(ImportAssetOptions.ForceSynchronousImport); // Ensure Unity recognizes the new shader + return new SuccessResponse( + $"Shader '{name}.shader' created successfully at '{relativePath}'.", + new { path = relativePath } + ); + } + catch (Exception e) + { + return new ErrorResponse($"Failed to create shader '{relativePath}': {e.Message}"); + } + } + + private static object ReadShader(string fullPath, string relativePath) + { + if (!File.Exists(fullPath)) + { + return new ErrorResponse($"Shader not found at '{relativePath}'."); + } + + try + { + string contents = File.ReadAllText(fullPath); + + // Return both normal and encoded contents for larger files + //TODO: Consider a threshold for large files + bool isLarge = contents.Length > 10000; // If content is large, include encoded version + var responseData = new + { + path = relativePath, + contents = contents, + // For large files, also include base64-encoded version + encodedContents = isLarge ? EncodeBase64(contents) : null, + contentsEncoded = isLarge, + }; + + return new SuccessResponse( + $"Shader '{Path.GetFileName(relativePath)}' read successfully.", + responseData + ); + } + catch (Exception e) + { + return new ErrorResponse($"Failed to read shader '{relativePath}': {e.Message}"); + } + } + + private static object UpdateShader( + string fullPath, + string relativePath, + string name, + string contents + ) + { + if (!File.Exists(fullPath)) + { + return new ErrorResponse( + $"Shader not found at '{relativePath}'. Use 'create' action to add a new shader." + ); + } + if (string.IsNullOrEmpty(contents)) + { + return new ErrorResponse("Content is required for the 'update' action."); + } + + try + { + File.WriteAllText(fullPath, contents, new System.Text.UTF8Encoding(false)); + AssetDatabase.ImportAsset(relativePath); + AssetDatabase.Refresh(ImportAssetOptions.ForceSynchronousImport); + return new SuccessResponse( + $"Shader '{Path.GetFileName(relativePath)}' updated successfully.", + new { path = relativePath } + ); + } + catch (Exception e) + { + return new ErrorResponse($"Failed to update shader '{relativePath}': {e.Message}"); + } + } + + private static object DeleteShader(string fullPath, string relativePath) + { + if (!File.Exists(fullPath)) + { + return new ErrorResponse($"Shader not found at '{relativePath}'."); + } + + try + { + // Delete the asset through Unity's AssetDatabase first + bool success = AssetDatabase.DeleteAsset(relativePath); + if (!success) + { + return new ErrorResponse($"Failed to delete shader through Unity's AssetDatabase: '{relativePath}'"); + } + + // If the file still exists (rare case), try direct deletion + if (File.Exists(fullPath)) + { + File.Delete(fullPath); + } + + return new SuccessResponse($"Shader '{Path.GetFileName(relativePath)}' deleted successfully."); + } + catch (Exception e) + { + return new ErrorResponse($"Failed to delete shader '{relativePath}': {e.Message}"); + } + } + + //This is a CGProgram template + //TODO: making a HLSL template as well? + private static string GenerateDefaultShaderContent(string name) + { + return @"Shader """ + name + @""" + { + Properties + { + _MainTex (""Texture"", 2D) = ""white"" {} + } + SubShader + { + Tags { ""RenderType""=""Opaque"" } + LOD 100 + + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #include ""UnityCG.cginc"" + + struct appdata + { + float4 vertex : POSITION; + float2 uv : TEXCOORD0; + }; + + struct v2f + { + float2 uv : TEXCOORD0; + float4 vertex : SV_POSITION; + }; + + sampler2D _MainTex; + float4 _MainTex_ST; + + v2f vert (appdata v) + { + v2f o; + o.vertex = UnityObjectToClipPos(v.vertex); + o.uv = TRANSFORM_TEX(v.uv, _MainTex); + return o; + } + + fixed4 frag (v2f i) : SV_Target + { + fixed4 col = tex2D(_MainTex, i.uv); + return col; + } + ENDCG + } + } + }"; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/ManageShader.cs.meta b/Packages/MCPForUnity/Editor/Tools/ManageShader.cs.meta new file mode 100644 index 00000000..89d10cdd --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/ManageShader.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bcf4f1f3110494344b2af9324cf5c571 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/ManageTexture.cs b/Packages/MCPForUnity/Editor/Tools/ManageTexture.cs new file mode 100644 index 00000000..86e42904 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/ManageTexture.cs @@ -0,0 +1,1025 @@ +using System; +using System.Collections.Generic; +using System.IO; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEngine; +using MCPForUnity.Editor.Helpers; + +namespace MCPForUnity.Editor.Tools +{ + /// + /// Handles procedural texture generation operations. + /// Supports patterns (checkerboard, stripes, dots, grid, brick), + /// gradients, noise, and direct pixel manipulation. + /// + [McpForUnityTool("manage_texture", AutoRegister = false)] + public static class ManageTexture + { + private const int MaxTextureDimension = 1024; + private const int MaxTexturePixels = 1024 * 1024; + private const int MaxNoiseWork = 4000000; + private static readonly List ValidActions = new List + { + "create", + "modify", + "delete", + "create_sprite", + "apply_pattern", + "apply_gradient", + "apply_noise" + }; + + private static ErrorResponse ValidateDimensions(int width, int height, List warnings) + { + if (width <= 0 || height <= 0) + return new ErrorResponse($"Invalid dimensions: {width}x{height}. Must be positive."); + if (width > MaxTextureDimension || height > MaxTextureDimension) + warnings.Add($"Dimensions exceed recommended max {MaxTextureDimension} per side (got {width}x{height})."); + long totalPixels = (long)width * height; + if (totalPixels > MaxTexturePixels) + warnings.Add($"Total pixels exceed recommended max {MaxTexturePixels} (got {width}x{height})."); + return null; + } + + + public static object HandleCommand(JObject @params) + { + string action = @params["action"]?.ToString()?.ToLowerInvariant(); + if (string.IsNullOrEmpty(action)) + { + return new ErrorResponse("Action parameter is required."); + } + + if (!ValidActions.Contains(action)) + { + string validActionsList = string.Join(", ", ValidActions); + return new ErrorResponse( + $"Unknown action: '{action}'. Valid actions are: {validActionsList}" + ); + } + + string path = @params["path"]?.ToString(); + + try + { + switch (action) + { + case "create": + case "create_sprite": + return CreateTexture(@params, action == "create_sprite"); + case "modify": + return ModifyTexture(@params); + case "delete": + return DeleteTexture(path); + case "apply_pattern": + return ApplyPattern(@params); + case "apply_gradient": + return ApplyGradient(@params); + case "apply_noise": + return ApplyNoise(@params); + default: + return new ErrorResponse($"Unknown action: '{action}'"); + } + } + catch (Exception e) + { + McpLog.Error($"[ManageTexture] Action '{action}' failed: {e}"); + return new ErrorResponse($"Internal error processing action '{action}': {e.Message}"); + } + } + + // --- Action Implementations --- + + private static object CreateTexture(JObject @params, bool asSprite) + { + string path = @params["path"]?.ToString(); + if (string.IsNullOrEmpty(path)) + return new ErrorResponse("'path' is required for create."); + + string imagePath = @params["imagePath"]?.ToString(); + bool hasImage = !string.IsNullOrEmpty(imagePath); + + int width = @params["width"]?.ToObject() ?? 64; + int height = @params["height"]?.ToObject() ?? 64; + List warnings = new List(); + + // Validate dimensions + if (!hasImage) + { + var dimensionError = ValidateDimensions(width, height, warnings); + if (dimensionError != null) + return dimensionError; + } + + string fullPath = AssetPathUtility.SanitizeAssetPath(path); + EnsureDirectoryExists(fullPath); + + try + { + var fillColorToken = @params["fillColor"]; + var patternToken = @params["pattern"]; + var pixelsToken = @params["pixels"]; + + if (hasImage && (fillColorToken != null || patternToken != null || pixelsToken != null)) + { + return new ErrorResponse("imagePath cannot be combined with fillColor, pattern, or pixels."); + } + + int patternSize = 8; + if (!hasImage && patternToken != null) + { + patternSize = @params["patternSize"]?.ToObject() ?? 8; + if (patternSize <= 0) + return new ErrorResponse("patternSize must be greater than 0."); + } + + Texture2D texture; + if (hasImage) + { + string resolvedImagePath = ResolveImagePath(imagePath); + if (!File.Exists(resolvedImagePath)) + return new ErrorResponse($"Image file not found at '{imagePath}'."); + + byte[] imageBytes = File.ReadAllBytes(resolvedImagePath); + texture = new Texture2D(2, 2, TextureFormat.RGBA32, false); + if (!texture.LoadImage(imageBytes)) + { + UnityEngine.Object.DestroyImmediate(texture); + return new ErrorResponse($"Failed to load image from '{imagePath}'."); + } + + width = texture.width; + height = texture.height; + var imageDimensionError = ValidateDimensions(width, height, warnings); + if (imageDimensionError != null) + { + UnityEngine.Object.DestroyImmediate(texture); + return imageDimensionError; + } + } + else + { + texture = new Texture2D(width, height, TextureFormat.RGBA32, false); + + // Check for fill color + if (fillColorToken != null && fillColorToken.Type == JTokenType.Array) + { + Color32 fillColor = TextureOps.ParseColor32(fillColorToken as JArray); + TextureOps.FillTexture(texture, fillColor); + } + + // Check for pattern + if (patternToken != null) + { + string pattern = patternToken.ToString(); + var palette = TextureOps.ParsePalette(@params["palette"] as JArray); + ApplyPatternToTexture(texture, pattern, palette, patternSize); + } + + // Check for direct pixel data + if (pixelsToken != null) + { + TextureOps.ApplyPixelData(texture, pixelsToken, width, height); + } + + // If nothing specified, create transparent texture + if (fillColorToken == null && patternToken == null && pixelsToken == null) + { + TextureOps.FillTexture(texture, new Color32(0, 0, 0, 0)); + } + } + + texture.Apply(); + + // Save to disk + byte[] imageData = TextureOps.EncodeTexture(texture, fullPath); + if (imageData == null || imageData.Length == 0) + { + UnityEngine.Object.DestroyImmediate(texture); + return new ErrorResponse($"Failed to encode texture for '{fullPath}'"); + } + File.WriteAllBytes(GetAbsolutePath(fullPath), imageData); + + AssetDatabase.ImportAsset(fullPath, ImportAssetOptions.ForceUpdate); + + // Configure texture importer settings if provided + JToken importSettingsToken = @params["importSettings"]; + JToken spriteSettingsToken = @params["spriteSettings"]; + + if (importSettingsToken != null) + { + ConfigureTextureImporter(fullPath, importSettingsToken); + } + else if (asSprite || spriteSettingsToken != null) + { + // Legacy sprite configuration + ConfigureAsSprite(fullPath, spriteSettingsToken); + } + + // Clean up memory + UnityEngine.Object.DestroyImmediate(texture); + foreach (var warning in warnings) + { + McpLog.Warn($"[ManageTexture] {warning}"); + } + + return new SuccessResponse( + $"Texture created at '{fullPath}' ({width}x{height})" + (asSprite ? " as sprite" : ""), + new + { + path = fullPath, + width, + height, + asSprite = asSprite || spriteSettingsToken != null || (importSettingsToken?["textureType"]?.ToString() == "Sprite"), + warnings = warnings.Count > 0 ? warnings : null + } + ); + } + catch (Exception e) + { + return new ErrorResponse($"Failed to create texture: {e.Message}"); + } + } + + private static object ModifyTexture(JObject @params) + { + string path = @params["path"]?.ToString(); + if (string.IsNullOrEmpty(path)) + return new ErrorResponse("'path' is required for modify."); + + string fullPath = AssetPathUtility.SanitizeAssetPath(path); + if (!AssetExists(fullPath)) + return new ErrorResponse($"Texture not found at path: {fullPath}"); + + try + { + Texture2D texture = AssetDatabase.LoadAssetAtPath(fullPath); + if (texture == null) + return new ErrorResponse($"Failed to load texture at path: {fullPath}"); + + // Make the texture readable + string absolutePath = GetAbsolutePath(fullPath); + byte[] fileData = File.ReadAllBytes(absolutePath); + Texture2D editableTexture = new Texture2D(texture.width, texture.height, TextureFormat.RGBA32, false); + editableTexture.LoadImage(fileData); + + // Apply modifications + var setPixelsToken = @params["setPixels"] as JObject; + if (setPixelsToken != null) + { + int x = setPixelsToken["x"]?.ToObject() ?? 0; + int y = setPixelsToken["y"]?.ToObject() ?? 0; + int w = setPixelsToken["width"]?.ToObject() ?? 1; + int h = setPixelsToken["height"]?.ToObject() ?? 1; + + if (w <= 0 || h <= 0) + { + UnityEngine.Object.DestroyImmediate(editableTexture); + return new ErrorResponse("setPixels width and height must be positive."); + } + + var pixelsToken = setPixelsToken["pixels"]; + var colorToken = setPixelsToken["color"]; + + if (pixelsToken != null) + { + TextureOps.ApplyPixelDataToRegion(editableTexture, pixelsToken, x, y, w, h); + } + else if (colorToken != null) + { + Color32 color = TextureOps.ParseColor32(colorToken as JArray); + int startX = Mathf.Max(0, x); + int startY = Mathf.Max(0, y); + int endX = Mathf.Min(x + w, editableTexture.width); + int endY = Mathf.Min(y + h, editableTexture.height); + + for (int py = startY; py < endY; py++) + { + for (int px = startX; px < endX; px++) + { + editableTexture.SetPixel(px, py, color); + } + } + } + else + { + UnityEngine.Object.DestroyImmediate(editableTexture); + return new ErrorResponse("setPixels requires 'color' or 'pixels'."); + } + } + + editableTexture.Apply(); + + // Save back to disk + byte[] imageData = TextureOps.EncodeTexture(editableTexture, fullPath); + if (imageData == null || imageData.Length == 0) + { + UnityEngine.Object.DestroyImmediate(editableTexture); + return new ErrorResponse($"Failed to encode texture for '{fullPath}'"); + } + File.WriteAllBytes(absolutePath, imageData); + + AssetDatabase.ImportAsset(fullPath, ImportAssetOptions.ForceUpdate); + + UnityEngine.Object.DestroyImmediate(editableTexture); + + return new SuccessResponse($"Texture modified: {fullPath}"); + } + catch (Exception e) + { + return new ErrorResponse($"Failed to modify texture: {e.Message}"); + } + } + + private static object DeleteTexture(string path) + { + if (string.IsNullOrEmpty(path)) + return new ErrorResponse("'path' is required for delete."); + + string fullPath = AssetPathUtility.SanitizeAssetPath(path); + if (!AssetExists(fullPath)) + return new ErrorResponse($"Texture not found at path: {fullPath}"); + + try + { + bool success = AssetDatabase.DeleteAsset(fullPath); + if (success) + return new SuccessResponse($"Texture deleted: {fullPath}"); + else + return new ErrorResponse($"Failed to delete texture: {fullPath}"); + } + catch (Exception e) + { + return new ErrorResponse($"Error deleting texture: {e.Message}"); + } + } + + private static object ApplyPattern(JObject @params) + { + // Reuse CreateTexture with pattern + return CreateTexture(@params, false); + } + + private static object ApplyGradient(JObject @params) + { + string path = @params["path"]?.ToString(); + if (string.IsNullOrEmpty(path)) + return new ErrorResponse("'path' is required for apply_gradient."); + + int width = @params["width"]?.ToObject() ?? 64; + int height = @params["height"]?.ToObject() ?? 64; + List warnings = new List(); + var dimensionError = ValidateDimensions(width, height, warnings); + if (dimensionError != null) + return dimensionError; + string gradientType = @params["gradientType"]?.ToString() ?? "linear"; + float angle = @params["gradientAngle"]?.ToObject() ?? 0f; + + var palette = TextureOps.ParsePalette(@params["palette"] as JArray); + if (palette == null || palette.Count < 2) + { + // Default gradient palette + palette = new List { new Color32(0, 0, 0, 255), new Color32(255, 255, 255, 255) }; + } + + string fullPath = AssetPathUtility.SanitizeAssetPath(path); + EnsureDirectoryExists(fullPath); + + Texture2D texture = null; + try + { + texture = new Texture2D(width, height, TextureFormat.RGBA32, false); + + if (gradientType == "radial") + { + ApplyRadialGradient(texture, palette); + } + else + { + ApplyLinearGradient(texture, palette, angle); + } + + texture.Apply(); + + byte[] imageData = TextureOps.EncodeTexture(texture, fullPath); + if (imageData == null || imageData.Length == 0) + { + return new ErrorResponse($"Failed to encode texture for '{fullPath}'"); + } + File.WriteAllBytes(GetAbsolutePath(fullPath), imageData); + + AssetDatabase.ImportAsset(fullPath, ImportAssetOptions.ForceUpdate); + + // Configure as sprite if requested + JToken spriteSettingsToken = @params["spriteSettings"]; + if (spriteSettingsToken != null) + { + ConfigureAsSprite(fullPath, spriteSettingsToken); + } + + foreach (var warning in warnings) + { + McpLog.Warn($"[ManageTexture] {warning}"); + } + + return new SuccessResponse( + $"Gradient texture created at '{fullPath}' ({width}x{height})", + new + { + path = fullPath, + width, + height, + gradientType, + warnings = warnings.Count > 0 ? warnings : null + } + ); + } + catch (Exception e) + { + return new ErrorResponse($"Failed to create gradient texture: {e.Message}"); + } + finally + { + if (texture != null) + UnityEngine.Object.DestroyImmediate(texture); + } + } + + private static object ApplyNoise(JObject @params) + { + string path = @params["path"]?.ToString(); + if (string.IsNullOrEmpty(path)) + return new ErrorResponse("'path' is required for apply_noise."); + + int width = @params["width"]?.ToObject() ?? 64; + int height = @params["height"]?.ToObject() ?? 64; + List warnings = new List(); + var dimensionError = ValidateDimensions(width, height, warnings); + if (dimensionError != null) + return dimensionError; + float scale = @params["noiseScale"]?.ToObject() ?? 0.1f; + int octaves = @params["octaves"]?.ToObject() ?? 1; + if (octaves <= 0) + return new ErrorResponse("octaves must be greater than 0."); + long noiseWork = (long)width * height * octaves; + if (noiseWork > MaxNoiseWork) + warnings.Add($"Noise workload exceeds recommended max {MaxNoiseWork} (got {width}x{height}x{octaves})."); + + var palette = TextureOps.ParsePalette(@params["palette"] as JArray); + if (palette == null || palette.Count < 2) + { + palette = new List { new Color32(0, 0, 0, 255), new Color32(255, 255, 255, 255) }; + } + + string fullPath = AssetPathUtility.SanitizeAssetPath(path); + EnsureDirectoryExists(fullPath); + + Texture2D texture = new Texture2D(width, height, TextureFormat.RGBA32, false); + try + { + ApplyPerlinNoise(texture, palette, scale, octaves); + + texture.Apply(); + + byte[] imageData = TextureOps.EncodeTexture(texture, fullPath); + if (imageData == null || imageData.Length == 0) + { + return new ErrorResponse($"Failed to encode texture for '{fullPath}'"); + } + File.WriteAllBytes(GetAbsolutePath(fullPath), imageData); + + AssetDatabase.ImportAsset(fullPath, ImportAssetOptions.ForceUpdate); + + // Configure as sprite if requested + JToken spriteSettingsToken = @params["spriteSettings"]; + if (spriteSettingsToken != null) + { + ConfigureAsSprite(fullPath, spriteSettingsToken); + } + + foreach (var warning in warnings) + { + McpLog.Warn($"[ManageTexture] {warning}"); + } + + return new SuccessResponse( + $"Noise texture created at '{fullPath}' ({width}x{height})", + new + { + path = fullPath, + width, + height, + noiseScale = scale, + octaves, + warnings = warnings.Count > 0 ? warnings : null + } + ); + } + catch (Exception e) + { + return new ErrorResponse($"Failed to create noise texture: {e.Message}"); + } + finally + { + if (texture != null) + UnityEngine.Object.DestroyImmediate(texture); + } + } + + // --- Pattern Helpers --- + + private static void ApplyPatternToTexture(Texture2D texture, string pattern, List palette, int patternSize) + { + if (palette == null || palette.Count == 0) + { + palette = new List { new Color32(255, 255, 255, 255), new Color32(0, 0, 0, 255) }; + } + + int width = texture.width; + int height = texture.height; + + for (int y = 0; y < height; y++) + { + for (int x = 0; x < width; x++) + { + Color32 color = GetPatternColor(x, y, pattern, palette, patternSize, width, height); + texture.SetPixel(x, y, color); + } + } + } + + private static Color32 GetPatternColor(int x, int y, string pattern, List palette, int size, int width, int height) + { + int colorIndex = 0; + + switch (pattern.ToLower()) + { + case "checkerboard": + colorIndex = ((x / size) + (y / size)) % 2; + break; + + case "stripes": + case "stripes_v": + colorIndex = (x / size) % palette.Count; + break; + + case "stripes_h": + colorIndex = (y / size) % palette.Count; + break; + + case "stripes_diag": + colorIndex = ((x + y) / size) % palette.Count; + break; + + case "dots": + int cx = (x % (size * 2)) - size; + int cy = (y % (size * 2)) - size; + bool inDot = (cx * cx + cy * cy) < (size * size / 4); + colorIndex = inDot ? 1 : 0; + break; + + case "grid": + bool onGridLine = (x % size == 0) || (y % size == 0); + colorIndex = onGridLine ? 1 : 0; + break; + + case "brick": + int row = y / size; + int offset = (row % 2) * (size / 2); + bool onBorder = ((x + offset) % size == 0) || (y % size == 0); + colorIndex = onBorder ? 1 : 0; + break; + + default: + colorIndex = 0; + break; + } + + return palette[Mathf.Clamp(colorIndex, 0, palette.Count - 1)]; + } + + // --- Gradient Helpers --- + + private static void ApplyLinearGradient(Texture2D texture, List palette, float angle) + { + int width = texture.width; + int height = texture.height; + float radians = angle * Mathf.Deg2Rad; + Vector2 dir = new Vector2(Mathf.Cos(radians), Mathf.Sin(radians)); + float denomX = Mathf.Max(1, width - 1); + float denomY = Mathf.Max(1, height - 1); + + for (int y = 0; y < height; y++) + { + for (int x = 0; x < width; x++) + { + float nx = x / denomX; + float ny = y / denomY; + float t = Vector2.Dot(new Vector2(nx, ny), dir); + t = Mathf.Clamp01((t + 1f) / 2f); + + Color32 color = LerpPalette(palette, t); + texture.SetPixel(x, y, color); + } + } + } + + private static void ApplyRadialGradient(Texture2D texture, List palette) + { + int width = texture.width; + int height = texture.height; + float cx = width / 2f; + float cy = height / 2f; + float maxDist = Mathf.Sqrt(cx * cx + cy * cy); + + for (int y = 0; y < height; y++) + { + for (int x = 0; x < width; x++) + { + float dx = x - cx; + float dy = y - cy; + float dist = Mathf.Sqrt(dx * dx + dy * dy); + float t = Mathf.Clamp01(dist / maxDist); + + Color32 color = LerpPalette(palette, t); + texture.SetPixel(x, y, color); + } + } + } + + private static Color32 LerpPalette(List palette, float t) + { + if (palette.Count == 1) return palette[0]; + if (t <= 0) return palette[0]; + if (t >= 1) return palette[palette.Count - 1]; + + float scaledT = t * (palette.Count - 1); + int index = Mathf.FloorToInt(scaledT); + float localT = scaledT - index; + + if (index >= palette.Count - 1) + return palette[palette.Count - 1]; + + Color c1 = palette[index]; + Color c2 = palette[index + 1]; + return Color.Lerp(c1, c2, localT); + } + + // --- Noise Helpers --- + + private static void ApplyPerlinNoise(Texture2D texture, List palette, float scale, int octaves) + { + int width = texture.width; + int height = texture.height; + + // Random offset to ensure different patterns + float offsetX = UnityEngine.Random.Range(0f, 1000f); + float offsetY = UnityEngine.Random.Range(0f, 1000f); + + for (int y = 0; y < height; y++) + { + for (int x = 0; x < width; x++) + { + float noiseValue = 0f; + float amplitude = 1f; + float frequency = 1f; + float maxValue = 0f; + + for (int o = 0; o < octaves; o++) + { + float sampleX = (x + offsetX) * scale * frequency; + float sampleY = (y + offsetY) * scale * frequency; + noiseValue += Mathf.PerlinNoise(sampleX, sampleY) * amplitude; + maxValue += amplitude; + amplitude *= 0.5f; + frequency *= 2f; + } + + float t = Mathf.Clamp01(noiseValue / maxValue); + Color32 color = LerpPalette(palette, t); + texture.SetPixel(x, y, color); + } + } + } + + private static void ConfigureAsSprite(string path, JToken spriteSettings) + { + TextureImporter importer = AssetImporter.GetAtPath(path) as TextureImporter; + if (importer == null) + { + McpLog.Warn($"[ManageTexture] Could not get TextureImporter for {path}"); + return; + } + + importer.textureType = TextureImporterType.Sprite; + importer.spriteImportMode = SpriteImportMode.Single; + + if (spriteSettings != null && spriteSettings.Type == JTokenType.Object) + { + var settings = spriteSettings as JObject; + + // Pivot + var pivotToken = settings["pivot"]; + if (pivotToken is JArray pivotArray && pivotArray.Count >= 2) + { + importer.spritePivot = new Vector2( + pivotArray[0].ToObject(), + pivotArray[1].ToObject() + ); + } + + // Pixels per unit + var ppuToken = settings["pixelsPerUnit"]; + if (ppuToken != null) + { + importer.spritePixelsPerUnit = ppuToken.ToObject(); + } + } + + importer.SaveAndReimport(); + } + + private static void ConfigureTextureImporter(string path, JToken importSettings) + { + TextureImporter importer = AssetImporter.GetAtPath(path) as TextureImporter; + if (importer == null) + { + McpLog.Warn($"[ManageTexture] Could not get TextureImporter for {path}"); + return; + } + + if (importSettings == null || importSettings.Type != JTokenType.Object) + { + return; + } + + var settings = importSettings as JObject; + + // Texture Type + var textureTypeToken = settings["textureType"]; + if (textureTypeToken != null) + { + string typeStr = textureTypeToken.ToString(); + if (TryParseEnum(typeStr, out var textureType)) + { + importer.textureType = textureType; + } + } + + // Texture Shape + var textureShapeToken = settings["textureShape"]; + if (textureShapeToken != null) + { + string shapeStr = textureShapeToken.ToString(); + if (TryParseEnum(shapeStr, out var textureShape)) + { + importer.textureShape = textureShape; + } + } + + // sRGB + var srgbToken = settings["sRGBTexture"]; + if (srgbToken != null) + { + importer.sRGBTexture = srgbToken.ToObject(); + } + + // Alpha Source + var alphaSourceToken = settings["alphaSource"]; + if (alphaSourceToken != null) + { + string alphaStr = alphaSourceToken.ToString(); + if (TryParseEnum(alphaStr, out var alphaSource)) + { + importer.alphaSource = alphaSource; + } + } + + // Alpha Is Transparency + var alphaTransToken = settings["alphaIsTransparency"]; + if (alphaTransToken != null) + { + importer.alphaIsTransparency = alphaTransToken.ToObject(); + } + + // Readable + var readableToken = settings["isReadable"]; + if (readableToken != null) + { + importer.isReadable = readableToken.ToObject(); + } + + // Mipmaps + var mipmapToken = settings["mipmapEnabled"]; + if (mipmapToken != null) + { + importer.mipmapEnabled = mipmapToken.ToObject(); + } + + // Mipmap Filter + var mipmapFilterToken = settings["mipmapFilter"]; + if (mipmapFilterToken != null) + { + string filterStr = mipmapFilterToken.ToString(); + if (TryParseEnum(filterStr, out var mipmapFilter)) + { + importer.mipmapFilter = mipmapFilter; + } + } + + // Wrap Mode + var wrapModeToken = settings["wrapMode"]; + if (wrapModeToken != null) + { + string wrapStr = wrapModeToken.ToString(); + if (TryParseEnum(wrapStr, out var wrapMode)) + { + importer.wrapMode = wrapMode; + } + } + + // Wrap Mode U + var wrapModeUToken = settings["wrapModeU"]; + if (wrapModeUToken != null) + { + string wrapStr = wrapModeUToken.ToString(); + if (TryParseEnum(wrapStr, out var wrapMode)) + { + importer.wrapModeU = wrapMode; + } + } + + // Wrap Mode V + var wrapModeVToken = settings["wrapModeV"]; + if (wrapModeVToken != null) + { + string wrapStr = wrapModeVToken.ToString(); + if (TryParseEnum(wrapStr, out var wrapMode)) + { + importer.wrapModeV = wrapMode; + } + } + + // Filter Mode + var filterModeToken = settings["filterMode"]; + if (filterModeToken != null) + { + string filterStr = filterModeToken.ToString(); + if (TryParseEnum(filterStr, out var filterMode)) + { + importer.filterMode = filterMode; + } + } + + // Aniso Level + var anisoToken = settings["anisoLevel"]; + if (anisoToken != null) + { + importer.anisoLevel = anisoToken.ToObject(); + } + + // Max Texture Size + var maxSizeToken = settings["maxTextureSize"]; + if (maxSizeToken != null) + { + importer.maxTextureSize = maxSizeToken.ToObject(); + } + + // Compression + var compressionToken = settings["textureCompression"]; + if (compressionToken != null) + { + string compStr = compressionToken.ToString(); + if (TryParseEnum(compStr, out var compression)) + { + importer.textureCompression = compression; + } + } + + // Crunched Compression + var crunchedToken = settings["crunchedCompression"]; + if (crunchedToken != null) + { + importer.crunchedCompression = crunchedToken.ToObject(); + } + + // Compression Quality + var qualityToken = settings["compressionQuality"]; + if (qualityToken != null) + { + importer.compressionQuality = qualityToken.ToObject(); + } + + // --- Sprite-specific settings --- + + // Sprite Import Mode + var spriteModeToken = settings["spriteImportMode"]; + if (spriteModeToken != null) + { + string modeStr = spriteModeToken.ToString(); + if (TryParseEnum(modeStr, out var spriteMode)) + { + importer.spriteImportMode = spriteMode; + } + } + + // Sprite Pixels Per Unit + var ppuToken = settings["spritePixelsPerUnit"]; + if (ppuToken != null) + { + importer.spritePixelsPerUnit = ppuToken.ToObject(); + } + + // Sprite Pivot + var pivotToken = settings["spritePivot"]; + if (pivotToken is JArray pivotArray && pivotArray.Count >= 2) + { + importer.spritePivot = new Vector2( + pivotArray[0].ToObject(), + pivotArray[1].ToObject() + ); + } + + // Apply sprite settings using TextureImporterSettings helper + TextureImporterSettings importerSettings = new TextureImporterSettings(); + importer.ReadTextureSettings(importerSettings); + + bool settingsChanged = false; + + // Sprite Mesh Type + var meshTypeToken = settings["spriteMeshType"]; + if (meshTypeToken != null) + { + string meshStr = meshTypeToken.ToString(); + if (TryParseEnum(meshStr, out var meshType)) + { + importerSettings.spriteMeshType = meshType; + settingsChanged = true; + } + } + + // Sprite Extrude + var extrudeToken = settings["spriteExtrude"]; + if (extrudeToken != null) + { + importerSettings.spriteExtrude = (uint)extrudeToken.ToObject(); + settingsChanged = true; + } + + if (settingsChanged) + { + importer.SetTextureSettings(importerSettings); + } + + importer.SaveAndReimport(); + } + + private static bool TryParseEnum(string value, out T result) where T : struct + { + // Try exact match first + if (Enum.TryParse(value, true, out result)) + { + return true; + } + + // Try without common prefixes/suffixes + string cleanValue = value.Replace("_", "").Replace("-", ""); + if (Enum.TryParse(cleanValue, true, out result)) + { + return true; + } + + result = default; + return false; + } + + private static bool AssetExists(string path) + { + return !string.IsNullOrEmpty(AssetDatabase.AssetPathToGUID(path)); + } + + private static void EnsureDirectoryExists(string assetPath) + { + string directory = Path.GetDirectoryName(assetPath); + if (!string.IsNullOrEmpty(directory) && !Directory.Exists(GetAbsolutePath(directory))) + { + Directory.CreateDirectory(GetAbsolutePath(directory)); + AssetDatabase.Refresh(ImportAssetOptions.ForceSynchronousImport); + } + } + + private static string GetAbsolutePath(string assetPath) + { + return Path.Combine(Directory.GetCurrentDirectory(), assetPath); + } + + private static string ResolveImagePath(string imagePath) + { + if (Path.IsPathRooted(imagePath)) + return imagePath; + + return Path.Combine(Directory.GetCurrentDirectory(), imagePath); + } + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/ManageTexture.cs.meta b/Packages/MCPForUnity/Editor/Tools/ManageTexture.cs.meta new file mode 100644 index 00000000..2dc1b884 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/ManageTexture.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8028b64102744ea5aad53a762d48079a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/McpForUnityToolAttribute.cs b/Packages/MCPForUnity/Editor/Tools/McpForUnityToolAttribute.cs new file mode 100644 index 00000000..e4db3a4c --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/McpForUnityToolAttribute.cs @@ -0,0 +1,107 @@ +using System; + +namespace MCPForUnity.Editor.Tools +{ + /// + /// Marks a class as an MCP tool handler + /// + [AttributeUsage(AttributeTargets.Class, AllowMultiple = false)] + public class McpForUnityToolAttribute : Attribute + { + /// + /// Tool name (if null, derived from class name) + /// + public string Name { get; set; } + + /// + /// Tool description for LLM + /// + public string Description { get; set; } + + /// + /// Whether this tool returns structured output + /// + public bool StructuredOutput { get; set; } = true; + + /// + /// Controls whether this tool is automatically registered with FastMCP. + /// Defaults to true so most tools opt-in automatically. Set to false + /// for legacy/built-in tools that already exist server-side. + /// + public bool AutoRegister { get; set; } = true; + + /// + /// Enables the polling middleware for long-running tools. When true, Unity + /// should return a PendingResponse and the Python side will poll using + /// until completion. + /// + public bool RequiresPolling { get; set; } = false; + + /// + /// The action name to use when polling for status. Defaults to "status". + /// + public string PollAction { get; set; } = "status"; + + /// + /// The command name used to route requests to this tool. + /// If not specified, defaults to the PascalCase class name converted to snake_case. + /// Kept for backward compatibility. + /// + public string CommandName + { + get => Name; + set => Name = value; + } + + /// + /// Create an MCP tool attribute with auto-generated command name. + /// The command name will be derived from the class name (PascalCase → snake_case). + /// Example: ManageAsset → manage_asset + /// + public McpForUnityToolAttribute() + { + Name = null; // Will be auto-generated + } + + /// + /// Create an MCP tool attribute with explicit command name. + /// + /// The command name (e.g., "manage_asset") + public McpForUnityToolAttribute(string name = null) + { + Name = name; + } + } + + /// + /// Describes a tool parameter + /// + [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false)] + public class ToolParameterAttribute : Attribute + { + /// + /// Parameter name (if null, derived from property/field name) + /// + public string Name { get; } + + /// + /// Parameter description for LLM + /// + public string Description { get; set; } + + /// + /// Whether this parameter is required + /// + public bool Required { get; set; } = true; + + /// + /// Default value (as string) + /// + public string DefaultValue { get; set; } + + public ToolParameterAttribute(string description) + { + Description = description; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/McpForUnityToolAttribute.cs.meta b/Packages/MCPForUnity/Editor/Tools/McpForUnityToolAttribute.cs.meta new file mode 100644 index 00000000..57242c17 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/McpForUnityToolAttribute.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 804d07b886f4e4eb39316bbef34687c7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/Prefabs.meta b/Packages/MCPForUnity/Editor/Tools/Prefabs.meta new file mode 100644 index 00000000..4fb95c50 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1bd48a1b7555c46bba168078ce0291cc +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/Prefabs/ManagePrefabs.cs b/Packages/MCPForUnity/Editor/Tools/Prefabs/ManagePrefabs.cs new file mode 100644 index 00000000..6df9d47b --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Prefabs/ManagePrefabs.cs @@ -0,0 +1,982 @@ +using System; +using System.Collections.Generic; +using System.IO; +using MCPForUnity.Editor.Helpers; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEditor.SceneManagement; +using UnityEngine; +using UnityEngine.SceneManagement; + +namespace MCPForUnity.Editor.Tools.Prefabs +{ + [McpForUnityTool("manage_prefabs", AutoRegister = false)] + /// + /// Tool to manage Unity Prefabs: create, inspect, and modify prefab assets. + /// Uses headless editing (no UI, no dialogs) for reliable automated workflows. + /// + public static class ManagePrefabs + { + // Action constants + private const string ACTION_CREATE_FROM_GAMEOBJECT = "create_from_gameobject"; + private const string ACTION_GET_INFO = "get_info"; + private const string ACTION_GET_HIERARCHY = "get_hierarchy"; + private const string ACTION_MODIFY_CONTENTS = "modify_contents"; + private const string SupportedActions = ACTION_CREATE_FROM_GAMEOBJECT + ", " + ACTION_GET_INFO + ", " + ACTION_GET_HIERARCHY + ", " + ACTION_MODIFY_CONTENTS; + + public static object HandleCommand(JObject @params) + { + if (@params == null) + { + return new ErrorResponse("Parameters cannot be null."); + } + + string action = @params["action"]?.ToString()?.ToLowerInvariant(); + if (string.IsNullOrEmpty(action)) + { + return new ErrorResponse($"Action parameter is required. Valid actions are: {SupportedActions}."); + } + + try + { + switch (action) + { + case ACTION_CREATE_FROM_GAMEOBJECT: + return CreatePrefabFromGameObject(@params); + case ACTION_GET_INFO: + return GetInfo(@params); + case ACTION_GET_HIERARCHY: + return GetHierarchy(@params); + case ACTION_MODIFY_CONTENTS: + return ModifyContents(@params); + default: + return new ErrorResponse($"Unknown action: '{action}'. Valid actions are: {SupportedActions}."); + } + } + catch (Exception e) + { + McpLog.Error($"[ManagePrefabs] Action '{action}' failed: {e}"); + return new ErrorResponse($"Internal error: {e.Message}"); + } + } + + #region Create Prefab from GameObject + + /// + /// Creates a prefab asset from a GameObject in the scene. + /// + private static object CreatePrefabFromGameObject(JObject @params) + { + // 1. Validate and parse parameters + var validation = ValidateCreatePrefabParams(@params); + if (!validation.isValid) + { + return new ErrorResponse(validation.errorMessage); + } + + string targetName = validation.targetName; + string finalPath = validation.finalPath; + bool includeInactive = validation.includeInactive; + bool replaceExisting = validation.replaceExisting; + bool unlinkIfInstance = validation.unlinkIfInstance; + + // 2. Find the source object + GameObject sourceObject = FindSceneObjectByName(targetName, includeInactive); + if (sourceObject == null) + { + return new ErrorResponse($"GameObject '{targetName}' not found in the active scene or prefab stage{(includeInactive ? " (including inactive objects)" : "")}."); + } + + // 3. Validate source object state + var objectValidation = ValidateSourceObjectForPrefab(sourceObject, unlinkIfInstance); + if (!objectValidation.isValid) + { + return new ErrorResponse(objectValidation.errorMessage); + } + + // 4. Check for path conflicts and track if file will be replaced + bool fileExistedAtPath = AssetDatabase.LoadAssetAtPath(finalPath) != null; + + if (!replaceExisting && fileExistedAtPath) + { + finalPath = AssetDatabase.GenerateUniqueAssetPath(finalPath); + McpLog.Info($"[ManagePrefabs] Generated unique path: {finalPath}"); + } + + // 5. Ensure directory exists + EnsureAssetDirectoryExists(finalPath); + + // 6. Unlink from existing prefab if needed + if (unlinkIfInstance && objectValidation.shouldUnlink) + { + try + { + // UnpackPrefabInstance requires the prefab instance root, not a child object + GameObject rootToUnlink = PrefabUtility.GetOutermostPrefabInstanceRoot(sourceObject); + if (rootToUnlink != null) + { + PrefabUtility.UnpackPrefabInstance(rootToUnlink, PrefabUnpackMode.Completely, InteractionMode.AutomatedAction); + McpLog.Info($"[ManagePrefabs] Unpacked prefab instance '{rootToUnlink.name}' before creating new prefab."); + } + } + catch (Exception e) + { + return new ErrorResponse($"Failed to unlink prefab instance: {e.Message}"); + } + } + + // 7. Create the prefab + try + { + GameObject result = CreatePrefabAsset(sourceObject, finalPath, replaceExisting); + + if (result == null) + { + return new ErrorResponse($"Failed to create prefab asset at '{finalPath}'."); + } + + // 8. Select the newly created instance + Selection.activeGameObject = result; + + return new SuccessResponse( + $"Prefab created at '{finalPath}' and instance linked.", + new + { + prefabPath = finalPath, + instanceId = result.GetInstanceID(), + instanceName = result.name, + wasUnlinked = unlinkIfInstance && objectValidation.shouldUnlink, + wasReplaced = replaceExisting && fileExistedAtPath, + componentCount = result.GetComponents().Length, + childCount = result.transform.childCount + } + ); + } + catch (Exception e) + { + McpLog.Error($"[ManagePrefabs] Error creating prefab at '{finalPath}': {e}"); + return new ErrorResponse($"Error saving prefab asset: {e.Message}"); + } + } + + /// + /// Validates parameters for creating a prefab from GameObject. + /// + private static (bool isValid, string errorMessage, string targetName, string finalPath, bool includeInactive, bool replaceExisting, bool unlinkIfInstance) + ValidateCreatePrefabParams(JObject @params) + { + string targetName = @params["target"]?.ToString() ?? @params["name"]?.ToString(); + if (string.IsNullOrEmpty(targetName)) + { + return (false, "'target' parameter is required for create_from_gameobject.", null, null, false, false, false); + } + + string requestedPath = @params["prefabPath"]?.ToString(); + if (string.IsNullOrWhiteSpace(requestedPath)) + { + return (false, "'prefabPath' parameter is required for create_from_gameobject.", targetName, null, false, false, false); + } + + string sanitizedPath = AssetPathUtility.SanitizeAssetPath(requestedPath); + if (sanitizedPath == null) + { + return (false, $"Invalid prefab path (path traversal detected): '{requestedPath}'", targetName, null, false, false, false); + } + if (string.IsNullOrEmpty(sanitizedPath)) + { + return (false, $"Invalid prefab path '{requestedPath}'. Path cannot be empty.", targetName, null, false, false, false); + } + if (!sanitizedPath.EndsWith(".prefab", StringComparison.OrdinalIgnoreCase)) + { + sanitizedPath += ".prefab"; + } + + // Validate path is within Assets folder + if (!sanitizedPath.StartsWith("Assets/", StringComparison.OrdinalIgnoreCase)) + { + return (false, $"Prefab path must be within the Assets folder. Got: '{sanitizedPath}'", targetName, null, false, false, false); + } + + bool includeInactive = @params["searchInactive"]?.ToObject() ?? false; + bool replaceExisting = @params["allowOverwrite"]?.ToObject() ?? false; + bool unlinkIfInstance = @params["unlinkIfInstance"]?.ToObject() ?? false; + + return (true, null, targetName, sanitizedPath, includeInactive, replaceExisting, unlinkIfInstance); + } + + /// + /// Validates source object can be converted to prefab. + /// + private static (bool isValid, string errorMessage, bool shouldUnlink, string existingPrefabPath) + ValidateSourceObjectForPrefab(GameObject sourceObject, bool unlinkIfInstance) + { + // Check if this is a Prefab Asset (the .prefab file itself in the editor) + if (PrefabUtility.IsPartOfPrefabAsset(sourceObject)) + { + return (false, + $"GameObject '{sourceObject.name}' is part of a prefab asset. " + + "Open the prefab stage to save changes instead.", + false, null); + } + + // Check if this is already a Prefab Instance + PrefabInstanceStatus status = PrefabUtility.GetPrefabInstanceStatus(sourceObject); + if (status != PrefabInstanceStatus.NotAPrefab) + { + string existingPath = PrefabUtility.GetPrefabAssetPathOfNearestInstanceRoot(sourceObject); + + if (!unlinkIfInstance) + { + return (false, + $"GameObject '{sourceObject.name}' is already linked to prefab '{existingPath}'. " + + "Set 'unlinkIfInstance' to true to unlink it first, or modify the existing prefab instead.", + false, existingPath); + } + + // Needs to be unlinked + return (true, null, true, existingPath); + } + + return (true, null, false, null); + } + + /// + /// Creates a prefab asset from a GameObject. + /// + private static GameObject CreatePrefabAsset(GameObject sourceObject, string path, bool replaceExisting) + { + GameObject result = PrefabUtility.SaveAsPrefabAssetAndConnect( + sourceObject, + path, + InteractionMode.AutomatedAction + ); + + string action = replaceExisting ? "Replaced existing" : "Created new"; + McpLog.Info($"[ManagePrefabs] {action} prefab at '{path}'."); + + if (result != null) + { + AssetDatabase.SaveAssets(); + AssetDatabase.Refresh(); + } + + return result; + } + + #endregion + + /// + /// Ensures the directory for an asset path exists, creating it if necessary. + /// + private static void EnsureAssetDirectoryExists(string assetPath) + { + string directory = Path.GetDirectoryName(assetPath); + if (string.IsNullOrEmpty(directory)) + { + return; + } + + // Use Application.dataPath for more reliable path resolution + // Application.dataPath points to the Assets folder (e.g., ".../ProjectName/Assets") + string assetsPath = Application.dataPath; + string projectRoot = Path.GetDirectoryName(assetsPath); + string fullDirectory = Path.Combine(projectRoot, directory); + + if (!Directory.Exists(fullDirectory)) + { + Directory.CreateDirectory(fullDirectory); + AssetDatabase.Refresh(ImportAssetOptions.ForceSynchronousImport); + McpLog.Info($"[ManagePrefabs] Created directory: {directory}"); + } + } + + /// + /// Finds a GameObject by name in the active scene or current prefab stage. + /// + private static GameObject FindSceneObjectByName(string name, bool includeInactive) + { + // First check if we're in Prefab Stage + PrefabStage stage = PrefabStageUtility.GetCurrentPrefabStage(); + if (stage?.prefabContentsRoot != null) + { + foreach (Transform transform in stage.prefabContentsRoot.GetComponentsInChildren(includeInactive)) + { + if (transform.name == name && (includeInactive || transform.gameObject.activeSelf)) + { + return transform.gameObject; + } + } + } + + // Search in the active scene + Scene activeScene = SceneManager.GetActiveScene(); + foreach (GameObject root in activeScene.GetRootGameObjects()) + { + // Check the root object itself + if (root.name == name && (includeInactive || root.activeSelf)) + { + return root; + } + + // Check children + foreach (Transform transform in root.GetComponentsInChildren(includeInactive)) + { + if (transform.name == name && (includeInactive || transform.gameObject.activeSelf)) + { + return transform.gameObject; + } + } + } + + return null; + } + + #region Read Operations + + /// + /// Gets basic metadata information about a prefab asset. + /// + private static object GetInfo(JObject @params) + { + string prefabPath = @params["prefabPath"]?.ToString() ?? @params["path"]?.ToString(); + if (string.IsNullOrEmpty(prefabPath)) + { + return new ErrorResponse("'prefabPath' parameter is required for get_info."); + } + + string sanitizedPath = AssetPathUtility.SanitizeAssetPath(prefabPath); + if (string.IsNullOrEmpty(sanitizedPath)) + { + return new ErrorResponse($"Invalid prefab path: '{prefabPath}'."); + } + GameObject prefabAsset = AssetDatabase.LoadAssetAtPath(sanitizedPath); + if (prefabAsset == null) + { + return new ErrorResponse($"No prefab asset found at path '{sanitizedPath}'."); + } + + string guid = PrefabUtilityHelper.GetPrefabGUID(sanitizedPath); + PrefabAssetType assetType = PrefabUtility.GetPrefabAssetType(prefabAsset); + string prefabTypeString = assetType.ToString(); + var componentTypes = PrefabUtilityHelper.GetComponentTypeNames(prefabAsset); + int childCount = PrefabUtilityHelper.CountChildrenRecursive(prefabAsset.transform); + var (isVariant, parentPrefab, _) = PrefabUtilityHelper.GetVariantInfo(prefabAsset); + + return new SuccessResponse( + $"Successfully retrieved prefab info.", + new + { + assetPath = sanitizedPath, + guid = guid, + prefabType = prefabTypeString, + rootObjectName = prefabAsset.name, + rootComponentTypes = componentTypes, + childCount = childCount, + isVariant = isVariant, + parentPrefab = parentPrefab + } + ); + } + + /// + /// Gets the hierarchical structure of a prefab asset. + /// Returns all objects in the prefab for full client-side filtering and search. + /// + private static object GetHierarchy(JObject @params) + { + string prefabPath = @params["prefabPath"]?.ToString() ?? @params["path"]?.ToString(); + if (string.IsNullOrEmpty(prefabPath)) + { + return new ErrorResponse("'prefabPath' parameter is required for get_hierarchy."); + } + + string sanitizedPath = AssetPathUtility.SanitizeAssetPath(prefabPath); + if (string.IsNullOrEmpty(sanitizedPath)) + { + return new ErrorResponse($"Invalid prefab path '{prefabPath}'. Path traversal sequences are not allowed."); + } + + // Load prefab contents in background (without opening stage UI) + GameObject prefabContents = PrefabUtility.LoadPrefabContents(sanitizedPath); + if (prefabContents == null) + { + return new ErrorResponse($"Failed to load prefab contents from '{sanitizedPath}'."); + } + + try + { + // Build complete hierarchy items (no pagination) + var allItems = BuildHierarchyItems(prefabContents.transform, sanitizedPath); + + return new SuccessResponse( + $"Successfully retrieved prefab hierarchy. Found {allItems.Count} objects.", + new + { + prefabPath = sanitizedPath, + total = allItems.Count, + items = allItems + } + ); + } + finally + { + // Always unload prefab contents to free memory + PrefabUtility.UnloadPrefabContents(prefabContents); + } + } + + #endregion + + #region Headless Prefab Editing + + /// + /// Modifies a prefab's contents directly without opening the prefab stage. + /// This is ideal for automated/agentic workflows as it avoids UI, dirty flags, and dialogs. + /// + private static object ModifyContents(JObject @params) + { + string prefabPath = @params["prefabPath"]?.ToString() ?? @params["path"]?.ToString(); + if (string.IsNullOrEmpty(prefabPath)) + { + return new ErrorResponse("'prefabPath' parameter is required for modify_contents."); + } + + string sanitizedPath = AssetPathUtility.SanitizeAssetPath(prefabPath); + if (string.IsNullOrEmpty(sanitizedPath)) + { + return new ErrorResponse($"Invalid prefab path '{prefabPath}'. Path traversal sequences are not allowed."); + } + + // Load prefab contents in isolated context (no UI) + GameObject prefabContents = PrefabUtility.LoadPrefabContents(sanitizedPath); + if (prefabContents == null) + { + return new ErrorResponse($"Failed to load prefab contents from '{sanitizedPath}'."); + } + + try + { + // Find target object within the prefab (defaults to root) + string targetName = @params["target"]?.ToString(); + GameObject targetGo = FindInPrefabContents(prefabContents, targetName); + + if (targetGo == null) + { + string searchedFor = string.IsNullOrEmpty(targetName) ? "root" : $"'{targetName}'"; + return new ErrorResponse($"Target {searchedFor} not found in prefab '{sanitizedPath}'."); + } + + // Apply modifications + var modifyResult = ApplyModificationsToPrefabObject(targetGo, @params, prefabContents); + if (modifyResult.error != null) + { + return modifyResult.error; + } + + // Skip saving when no modifications were made to avoid unnecessary asset writes + if (!modifyResult.modified) + { + return new SuccessResponse( + $"Prefab '{sanitizedPath}' is already up to date; no changes were applied.", + new + { + prefabPath = sanitizedPath, + targetName = targetGo.name, + modified = false + } + ); + } + + // Save the prefab + bool success; + PrefabUtility.SaveAsPrefabAsset(prefabContents, sanitizedPath, out success); + + if (!success) + { + return new ErrorResponse($"Failed to save prefab asset at '{sanitizedPath}'."); + } + + AssetDatabase.Refresh(); + + McpLog.Info($"[ManagePrefabs] Successfully modified and saved prefab '{sanitizedPath}' (headless)."); + + return new SuccessResponse( + $"Prefab '{sanitizedPath}' modified and saved successfully.", + new + { + prefabPath = sanitizedPath, + targetName = targetGo.name, + modified = modifyResult.modified, + transform = new + { + position = new { x = targetGo.transform.localPosition.x, y = targetGo.transform.localPosition.y, z = targetGo.transform.localPosition.z }, + rotation = new { x = targetGo.transform.localEulerAngles.x, y = targetGo.transform.localEulerAngles.y, z = targetGo.transform.localEulerAngles.z }, + scale = new { x = targetGo.transform.localScale.x, y = targetGo.transform.localScale.y, z = targetGo.transform.localScale.z } + }, + componentTypes = PrefabUtilityHelper.GetComponentTypeNames(targetGo) + } + ); + } + finally + { + // Always unload prefab contents to free memory + PrefabUtility.UnloadPrefabContents(prefabContents); + } + } + + /// + /// Finds a GameObject within loaded prefab contents by name or path. + /// + private static GameObject FindInPrefabContents(GameObject prefabContents, string target) + { + if (string.IsNullOrEmpty(target)) + { + // Return root if no target specified + return prefabContents; + } + + // Try to find by path first (e.g., "Parent/Child/Target") + if (target.Contains("/")) + { + Transform found = prefabContents.transform.Find(target); + if (found != null) + { + return found.gameObject; + } + + // If path starts with root name, try without it + if (target.StartsWith(prefabContents.name + "/")) + { + string relativePath = target.Substring(prefabContents.name.Length + 1); + found = prefabContents.transform.Find(relativePath); + if (found != null) + { + return found.gameObject; + } + } + } + + // Check if target matches root name + if (prefabContents.name == target) + { + return prefabContents; + } + + // Search by name in hierarchy + foreach (Transform t in prefabContents.GetComponentsInChildren(true)) + { + if (t.gameObject.name == target) + { + return t.gameObject; + } + } + + return null; + } + + /// + /// Applies modifications to a GameObject within loaded prefab contents. + /// Returns (modified: bool, error: ErrorResponse or null). + /// + private static (bool modified, ErrorResponse error) ApplyModificationsToPrefabObject(GameObject targetGo, JObject @params, GameObject prefabRoot) + { + bool modified = false; + + // Name change + string newName = @params["name"]?.ToString(); + if (!string.IsNullOrEmpty(newName) && targetGo.name != newName) + { + // If renaming the root, this will affect the prefab asset name on save + targetGo.name = newName; + modified = true; + } + + // Active state + bool? setActive = @params["setActive"]?.ToObject(); + if (setActive.HasValue && targetGo.activeSelf != setActive.Value) + { + targetGo.SetActive(setActive.Value); + modified = true; + } + + // Tag + string tag = @params["tag"]?.ToString(); + if (tag != null && targetGo.tag != tag) + { + string tagToSet = string.IsNullOrEmpty(tag) ? "Untagged" : tag; + try + { + targetGo.tag = tagToSet; + modified = true; + } + catch (Exception ex) + { + return (false, new ErrorResponse($"Failed to set tag to '{tagToSet}': {ex.Message}")); + } + } + + // Layer + string layerName = @params["layer"]?.ToString(); + if (!string.IsNullOrEmpty(layerName)) + { + int layerId = LayerMask.NameToLayer(layerName); + if (layerId == -1) + { + return (false, new ErrorResponse($"Invalid layer specified: '{layerName}'. Use a valid layer name.")); + } + if (targetGo.layer != layerId) + { + targetGo.layer = layerId; + modified = true; + } + } + + // Transform: position, rotation, scale + Vector3? position = VectorParsing.ParseVector3(@params["position"]); + Vector3? rotation = VectorParsing.ParseVector3(@params["rotation"]); + Vector3? scale = VectorParsing.ParseVector3(@params["scale"]); + + if (position.HasValue && targetGo.transform.localPosition != position.Value) + { + targetGo.transform.localPosition = position.Value; + modified = true; + } + if (rotation.HasValue && targetGo.transform.localEulerAngles != rotation.Value) + { + targetGo.transform.localEulerAngles = rotation.Value; + modified = true; + } + if (scale.HasValue && targetGo.transform.localScale != scale.Value) + { + targetGo.transform.localScale = scale.Value; + modified = true; + } + + // Parent change (within prefab hierarchy) + JToken parentToken = @params["parent"]; + if (parentToken != null) + { + string parentTarget = parentToken.ToString(); + Transform newParent = null; + + if (!string.IsNullOrEmpty(parentTarget)) + { + GameObject parentGo = FindInPrefabContents(prefabRoot, parentTarget); + if (parentGo == null) + { + return (false, new ErrorResponse($"Parent '{parentTarget}' not found in prefab.")); + } + if (parentGo.transform.IsChildOf(targetGo.transform)) + { + return (false, new ErrorResponse($"Cannot parent '{targetGo.name}' to '{parentGo.name}' as it would create a hierarchy loop.")); + } + newParent = parentGo.transform; + } + + if (targetGo.transform.parent != newParent) + { + targetGo.transform.SetParent(newParent, true); + modified = true; + } + } + + // Components to add + if (@params["componentsToAdd"] is JArray componentsToAdd) + { + foreach (var compToken in componentsToAdd) + { + string typeName = compToken.Type == JTokenType.String + ? compToken.ToString() + : (compToken as JObject)?["typeName"]?.ToString(); + + if (!string.IsNullOrEmpty(typeName)) + { + if (!ComponentResolver.TryResolve(typeName, out Type componentType, out string error)) + { + return (false, new ErrorResponse($"Component type '{typeName}' not found: {error}")); + } + targetGo.AddComponent(componentType); + modified = true; + } + } + } + + // Components to remove + if (@params["componentsToRemove"] is JArray componentsToRemove) + { + foreach (var compToken in componentsToRemove) + { + string typeName = compToken.ToString(); + if (!string.IsNullOrEmpty(typeName)) + { + if (!ComponentResolver.TryResolve(typeName, out Type componentType, out string error)) + { + return (false, new ErrorResponse($"Component type '{typeName}' not found: {error}")); + } + Component comp = targetGo.GetComponent(componentType); + if (comp != null) + { + UnityEngine.Object.DestroyImmediate(comp); + modified = true; + } + } + } + } + + // Create child GameObjects (supports single object or array) + JToken createChildToken = @params["createChild"] ?? @params["create_child"]; + if (createChildToken != null) + { + // Handle array of children + if (createChildToken is JArray childArray) + { + foreach (var childToken in childArray) + { + var childResult = CreateSingleChildInPrefab(childToken, targetGo, prefabRoot); + if (childResult.error != null) + { + return (false, childResult.error); + } + if (childResult.created) + { + modified = true; + } + } + } + else + { + // Handle single child object + var childResult = CreateSingleChildInPrefab(createChildToken, targetGo, prefabRoot); + if (childResult.error != null) + { + return (false, childResult.error); + } + if (childResult.created) + { + modified = true; + } + } + } + + return (modified, null); + } + + /// + /// Creates a single child GameObject within the prefab contents. + /// + private static (bool created, ErrorResponse error) CreateSingleChildInPrefab(JToken createChildToken, GameObject defaultParent, GameObject prefabRoot) + { + JObject childParams; + if (createChildToken is JObject obj) + { + childParams = obj; + } + else + { + return (false, new ErrorResponse("'create_child' must be an object with child properties.")); + } + + // Required: name + string childName = childParams["name"]?.ToString(); + if (string.IsNullOrEmpty(childName)) + { + return (false, new ErrorResponse("'create_child.name' is required.")); + } + + // Optional: parent (defaults to the target object) + string parentName = childParams["parent"]?.ToString(); + Transform parentTransform = defaultParent.transform; + if (!string.IsNullOrEmpty(parentName)) + { + GameObject parentGo = FindInPrefabContents(prefabRoot, parentName); + if (parentGo == null) + { + return (false, new ErrorResponse($"Parent '{parentName}' not found in prefab for create_child.")); + } + parentTransform = parentGo.transform; + } + + // Create the GameObject + GameObject newChild; + string primitiveType = childParams["primitiveType"]?.ToString() ?? childParams["primitive_type"]?.ToString(); + if (!string.IsNullOrEmpty(primitiveType)) + { + try + { + PrimitiveType type = (PrimitiveType)Enum.Parse(typeof(PrimitiveType), primitiveType, true); + newChild = GameObject.CreatePrimitive(type); + newChild.name = childName; + } + catch (ArgumentException) + { + return (false, new ErrorResponse($"Invalid primitive type: '{primitiveType}'. Valid types: {string.Join(", ", Enum.GetNames(typeof(PrimitiveType)))}")); + } + } + else + { + newChild = new GameObject(childName); + } + + // Set parent + newChild.transform.SetParent(parentTransform, false); + + // Apply transform properties + Vector3? position = VectorParsing.ParseVector3(childParams["position"]); + Vector3? rotation = VectorParsing.ParseVector3(childParams["rotation"]); + Vector3? scale = VectorParsing.ParseVector3(childParams["scale"]); + + if (position.HasValue) + { + newChild.transform.localPosition = position.Value; + } + if (rotation.HasValue) + { + newChild.transform.localEulerAngles = rotation.Value; + } + if (scale.HasValue) + { + newChild.transform.localScale = scale.Value; + } + + // Add components + JArray componentsToAdd = childParams["componentsToAdd"] as JArray ?? childParams["components_to_add"] as JArray; + if (componentsToAdd != null) + { + for (int i = 0; i < componentsToAdd.Count; i++) + { + var compToken = componentsToAdd[i]; + string typeName = compToken.Type == JTokenType.String + ? compToken.ToString() + : (compToken as JObject)?["typeName"]?.ToString(); + + if (string.IsNullOrEmpty(typeName)) + { + // Clean up partially created child + UnityEngine.Object.DestroyImmediate(newChild); + return (false, new ErrorResponse($"create_child.components_to_add[{i}] must be a string or object with 'typeName' field, got {compToken.Type}")); + } + + if (!ComponentResolver.TryResolve(typeName, out Type componentType, out string error)) + { + // Clean up partially created child + UnityEngine.Object.DestroyImmediate(newChild); + return (false, new ErrorResponse($"Component type '{typeName}' not found for create_child: {error}")); + } + newChild.AddComponent(componentType); + } + } + + // Set tag if specified + string tag = childParams["tag"]?.ToString(); + if (!string.IsNullOrEmpty(tag)) + { + try + { + newChild.tag = tag; + } + catch (Exception ex) + { + UnityEngine.Object.DestroyImmediate(newChild); + return (false, new ErrorResponse($"Failed to set tag '{tag}' on child '{childName}': {ex.Message}")); + } + } + + // Set layer if specified + string layerName = childParams["layer"]?.ToString(); + if (!string.IsNullOrEmpty(layerName)) + { + int layerId = LayerMask.NameToLayer(layerName); + if (layerId == -1) + { + UnityEngine.Object.DestroyImmediate(newChild); + return (false, new ErrorResponse($"Invalid layer '{layerName}' for child '{childName}'. Use a valid layer name.")); + } + newChild.layer = layerId; + } + + // Set active state + bool? setActive = childParams["setActive"]?.ToObject() ?? childParams["set_active"]?.ToObject(); + if (setActive.HasValue) + { + newChild.SetActive(setActive.Value); + } + + McpLog.Info($"[ManagePrefabs] Created child '{childName}' under '{parentTransform.name}' in prefab."); + return (true, null); + } + + #endregion + + #region Hierarchy Builder + + /// + /// Builds a flat list of hierarchy items from a transform root. + /// + /// The root transform of the prefab. + /// Asset path of the main prefab. + /// List of hierarchy items with prefab information. + private static List BuildHierarchyItems(Transform root, string mainPrefabPath) + { + var items = new List(); + BuildHierarchyItemsRecursive(root, root, mainPrefabPath, "", items); + return items; + } + + /// + /// Recursively builds hierarchy items. + /// + /// Current transform being processed. + /// Root transform of the main prefab asset. + /// Asset path of the main prefab. + /// Parent path for building full hierarchy path. + /// List to accumulate hierarchy items. + private static void BuildHierarchyItemsRecursive(Transform transform, Transform mainPrefabRoot, string mainPrefabPath, string parentPath, List items) + { + if (transform == null) return; + + string name = transform.gameObject.name; + string path = string.IsNullOrEmpty(parentPath) ? name : $"{parentPath}/{name}"; + int instanceId = transform.gameObject.GetInstanceID(); + bool activeSelf = transform.gameObject.activeSelf; + int childCount = transform.childCount; + var componentTypes = PrefabUtilityHelper.GetComponentTypeNames(transform.gameObject); + + // Prefab information + bool isNestedPrefab = PrefabUtility.IsAnyPrefabInstanceRoot(transform.gameObject); + bool isPrefabRoot = transform == mainPrefabRoot; + int nestingDepth = isPrefabRoot ? 0 : PrefabUtilityHelper.GetPrefabNestingDepth(transform.gameObject, mainPrefabRoot); + string parentPrefabPath = isNestedPrefab && !isPrefabRoot + ? PrefabUtilityHelper.GetParentPrefabPath(transform.gameObject, mainPrefabRoot) + : null; + string nestedPrefabPath = isNestedPrefab ? PrefabUtilityHelper.GetNestedPrefabPath(transform.gameObject) : null; + + var item = new + { + name = name, + instanceId = instanceId, + path = path, + activeSelf = activeSelf, + childCount = childCount, + componentTypes = componentTypes, + prefab = new + { + isRoot = isPrefabRoot, + isNestedRoot = isNestedPrefab, + nestingDepth = nestingDepth, + assetPath = isNestedPrefab ? nestedPrefabPath : mainPrefabPath, + parentPath = parentPrefabPath + } + }; + + items.Add(item); + + // Recursively process children + foreach (Transform child in transform) + { + BuildHierarchyItemsRecursive(child, mainPrefabRoot, mainPrefabPath, path, items); + } + } + + #endregion + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/Prefabs/ManagePrefabs.cs.meta b/Packages/MCPForUnity/Editor/Tools/Prefabs/ManagePrefabs.cs.meta new file mode 100644 index 00000000..27182e77 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Prefabs/ManagePrefabs.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c14e76b2aa7bb4570a88903b061e946e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/ReadConsole.cs b/Packages/MCPForUnity/Editor/Tools/ReadConsole.cs new file mode 100644 index 00000000..342f7b1f --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/ReadConsole.cs @@ -0,0 +1,641 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using MCPForUnity.Editor.Helpers; // For Response class +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEditorInternal; +using UnityEngine; + +namespace MCPForUnity.Editor.Tools +{ + /// + /// Handles reading and clearing Unity Editor console log entries. + /// Uses reflection to access internal LogEntry methods/properties. + /// + [McpForUnityTool("read_console", AutoRegister = false)] + public static class ReadConsole + { + // (Calibration removed) + + // Reflection members for accessing internal LogEntry data + // private static MethodInfo _getEntriesMethod; // Removed as it's unused and fails reflection + private static MethodInfo _startGettingEntriesMethod; + private static MethodInfo _endGettingEntriesMethod; // Renamed from _stopGettingEntriesMethod, trying End... + private static MethodInfo _clearMethod; + private static MethodInfo _getCountMethod; + private static MethodInfo _getEntryMethod; + private static FieldInfo _modeField; + private static FieldInfo _messageField; + private static FieldInfo _fileField; + private static FieldInfo _lineField; + private static FieldInfo _instanceIdField; + + // Note: Timestamp is not directly available in LogEntry; need to parse message or find alternative? + + // Static constructor for reflection setup + static ReadConsole() + { + try + { + Type logEntriesType = typeof(EditorApplication).Assembly.GetType( + "UnityEditor.LogEntries" + ); + if (logEntriesType == null) + throw new Exception("Could not find internal type UnityEditor.LogEntries"); + + + + // Include NonPublic binding flags as internal APIs might change accessibility + BindingFlags staticFlags = + BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic; + BindingFlags instanceFlags = + BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic; + + _startGettingEntriesMethod = logEntriesType.GetMethod( + "StartGettingEntries", + staticFlags + ); + if (_startGettingEntriesMethod == null) + throw new Exception("Failed to reflect LogEntries.StartGettingEntries"); + + // Try reflecting EndGettingEntries based on warning message + _endGettingEntriesMethod = logEntriesType.GetMethod( + "EndGettingEntries", + staticFlags + ); + if (_endGettingEntriesMethod == null) + throw new Exception("Failed to reflect LogEntries.EndGettingEntries"); + + _clearMethod = logEntriesType.GetMethod("Clear", staticFlags); + if (_clearMethod == null) + throw new Exception("Failed to reflect LogEntries.Clear"); + + _getCountMethod = logEntriesType.GetMethod("GetCount", staticFlags); + if (_getCountMethod == null) + throw new Exception("Failed to reflect LogEntries.GetCount"); + + _getEntryMethod = logEntriesType.GetMethod("GetEntryInternal", staticFlags); + if (_getEntryMethod == null) + throw new Exception("Failed to reflect LogEntries.GetEntryInternal"); + + Type logEntryType = typeof(EditorApplication).Assembly.GetType( + "UnityEditor.LogEntry" + ); + if (logEntryType == null) + throw new Exception("Could not find internal type UnityEditor.LogEntry"); + + _modeField = logEntryType.GetField("mode", instanceFlags); + if (_modeField == null) + throw new Exception("Failed to reflect LogEntry.mode"); + + _messageField = logEntryType.GetField("message", instanceFlags); + if (_messageField == null) + throw new Exception("Failed to reflect LogEntry.message"); + + _fileField = logEntryType.GetField("file", instanceFlags); + if (_fileField == null) + throw new Exception("Failed to reflect LogEntry.file"); + + _lineField = logEntryType.GetField("line", instanceFlags); + if (_lineField == null) + throw new Exception("Failed to reflect LogEntry.line"); + + _instanceIdField = logEntryType.GetField("instanceID", instanceFlags); + if (_instanceIdField == null) + throw new Exception("Failed to reflect LogEntry.instanceID"); + + // (Calibration removed) + + } + catch (Exception e) + { + McpLog.Error( + $"[ReadConsole] Static Initialization Failed: Could not setup reflection for LogEntries/LogEntry. Console reading/clearing will likely fail. Specific Error: {e.Message}" + ); + // Set members to null to prevent NullReferenceExceptions later, HandleCommand should check this. + _startGettingEntriesMethod = + _endGettingEntriesMethod = + _clearMethod = + _getCountMethod = + _getEntryMethod = + null; + _modeField = _messageField = _fileField = _lineField = _instanceIdField = null; + } + } + + // --- Main Handler --- + + public static object HandleCommand(JObject @params) + { + // Check if ALL required reflection members were successfully initialized. + if ( + _startGettingEntriesMethod == null + || _endGettingEntriesMethod == null + || _clearMethod == null + || _getCountMethod == null + || _getEntryMethod == null + || _modeField == null + || _messageField == null + || _fileField == null + || _lineField == null + || _instanceIdField == null + ) + { + // Log the error here as well for easier debugging in Unity Console + McpLog.Error( + "[ReadConsole] HandleCommand called but reflection members are not initialized. Static constructor might have failed silently or there's an issue." + ); + return new ErrorResponse( + "ReadConsole handler failed to initialize due to reflection errors. Cannot access console logs." + ); + } + + if (@params == null) + { + return new ErrorResponse("Parameters cannot be null."); + } + + var p = new ToolParams(@params); + string action = p.Get("action", "get").ToLower(); + + try + { + if (action == "clear") + { + return ClearConsole(); + } + else if (action == "get") + { + // Extract parameters for 'get' + var types = + (p.GetRaw("types") as JArray)?.Select(t => t.ToString().ToLower()).ToList() + ?? new List { "error", "warning" }; + int? count = p.GetInt("count"); + int? pageSize = p.GetInt("pageSize"); + int? cursor = p.GetInt("cursor"); + string filterText = p.Get("filterText"); + string sinceTimestampStr = p.Get("sinceTimestamp"); // TODO: Implement timestamp filtering + string format = p.Get("format", "plain").ToLower(); + bool includeStacktrace = p.GetBool("includeStacktrace", false); + + if (types.Contains("all")) + { + types = new List { "error", "warning", "log" }; // Expand 'all' + } + + if (!string.IsNullOrEmpty(sinceTimestampStr)) + { + McpLog.Warn( + "[ReadConsole] Filtering by 'since_timestamp' is not currently implemented." + ); + // Need a way to get timestamp per log entry. + } + + return GetConsoleEntries( + types, + count, + pageSize, + cursor, + filterText, + format, + includeStacktrace + ); + } + else + { + return new ErrorResponse( + $"Unknown action: '{action}'. Valid actions are 'get' or 'clear'." + ); + } + } + catch (Exception e) + { + McpLog.Error($"[ReadConsole] Action '{action}' failed: {e}"); + return new ErrorResponse($"Internal error processing action '{action}': {e.Message}"); + } + } + + // --- Action Implementations --- + + private static object ClearConsole() + { + try + { + _clearMethod.Invoke(null, null); // Static method, no instance, no parameters + return new SuccessResponse("Console cleared successfully."); + } + catch (Exception e) + { + McpLog.Error($"[ReadConsole] Failed to clear console: {e}"); + return new ErrorResponse($"Failed to clear console: {e.Message}"); + } + } + + /// + /// Retrieves console log entries with optional filtering and paging. + /// + /// Log types to include (e.g., "error", "warning", "log"). + /// Maximum entries to return in non-paging mode. Ignored when paging is active. + /// Number of entries per page. Defaults to 50 when omitted. + /// Starting index for paging (0-based). Defaults to 0. + /// Optional text filter (case-insensitive substring match). + /// Output format: "plain", "detailed", or "json". + /// Whether to include stack traces in the output. + /// A success response with entries, or an error response. + private static object GetConsoleEntries( + List types, + int? count, + int? pageSize, + int? cursor, + string filterText, + string format, + bool includeStacktrace + ) + { + List formattedEntries = new List(); + int retrievedCount = 0; + int totalMatches = 0; + bool usePaging = pageSize.HasValue || cursor.HasValue; + // pageSize defaults to 50 when omitted; count is the overall non-paging limit only + int resolvedPageSize = Mathf.Clamp(pageSize ?? 50, 1, 500); + int resolvedCursor = Mathf.Max(0, cursor ?? 0); + int pageEndExclusive = resolvedCursor + resolvedPageSize; + + try + { + // LogEntries requires calling Start/Stop around GetEntries/GetEntryInternal + _startGettingEntriesMethod.Invoke(null, null); + + int totalEntries = (int)_getCountMethod.Invoke(null, null); + // Create instance to pass to GetEntryInternal - Ensure the type is correct + Type logEntryType = typeof(EditorApplication).Assembly.GetType( + "UnityEditor.LogEntry" + ); + if (logEntryType == null) + throw new Exception( + "Could not find internal type UnityEditor.LogEntry during GetConsoleEntries." + ); + object logEntryInstance = Activator.CreateInstance(logEntryType); + + for (int i = 0; i < totalEntries; i++) + { + // Get the entry data into our instance using reflection + _getEntryMethod.Invoke(null, new object[] { i, logEntryInstance }); + + // Extract data using reflection + int mode = (int)_modeField.GetValue(logEntryInstance); + string message = (string)_messageField.GetValue(logEntryInstance); + string file = (string)_fileField.GetValue(logEntryInstance); + + int line = (int)_lineField.GetValue(logEntryInstance); + // int instanceId = (int)_instanceIdField.GetValue(logEntryInstance); + + if (string.IsNullOrEmpty(message)) + { + continue; // Skip empty messages + } + + // (Calibration removed) + + // --- Filtering --- + // Prefer classifying severity from message/stacktrace; fallback to mode bits if needed + LogType unityType = InferTypeFromMessage(message); + bool isExplicitDebug = IsExplicitDebugLog(message); + if (!isExplicitDebug && unityType == LogType.Log) + { + unityType = GetLogTypeFromMode(mode); + } + + bool want; + // Treat Exception/Assert as errors for filtering convenience + if (unityType == LogType.Exception) + { + want = types.Contains("error") || types.Contains("exception"); + } + else if (unityType == LogType.Assert) + { + want = types.Contains("error") || types.Contains("assert"); + } + else + { + want = types.Contains(unityType.ToString().ToLowerInvariant()); + } + + if (!want) continue; + + // Filter by text (case-insensitive) + if ( + !string.IsNullOrEmpty(filterText) + && message.IndexOf(filterText, StringComparison.OrdinalIgnoreCase) < 0 + ) + { + continue; + } + + // TODO: Filter by timestamp (requires timestamp data) + + // --- Formatting --- + string stackTrace = includeStacktrace ? ExtractStackTrace(message) : null; + // Always get first line for the message, use full message only if no stack trace exists + string[] messageLines = message.Split( + new[] { '\n', '\r' }, + StringSplitOptions.RemoveEmptyEntries + ); + string messageOnly = messageLines.Length > 0 ? messageLines[0] : message; + + // If not including stacktrace, ensure we only show the first line + if (!includeStacktrace) + { + stackTrace = null; + } + + object formattedEntry = null; + switch (format) + { + case "plain": + formattedEntry = messageOnly; + break; + case "json": + case "detailed": // Treat detailed as json for structured return + default: + formattedEntry = new + { + type = unityType.ToString(), + message = messageOnly, + file = file, + line = line, + // timestamp = "", // TODO + stackTrace = stackTrace, // Will be null if includeStacktrace is false or no stack found + }; + break; + } + + totalMatches++; + + if (usePaging) + { + if (totalMatches > resolvedCursor && totalMatches <= pageEndExclusive) + { + formattedEntries.Add(formattedEntry); + retrievedCount++; + } + // Early exit: we've filled the page and only need to check if more exist + else if (totalMatches > pageEndExclusive) + { + // We've passed the page; totalMatches now indicates truncation + break; + } + } + else + { + formattedEntries.Add(formattedEntry); + retrievedCount++; + + // Apply count limit (after filtering) + if (count.HasValue && retrievedCount >= count.Value) + { + break; + } + } + } + } + catch (Exception e) + { + McpLog.Error($"[ReadConsole] Error while retrieving log entries: {e}"); + // EndGettingEntries will be called in the finally block + return new ErrorResponse($"Error retrieving log entries: {e.Message}"); + } + finally + { + // Ensure we always call EndGettingEntries + try + { + _endGettingEntriesMethod.Invoke(null, null); + } + catch (Exception e) + { + McpLog.Error($"[ReadConsole] Failed to call EndGettingEntries: {e}"); + // Don't return error here as we might have valid data, but log it. + } + } + + if (usePaging) + { + bool truncated = totalMatches > pageEndExclusive; + string nextCursor = truncated ? pageEndExclusive.ToString() : null; + var payload = new + { + cursor = resolvedCursor, + pageSize = resolvedPageSize, + nextCursor = nextCursor, + truncated = truncated, + total = totalMatches, + items = formattedEntries, + }; + + return new SuccessResponse( + $"Retrieved {formattedEntries.Count} log entries.", + payload + ); + } + + // Return the filtered and formatted list (might be empty) + return new SuccessResponse( + $"Retrieved {formattedEntries.Count} log entries.", + formattedEntries + ); + } + + // --- Internal Helpers --- + + // Mapping bits from LogEntry.mode. These may vary by Unity version. + private const int ModeBitError = 1 << 0; + private const int ModeBitAssert = 1 << 1; + private const int ModeBitWarning = 1 << 2; + private const int ModeBitLog = 1 << 3; + private const int ModeBitException = 1 << 4; // often combined with Error bits + private const int ModeBitScriptingError = 1 << 9; + private const int ModeBitScriptingWarning = 1 << 10; + private const int ModeBitScriptingLog = 1 << 11; + private const int ModeBitScriptingException = 1 << 18; + private const int ModeBitScriptingAssertion = 1 << 22; + + private static LogType GetLogTypeFromMode(int mode) + { + // Preserve Unity's real type (no remapping); bits may vary by version + if ((mode & (ModeBitException | ModeBitScriptingException)) != 0) return LogType.Exception; + if ((mode & (ModeBitError | ModeBitScriptingError)) != 0) return LogType.Error; + if ((mode & (ModeBitAssert | ModeBitScriptingAssertion)) != 0) return LogType.Assert; + if ((mode & (ModeBitWarning | ModeBitScriptingWarning)) != 0) return LogType.Warning; + return LogType.Log; + } + + // (Calibration helpers removed) + + /// + /// Classifies severity using message/stacktrace content. Works across Unity versions. + /// + private static LogType InferTypeFromMessage(string fullMessage) + { + if (string.IsNullOrEmpty(fullMessage)) return LogType.Log; + + // Fast path: look for explicit Debug API names in the appended stack trace + // e.g., "UnityEngine.Debug:LogError (object)" or "LogWarning" + if (fullMessage.IndexOf("LogError", StringComparison.OrdinalIgnoreCase) >= 0) + return LogType.Error; + if (fullMessage.IndexOf("LogWarning", StringComparison.OrdinalIgnoreCase) >= 0) + return LogType.Warning; + + // Compiler diagnostics (C#): "warning CSxxxx" / "error CSxxxx" + if (fullMessage.IndexOf(" warning CS", StringComparison.OrdinalIgnoreCase) >= 0 + || fullMessage.IndexOf(": warning CS", StringComparison.OrdinalIgnoreCase) >= 0) + return LogType.Warning; + if (fullMessage.IndexOf(" error CS", StringComparison.OrdinalIgnoreCase) >= 0 + || fullMessage.IndexOf(": error CS", StringComparison.OrdinalIgnoreCase) >= 0) + return LogType.Error; + + // Exceptions (avoid misclassifying compiler diagnostics) + if (fullMessage.IndexOf("Exception", StringComparison.OrdinalIgnoreCase) >= 0) + return LogType.Exception; + + // Unity assertions + if (fullMessage.IndexOf("Assertion", StringComparison.OrdinalIgnoreCase) >= 0) + return LogType.Assert; + + return LogType.Log; + } + + private static bool IsExplicitDebugLog(string fullMessage) + { + if (string.IsNullOrEmpty(fullMessage)) return false; + if (fullMessage.IndexOf("Debug:Log (", StringComparison.OrdinalIgnoreCase) >= 0) return true; + if (fullMessage.IndexOf("UnityEngine.Debug:Log (", StringComparison.OrdinalIgnoreCase) >= 0) return true; + return false; + } + + /// + /// Applies the "one level lower" remapping for filtering, like the old version. + /// This ensures compatibility with the filtering logic that expects remapped types. + /// + private static LogType GetRemappedTypeForFiltering(LogType unityType) + { + switch (unityType) + { + case LogType.Error: + return LogType.Warning; // Error becomes Warning + case LogType.Warning: + return LogType.Log; // Warning becomes Log + case LogType.Assert: + return LogType.Assert; // Assert remains Assert + case LogType.Log: + return LogType.Log; // Log remains Log + case LogType.Exception: + return LogType.Warning; // Exception becomes Warning + default: + return LogType.Log; // Default fallback + } + } + + /// + /// Attempts to extract the stack trace part from a log message. + /// Unity log messages often have the stack trace appended after the main message, + /// starting on a new line and typically indented or beginning with "at ". + /// + /// The complete log message including potential stack trace. + /// The extracted stack trace string, or null if none is found. + private static string ExtractStackTrace(string fullMessage) + { + if (string.IsNullOrEmpty(fullMessage)) + return null; + + // Split into lines, removing empty ones to handle different line endings gracefully. + // Using StringSplitOptions.None might be better if empty lines matter within stack trace, but RemoveEmptyEntries is usually safer here. + string[] lines = fullMessage.Split( + new[] { '\r', '\n' }, + StringSplitOptions.RemoveEmptyEntries + ); + + // If there's only one line or less, there's no separate stack trace. + if (lines.Length <= 1) + return null; + + int stackStartIndex = -1; + + // Start checking from the second line onwards. + for (int i = 1; i < lines.Length; ++i) + { + // Performance: TrimStart creates a new string. Consider using IsWhiteSpace check if performance critical. + string trimmedLine = lines[i].TrimStart(); + + // Check for common stack trace patterns. + if ( + trimmedLine.StartsWith("at ") + || trimmedLine.StartsWith("UnityEngine.") + || trimmedLine.StartsWith("UnityEditor.") + || trimmedLine.Contains("(at ") + || // Covers "(at Assets/..." pattern + // Heuristic: Check if line starts with likely namespace/class pattern (Uppercase.Something) + ( + trimmedLine.Length > 0 + && char.IsUpper(trimmedLine[0]) + && trimmedLine.Contains('.') + ) + ) + { + stackStartIndex = i; + break; // Found the likely start of the stack trace + } + } + + // If a potential start index was found... + if (stackStartIndex > 0) + { + // Join the lines from the stack start index onwards using standard newline characters. + // This reconstructs the stack trace part of the message. + return string.Join("\n", lines.Skip(stackStartIndex)); + } + + // No clear stack trace found based on the patterns. + return null; + } + + /* LogEntry.mode bits exploration (based on Unity decompilation/observation): + May change between versions. + + Basic Types: + kError = 1 << 0 (1) + kAssert = 1 << 1 (2) + kWarning = 1 << 2 (4) + kLog = 1 << 3 (8) + kFatal = 1 << 4 (16) - Often treated as Exception/Error + + Modifiers/Context: + kAssetImportError = 1 << 7 (128) + kAssetImportWarning = 1 << 8 (256) + kScriptingError = 1 << 9 (512) + kScriptingWarning = 1 << 10 (1024) + kScriptingLog = 1 << 11 (2048) + kScriptCompileError = 1 << 12 (4096) + kScriptCompileWarning = 1 << 13 (8192) + kStickyError = 1 << 14 (16384) - Stays visible even after Clear On Play + kMayIgnoreLineNumber = 1 << 15 (32768) + kReportBug = 1 << 16 (65536) - Shows the "Report Bug" button + kDisplayPreviousErrorInStatusBar = 1 << 17 (131072) + kScriptingException = 1 << 18 (262144) + kDontExtractStacktrace = 1 << 19 (524288) - Hint to the console UI + kShouldClearOnPlay = 1 << 20 (1048576) - Default behavior + kGraphCompileError = 1 << 21 (2097152) + kScriptingAssertion = 1 << 22 (4194304) + kVisualScriptingError = 1 << 23 (8388608) + + Example observed values: + Log: 2048 (ScriptingLog) or 8 (Log) + Warning: 1028 (ScriptingWarning | Warning) or 4 (Warning) + Error: 513 (ScriptingError | Error) or 1 (Error) + Exception: 262161 (ScriptingException | Error | kFatal?) - Complex combination + Assertion: 4194306 (ScriptingAssertion | Assert) or 2 (Assert) + */ + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/ReadConsole.cs.meta b/Packages/MCPForUnity/Editor/Tools/ReadConsole.cs.meta new file mode 100644 index 00000000..039895f8 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/ReadConsole.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 46c4f3614ed61f547ba823f0b2790267 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/RefreshUnity.cs b/Packages/MCPForUnity/Editor/Tools/RefreshUnity.cs new file mode 100644 index 00000000..537472ac --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/RefreshUnity.cs @@ -0,0 +1,171 @@ +using System; +using System.Threading; +using System.Threading.Tasks; +using MCPForUnity.Editor.Helpers; +using MCPForUnity.Editor.Services; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEditor.Compilation; + +namespace MCPForUnity.Editor.Tools +{ + /// + /// Explicitly refreshes Unity's asset database and optionally requests a script compilation. + /// This is side-effectful and should be treated as a tool. + /// + [McpForUnityTool("refresh_unity", AutoRegister = false)] + public static class RefreshUnity + { + private const int DefaultWaitTimeoutSeconds = 60; + + public static async Task HandleCommand(JObject @params) + { + string mode = @params?["mode"]?.ToString() ?? "if_dirty"; + string scope = @params?["scope"]?.ToString() ?? "all"; + string compile = @params?["compile"]?.ToString() ?? "none"; + bool waitForReady = ParamCoercion.CoerceBool(@params?["wait_for_ready"], false); + + if (TestRunStatus.IsRunning) + { + return new ErrorResponse("tests_running", new + { + reason = "tests_running", + retry_after_ms = 5000 + }); + } + + bool refreshTriggered = false; + bool compileRequested = false; + + try + { + // Best-effort semantics: if_dirty currently behaves like force unless future dirty signals are added. + bool shouldRefresh = string.Equals(mode, "force", StringComparison.OrdinalIgnoreCase) + || string.Equals(mode, "if_dirty", StringComparison.OrdinalIgnoreCase); + + if (shouldRefresh) + { + if (string.Equals(scope, "scripts", StringComparison.OrdinalIgnoreCase)) + { + // For scripts, requesting compilation is usually the meaningful action. + // We avoid a heavyweight full refresh by default. + } + else + { + AssetDatabase.Refresh(ImportAssetOptions.ForceUpdate | ImportAssetOptions.ForceSynchronousImport); + refreshTriggered = true; + } + } + + if (string.Equals(compile, "request", StringComparison.OrdinalIgnoreCase)) + { + CompilationPipeline.RequestScriptCompilation(); + compileRequested = true; + } + + if (string.Equals(scope, "all", StringComparison.OrdinalIgnoreCase) && !refreshTriggered) + { + // If the caller asked for "all" and we skipped refresh above (e.g., scripts-only path), + // do a lightweight refresh now. Use ForceSynchronousImport to ensure the refresh + // completes before returning, preventing stalls when Unity is backgrounded. + AssetDatabase.Refresh(ImportAssetOptions.ForceSynchronousImport); + refreshTriggered = true; + } + } + catch (Exception ex) + { + return new ErrorResponse($"refresh_failed: {ex.Message}"); + } + + // Unity 6+ fix: Skip wait_for_ready when compile was requested. + // The EditorApplication.update polling in WaitForUnityReadyAsync doesn't survive + // domain reloads properly in Unity 6+, causing infinite compilation loops. + // When compilation is requested, return immediately and let client poll editor_state. + // Earlier Unity versions retain the original behavior. +#if UNITY_6000_0_OR_NEWER + bool shouldWaitForReady = waitForReady && !compileRequested; +#else + bool shouldWaitForReady = waitForReady; +#endif + if (shouldWaitForReady) + { + try + { + await WaitForUnityReadyAsync( + TimeSpan.FromSeconds(DefaultWaitTimeoutSeconds)).ConfigureAwait(true); + } + catch (TimeoutException) + { + return new ErrorResponse("refresh_timeout_waiting_for_ready", new + { + refresh_triggered = refreshTriggered, + compile_requested = compileRequested, + resulting_state = "unknown", + }); + } + catch (Exception ex) + { + return new ErrorResponse($"refresh_wait_failed: {ex.Message}"); + } + } + + string resultingState = EditorApplication.isCompiling + ? "compiling" + : (EditorApplication.isUpdating ? "asset_import" : "idle"); + + return new SuccessResponse("Refresh requested.", new + { + refresh_triggered = refreshTriggered, + compile_requested = compileRequested, + resulting_state = resultingState, + hint = shouldWaitForReady + ? "Unity refresh completed; editor should be ready." + : "If Unity enters compilation/domain reload, poll editor_state until ready_for_tools is true." + }); + } + + private static Task WaitForUnityReadyAsync(TimeSpan timeout) + { + var tcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + var start = DateTime.UtcNow; + + void Tick() + { + try + { + if (tcs.Task.IsCompleted) + { + EditorApplication.update -= Tick; + return; + } + + if ((DateTime.UtcNow - start) > timeout) + { + EditorApplication.update -= Tick; + tcs.TrySetException(new TimeoutException()); + return; + } + + if (!EditorApplication.isCompiling + && !EditorApplication.isUpdating + && !TestRunStatus.IsRunning + && !EditorApplication.isPlayingOrWillChangePlaymode) + { + EditorApplication.update -= Tick; + tcs.TrySetResult(true); + } + } + catch (Exception ex) + { + EditorApplication.update -= Tick; + tcs.TrySetException(ex); + } + } + + EditorApplication.update += Tick; + // Nudge Unity to pump once in case update is throttled. + try { EditorApplication.QueuePlayerLoopUpdate(); } catch { } + return tcs.Task; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/RefreshUnity.cs.meta b/Packages/MCPForUnity/Editor/Tools/RefreshUnity.cs.meta new file mode 100644 index 00000000..a2e38466 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/RefreshUnity.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c2c02170faca940d09c813706493ecb3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/RunTests.cs b/Packages/MCPForUnity/Editor/Tools/RunTests.cs new file mode 100644 index 00000000..e9b55f2d --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/RunTests.cs @@ -0,0 +1,118 @@ +using System; +using System.Linq; +using System.Threading.Tasks; +using MCPForUnity.Editor.Helpers; +using MCPForUnity.Editor.Resources.Tests; +using MCPForUnity.Editor.Services; +using Newtonsoft.Json.Linq; +using UnityEditor.TestTools.TestRunner.Api; + +namespace MCPForUnity.Editor.Tools +{ + /// + /// Starts a Unity Test Runner run asynchronously and returns a job id immediately. + /// Use get_test_job(job_id) to poll status/results. + /// + [McpForUnityTool("run_tests", AutoRegister = false)] + public static class RunTests + { + public static Task HandleCommand(JObject @params) + { + try + { + // Check for clear_stuck action first + if (ParamCoercion.CoerceBool(@params?["clear_stuck"], false)) + { + bool wasCleared = TestJobManager.ClearStuckJob(); + return Task.FromResult(new SuccessResponse( + wasCleared ? "Stuck job cleared." : "No running job to clear.", + new { cleared = wasCleared } + )); + } + + string modeStr = @params?["mode"]?.ToString(); + if (string.IsNullOrWhiteSpace(modeStr)) + { + modeStr = "EditMode"; + } + + if (!ModeParser.TryParse(modeStr, out var parsedMode, out var parseError)) + { + return Task.FromResult(new ErrorResponse(parseError)); + } + + bool includeDetails = ParamCoercion.CoerceBool(@params?["includeDetails"], false); + bool includeFailedTests = ParamCoercion.CoerceBool(@params?["includeFailedTests"], false); + + var filterOptions = GetFilterOptions(@params); + string jobId = TestJobManager.StartJob(parsedMode.Value, filterOptions); + + return Task.FromResult(new SuccessResponse("Test job started.", new + { + job_id = jobId, + status = "running", + mode = parsedMode.Value.ToString(), + include_details = includeDetails, + include_failed_tests = includeFailedTests + })); + } + catch (Exception ex) + { + // Normalize the already-running case to a stable error token. + if (ex.Message != null && ex.Message.IndexOf("already in progress", StringComparison.OrdinalIgnoreCase) >= 0) + { + return Task.FromResult(new ErrorResponse("tests_running", new { reason = "tests_running", retry_after_ms = 5000 })); + } + return Task.FromResult(new ErrorResponse($"Failed to start test job: {ex.Message}")); + } + } + + private static TestFilterOptions GetFilterOptions(JObject @params) + { + if (@params == null) + { + return null; + } + + string[] ParseStringArray(string key) + { + var token = @params[key]; + if (token == null) return null; + if (token.Type == JTokenType.String) + { + var value = token.ToString(); + return string.IsNullOrWhiteSpace(value) ? null : new[] { value }; + } + if (token.Type == JTokenType.Array) + { + var array = token as JArray; + if (array == null || array.Count == 0) return null; + var values = array + .Values() + .Where(s => !string.IsNullOrWhiteSpace(s)) + .ToArray(); + return values.Length > 0 ? values : null; + } + return null; + } + + var testNames = ParseStringArray("testNames"); + var groupNames = ParseStringArray("groupNames"); + var categoryNames = ParseStringArray("categoryNames"); + var assemblyNames = ParseStringArray("assemblyNames"); + + if (testNames == null && groupNames == null && categoryNames == null && assemblyNames == null) + { + return null; + } + + return new TestFilterOptions + { + TestNames = testNames, + GroupNames = groupNames, + CategoryNames = categoryNames, + AssemblyNames = assemblyNames + }; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/RunTests.cs.meta b/Packages/MCPForUnity/Editor/Tools/RunTests.cs.meta new file mode 100644 index 00000000..fea1fdf6 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/RunTests.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5cc0c41b1a8b4e0e9d0f1f8b1d7d2a9c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx.meta b/Packages/MCPForUnity/Editor/Tools/Vfx.meta new file mode 100644 index 00000000..b128ae39 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1805768600c6a4228bae31231f2a4a9f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx/LineCreate.cs b/Packages/MCPForUnity/Editor/Tools/Vfx/LineCreate.cs new file mode 100644 index 00000000..fcaf55b5 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx/LineCreate.cs @@ -0,0 +1,220 @@ +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEngine; +using MCPForUnity.Editor.Helpers; + +namespace MCPForUnity.Editor.Tools.Vfx +{ + internal static class LineCreate + { + public static object CreateLine(JObject @params) + { + LineRenderer lr = LineRead.FindLineRenderer(@params); + if (lr == null) return new { success = false, message = "LineRenderer not found" }; + + Vector3 start = ManageVfxCommon.ParseVector3(@params["start"]); + Vector3 end = ManageVfxCommon.ParseVector3(@params["end"]); + + Undo.RecordObject(lr, "Create Line"); + lr.positionCount = 2; + lr.SetPosition(0, start); + lr.SetPosition(1, end); + + RendererHelpers.EnsureMaterial(lr); + + // Apply optional width + if (@params["width"] != null) + { + float w = @params["width"].ToObject(); + lr.startWidth = w; + lr.endWidth = w; + } + if (@params["startWidth"] != null) lr.startWidth = @params["startWidth"].ToObject(); + if (@params["endWidth"] != null) lr.endWidth = @params["endWidth"].ToObject(); + + // Apply optional color + if (@params["color"] != null) + { + Color c = ManageVfxCommon.ParseColor(@params["color"]); + lr.startColor = c; + lr.endColor = c; + } + if (@params["startColor"] != null) lr.startColor = ManageVfxCommon.ParseColor(@params["startColor"]); + if (@params["endColor"] != null) lr.endColor = ManageVfxCommon.ParseColor(@params["endColor"]); + + EditorUtility.SetDirty(lr); + + return new { success = true, message = "Created line" }; + } + + public static object CreateCircle(JObject @params) + { + LineRenderer lr = LineRead.FindLineRenderer(@params); + if (lr == null) return new { success = false, message = "LineRenderer not found" }; + + Vector3 center = ManageVfxCommon.ParseVector3(@params["center"]); + float radius = @params["radius"]?.ToObject() ?? 1f; + int segments = @params["segments"]?.ToObject() ?? 32; + Vector3 normal = @params["normal"] != null ? ManageVfxCommon.ParseVector3(@params["normal"]).normalized : Vector3.up; + + Vector3 right = Vector3.Cross(normal, Vector3.forward); + if (right.sqrMagnitude < 0.001f) right = Vector3.Cross(normal, Vector3.up); + right = right.normalized; + Vector3 forward = Vector3.Cross(right, normal).normalized; + + Undo.RecordObject(lr, "Create Circle"); + lr.positionCount = segments; + lr.loop = true; + + for (int i = 0; i < segments; i++) + { + float angle = (float)i / segments * Mathf.PI * 2f; + Vector3 point = center + (right * Mathf.Cos(angle) + forward * Mathf.Sin(angle)) * radius; + lr.SetPosition(i, point); + } + + RendererHelpers.EnsureMaterial(lr); + + // Apply optional width + if (@params["width"] != null) + { + float w = @params["width"].ToObject(); + lr.startWidth = w; + lr.endWidth = w; + } + if (@params["startWidth"] != null) lr.startWidth = @params["startWidth"].ToObject(); + if (@params["endWidth"] != null) lr.endWidth = @params["endWidth"].ToObject(); + + // Apply optional color + if (@params["color"] != null) + { + Color c = ManageVfxCommon.ParseColor(@params["color"]); + lr.startColor = c; + lr.endColor = c; + } + if (@params["startColor"] != null) lr.startColor = ManageVfxCommon.ParseColor(@params["startColor"]); + if (@params["endColor"] != null) lr.endColor = ManageVfxCommon.ParseColor(@params["endColor"]); + + EditorUtility.SetDirty(lr); + return new { success = true, message = $"Created circle with {segments} segments" }; + } + + public static object CreateArc(JObject @params) + { + LineRenderer lr = LineRead.FindLineRenderer(@params); + if (lr == null) return new { success = false, message = "LineRenderer not found" }; + + Vector3 center = ManageVfxCommon.ParseVector3(@params["center"]); + float radius = @params["radius"]?.ToObject() ?? 1f; + float startAngle = (@params["startAngle"]?.ToObject() ?? 0f) * Mathf.Deg2Rad; + float endAngle = (@params["endAngle"]?.ToObject() ?? 180f) * Mathf.Deg2Rad; + int segments = @params["segments"]?.ToObject() ?? 16; + Vector3 normal = @params["normal"] != null ? ManageVfxCommon.ParseVector3(@params["normal"]).normalized : Vector3.up; + + Vector3 right = Vector3.Cross(normal, Vector3.forward); + if (right.sqrMagnitude < 0.001f) right = Vector3.Cross(normal, Vector3.up); + right = right.normalized; + Vector3 forward = Vector3.Cross(right, normal).normalized; + + Undo.RecordObject(lr, "Create Arc"); + lr.positionCount = segments + 1; + lr.loop = false; + + for (int i = 0; i <= segments; i++) + { + float t = (float)i / segments; + float angle = Mathf.Lerp(startAngle, endAngle, t); + Vector3 point = center + (right * Mathf.Cos(angle) + forward * Mathf.Sin(angle)) * radius; + lr.SetPosition(i, point); + } + + RendererHelpers.EnsureMaterial(lr); + + // Apply optional width + if (@params["width"] != null) + { + float w = @params["width"].ToObject(); + lr.startWidth = w; + lr.endWidth = w; + } + if (@params["startWidth"] != null) lr.startWidth = @params["startWidth"].ToObject(); + if (@params["endWidth"] != null) lr.endWidth = @params["endWidth"].ToObject(); + + // Apply optional color + if (@params["color"] != null) + { + Color c = ManageVfxCommon.ParseColor(@params["color"]); + lr.startColor = c; + lr.endColor = c; + } + if (@params["startColor"] != null) lr.startColor = ManageVfxCommon.ParseColor(@params["startColor"]); + if (@params["endColor"] != null) lr.endColor = ManageVfxCommon.ParseColor(@params["endColor"]); + + EditorUtility.SetDirty(lr); + return new { success = true, message = $"Created arc with {segments} segments" }; + } + + public static object CreateBezier(JObject @params) + { + LineRenderer lr = LineRead.FindLineRenderer(@params); + if (lr == null) return new { success = false, message = "LineRenderer not found" }; + + Vector3 start = ManageVfxCommon.ParseVector3(@params["start"]); + Vector3 end = ManageVfxCommon.ParseVector3(@params["end"]); + Vector3 cp1 = ManageVfxCommon.ParseVector3(@params["controlPoint1"] ?? @params["control1"]); + Vector3 cp2 = @params["controlPoint2"] != null || @params["control2"] != null + ? ManageVfxCommon.ParseVector3(@params["controlPoint2"] ?? @params["control2"]) + : cp1; + int segments = @params["segments"]?.ToObject() ?? 32; + bool isQuadratic = @params["controlPoint2"] == null && @params["control2"] == null; + + Undo.RecordObject(lr, "Create Bezier"); + lr.positionCount = segments + 1; + lr.loop = false; + + for (int i = 0; i <= segments; i++) + { + float t = (float)i / segments; + Vector3 point; + + if (isQuadratic) + { + float u = 1 - t; + point = u * u * start + 2 * u * t * cp1 + t * t * end; + } + else + { + float u = 1 - t; + point = u * u * u * start + 3 * u * u * t * cp1 + 3 * u * t * t * cp2 + t * t * t * end; + } + + lr.SetPosition(i, point); + } + + RendererHelpers.EnsureMaterial(lr); + + // Apply optional width + if (@params["width"] != null) + { + float w = @params["width"].ToObject(); + lr.startWidth = w; + lr.endWidth = w; + } + if (@params["startWidth"] != null) lr.startWidth = @params["startWidth"].ToObject(); + if (@params["endWidth"] != null) lr.endWidth = @params["endWidth"].ToObject(); + + // Apply optional color + if (@params["color"] != null) + { + Color c = ManageVfxCommon.ParseColor(@params["color"]); + lr.startColor = c; + lr.endColor = c; + } + if (@params["startColor"] != null) lr.startColor = ManageVfxCommon.ParseColor(@params["startColor"]); + if (@params["endColor"] != null) lr.endColor = ManageVfxCommon.ParseColor(@params["endColor"]); + + EditorUtility.SetDirty(lr); + return new { success = true, message = $"Created {(isQuadratic ? "quadratic" : "cubic")} Bezier" }; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx/LineCreate.cs.meta b/Packages/MCPForUnity/Editor/Tools/Vfx/LineCreate.cs.meta new file mode 100644 index 00000000..bf0e133b --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx/LineCreate.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6d553d3837ecc4d999225bc9b3160a26 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx/LineRead.cs b/Packages/MCPForUnity/Editor/Tools/Vfx/LineRead.cs new file mode 100644 index 00000000..3dd0c06f --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx/LineRead.cs @@ -0,0 +1,52 @@ +using System.Linq; +using Newtonsoft.Json.Linq; +using UnityEngine; + +namespace MCPForUnity.Editor.Tools.Vfx +{ + internal static class LineRead + { + public static LineRenderer FindLineRenderer(JObject @params) + { + GameObject go = ManageVfxCommon.FindTargetGameObject(@params); + return go?.GetComponent(); + } + + public static object GetInfo(JObject @params) + { + LineRenderer lr = FindLineRenderer(@params); + if (lr == null) return new { success = false, message = "LineRenderer not found" }; + + var positions = new Vector3[lr.positionCount]; + lr.GetPositions(positions); + + return new + { + success = true, + data = new + { + gameObject = lr.gameObject.name, + positionCount = lr.positionCount, + positions = positions.Select(p => new { x = p.x, y = p.y, z = p.z }).ToArray(), + startWidth = lr.startWidth, + endWidth = lr.endWidth, + loop = lr.loop, + useWorldSpace = lr.useWorldSpace, + alignment = lr.alignment.ToString(), + textureMode = lr.textureMode.ToString(), + numCornerVertices = lr.numCornerVertices, + numCapVertices = lr.numCapVertices, + generateLightingData = lr.generateLightingData, + material = lr.sharedMaterial?.name, + shadowCastingMode = lr.shadowCastingMode.ToString(), + receiveShadows = lr.receiveShadows, + lightProbeUsage = lr.lightProbeUsage.ToString(), + reflectionProbeUsage = lr.reflectionProbeUsage.ToString(), + sortingOrder = lr.sortingOrder, + sortingLayerName = lr.sortingLayerName, + renderingLayerMask = lr.renderingLayerMask + } + }; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx/LineRead.cs.meta b/Packages/MCPForUnity/Editor/Tools/Vfx/LineRead.cs.meta new file mode 100644 index 00000000..efeccc41 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx/LineRead.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: df77cf0ca14344b0cb2f1b84c5eb15e7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx/LineWrite.cs b/Packages/MCPForUnity/Editor/Tools/Vfx/LineWrite.cs new file mode 100644 index 00000000..339e9c8f --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx/LineWrite.cs @@ -0,0 +1,189 @@ +using System.Collections.Generic; +using MCPForUnity.Editor.Helpers; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.Tools.Vfx +{ + internal static class LineWrite + { + public static object SetPositions(JObject @params) + { + LineRenderer lr = LineRead.FindLineRenderer(@params); + if (lr == null) return new { success = false, message = "LineRenderer not found" }; + + RendererHelpers.EnsureMaterial(lr); + + JArray posArr = @params["positions"] as JArray; + if (posArr == null) return new { success = false, message = "Positions array required" }; + + var positions = new Vector3[posArr.Count]; + for (int i = 0; i < posArr.Count; i++) + { + positions[i] = ManageVfxCommon.ParseVector3(posArr[i]); + } + + Undo.RecordObject(lr, "Set Line Positions"); + lr.positionCount = positions.Length; + lr.SetPositions(positions); + EditorUtility.SetDirty(lr); + + return new { success = true, message = $"Set {positions.Length} positions" }; + } + + public static object AddPosition(JObject @params) + { + LineRenderer lr = LineRead.FindLineRenderer(@params); + if (lr == null) return new { success = false, message = "LineRenderer not found" }; + + RendererHelpers.EnsureMaterial(lr); + + Vector3 pos = ManageVfxCommon.ParseVector3(@params["position"]); + + Undo.RecordObject(lr, "Add Line Position"); + int idx = lr.positionCount; + lr.positionCount = idx + 1; + lr.SetPosition(idx, pos); + EditorUtility.SetDirty(lr); + + return new { success = true, message = $"Added position at index {idx}", index = idx }; + } + + public static object SetPosition(JObject @params) + { + LineRenderer lr = LineRead.FindLineRenderer(@params); + if (lr == null) return new { success = false, message = "LineRenderer not found" }; + + RendererHelpers.EnsureMaterial(lr); + + int index = @params["index"]?.ToObject() ?? -1; + if (index < 0 || index >= lr.positionCount) return new { success = false, message = $"Invalid index {index}" }; + + Vector3 pos = ManageVfxCommon.ParseVector3(@params["position"]); + + Undo.RecordObject(lr, "Set Line Position"); + lr.SetPosition(index, pos); + EditorUtility.SetDirty(lr); + + return new { success = true, message = $"Set position at index {index}" }; + } + + public static object SetWidth(JObject @params) + { + LineRenderer lr = LineRead.FindLineRenderer(@params); + if (lr == null) return new { success = false, message = "LineRenderer not found" }; + + RendererHelpers.EnsureMaterial(lr); + + Undo.RecordObject(lr, "Set Line Width"); + var changes = new List(); + + RendererHelpers.ApplyWidthProperties(@params, changes, + v => lr.startWidth = v, v => lr.endWidth = v, + v => lr.widthCurve = v, v => lr.widthMultiplier = v, + ManageVfxCommon.ParseAnimationCurve); + + EditorUtility.SetDirty(lr); + return new { success = true, message = $"Updated: {string.Join(", ", changes)}" }; + } + + public static object SetColor(JObject @params) + { + LineRenderer lr = LineRead.FindLineRenderer(@params); + if (lr == null) return new { success = false, message = "LineRenderer not found" }; + + RendererHelpers.EnsureMaterial(lr); + + Undo.RecordObject(lr, "Set Line Color"); + var changes = new List(); + + RendererHelpers.ApplyColorProperties(@params, changes, + v => lr.startColor = v, v => lr.endColor = v, + v => lr.colorGradient = v, + ManageVfxCommon.ParseColor, ManageVfxCommon.ParseGradient, fadeEndAlpha: false); + + EditorUtility.SetDirty(lr); + return new { success = true, message = $"Updated: {string.Join(", ", changes)}" }; + } + + public static object SetMaterial(JObject @params) + { + LineRenderer lr = LineRead.FindLineRenderer(@params); + return RendererHelpers.SetRendererMaterial(lr, @params, "Set Line Material", ManageVfxCommon.FindMaterialByPath); + } + + public static object SetProperties(JObject @params) + { + LineRenderer lr = LineRead.FindLineRenderer(@params); + if (lr == null) return new { success = false, message = "LineRenderer not found" }; + + RendererHelpers.EnsureMaterial(lr); + + Undo.RecordObject(lr, "Set Line Properties"); + var changes = new List(); + + // Handle material if provided + if (@params["materialPath"] != null) + { + Material mat = ManageVfxCommon.FindMaterialByPath(@params["materialPath"].ToString()); + if (mat != null) + { + lr.sharedMaterial = mat; + changes.Add($"material={mat.name}"); + } + else + { + McpLog.Warn($"Material not found: {@params["materialPath"]}"); + } + } + + // Handle positions if provided + if (@params["positions"] != null) + { + JArray posArr = @params["positions"] as JArray; + if (posArr != null && posArr.Count > 0) + { + var positions = new Vector3[posArr.Count]; + for (int i = 0; i < posArr.Count; i++) + { + positions[i] = ManageVfxCommon.ParseVector3(posArr[i]); + } + lr.positionCount = positions.Length; + lr.SetPositions(positions); + changes.Add($"positions({positions.Length})"); + } + } + else if (@params["positionCount"] != null) + { + int count = @params["positionCount"].ToObject(); + lr.positionCount = count; + changes.Add("positionCount"); + } + + RendererHelpers.ApplyLineTrailProperties(@params, changes, + v => lr.loop = v, v => lr.useWorldSpace = v, + v => lr.numCornerVertices = v, v => lr.numCapVertices = v, + v => lr.alignment = v, v => lr.textureMode = v, + v => lr.generateLightingData = v); + + RendererHelpers.ApplyCommonRendererProperties(lr, @params, changes); + + EditorUtility.SetDirty(lr); + return new { success = true, message = $"Updated: {string.Join(", ", changes)}" }; + } + + public static object Clear(JObject @params) + { + LineRenderer lr = LineRead.FindLineRenderer(@params); + if (lr == null) return new { success = false, message = "LineRenderer not found" }; + + int count = lr.positionCount; + Undo.RecordObject(lr, "Clear Line"); + lr.positionCount = 0; + EditorUtility.SetDirty(lr); + + return new { success = true, message = $"Cleared {count} positions" }; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx/LineWrite.cs.meta b/Packages/MCPForUnity/Editor/Tools/Vfx/LineWrite.cs.meta new file mode 100644 index 00000000..08e2637f --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx/LineWrite.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3911acc5a6a6a494cb88a647e0426d67 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx/ManageVFX.cs b/Packages/MCPForUnity/Editor/Tools/Vfx/ManageVFX.cs new file mode 100644 index 00000000..55e7b389 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx/ManageVFX.cs @@ -0,0 +1,412 @@ +using System; +using System.Collections.Generic; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using MCPForUnity.Editor.Helpers; +using UnityEngine; +using UnityEditor; + +#if UNITY_VFX_GRAPH //Please enable the symbol in the project settings for VisualEffectGraph to work +using UnityEngine.VFX; +#endif + +namespace MCPForUnity.Editor.Tools.Vfx +{ + /// + /// Tool for managing Unity VFX components: + /// - ParticleSystem (legacy particle effects) + /// - Visual Effect Graph (modern GPU particles, currently only support HDRP, other SRPs may not work) + /// - LineRenderer (lines, bezier curves, shapes) + /// - TrailRenderer (motion trails) + /// + /// COMPONENT REQUIREMENTS: + /// - particle_* actions require ParticleSystem component on target GameObject + /// - vfx_* actions require VisualEffect component (+ com.unity.visualeffectgraph package) + /// - line_* actions require LineRenderer component + /// - trail_* actions require TrailRenderer component + /// + /// TARGETING: + /// Use 'target' parameter with optional 'searchMethod': + /// - by_name (default): "Fire" finds first GameObject named "Fire" + /// - by_path: "Effects/Fire" finds GameObject at hierarchy path + /// - by_id: "12345" finds GameObject by instance ID (most reliable) + /// - by_tag: "Enemy" finds first GameObject with tag + /// + /// AUTOMATIC MATERIAL ASSIGNMENT: + /// VFX components (ParticleSystem, LineRenderer, TrailRenderer) automatically receive + /// appropriate default materials based on the active rendering pipeline when no material + /// is explicitly specified: + /// - Built-in Pipeline: Uses Unity's built-in Default-Particle.mat and Default-Line.mat + /// - URP/HDRP: Creates materials with pipeline-appropriate unlit shaders + /// - Materials are cached to avoid recreation + /// - Explicit materialPath parameter always overrides auto-assignment + /// - Auto-assigned materials are logged for transparency + /// + /// AVAILABLE ACTIONS: + /// + /// ParticleSystem (particle_*): + /// - particle_get_info: Get system info and current state + /// - particle_set_main: Set main module (duration, looping, startLifetime, startSpeed, startSize, startColor, gravityModifier, maxParticles, simulationSpace, playOnAwake, etc.) + /// - particle_set_emission: Set emission module (rateOverTime, rateOverDistance) + /// - particle_set_shape: Set shape module (shapeType, radius, angle, arc, position, rotation, scale) + /// - particle_set_color_over_lifetime: Set color gradient over particle lifetime + /// - particle_set_size_over_lifetime: Set size curve over particle lifetime + /// - particle_set_velocity_over_lifetime: Set velocity (x, y, z, speedModifier, space) + /// - particle_set_noise: Set noise turbulence (strength, frequency, scrollSpeed, damping, octaveCount, quality) + /// - particle_set_renderer: Set renderer (renderMode, material, sortMode, minParticleSize, maxParticleSize, etc.) + /// - particle_enable_module: Enable/disable modules by name + /// - particle_play/stop/pause/restart/clear: Playback control (withChildren optional) + /// - particle_add_burst: Add emission burst (time, count, cycles, interval, probability) + /// - particle_clear_bursts: Clear all bursts + /// + /// Visual Effect Graph (vfx_*): + /// Asset Management: + /// - vfx_create_asset: Create new VFX asset file (assetName, folderPath, template, overwrite) + /// - vfx_assign_asset: Assign VFX asset to VisualEffect component (target, assetPath) + /// - vfx_list_templates: List available VFX templates in project and packages + /// - vfx_list_assets: List all VFX assets (folder, search filters) + /// Runtime Control: + /// - vfx_get_info: Get VFX info including exposed parameters + /// - vfx_set_float/int/bool: Set exposed scalar parameters (parameter, value) + /// - vfx_set_vector2/vector3/vector4: Set exposed vector parameters (parameter, value as array) + /// - vfx_set_color: Set exposed color (parameter, color as [r,g,b,a]) + /// - vfx_set_gradient: Set exposed gradient (parameter, gradient) + /// - vfx_set_texture: Set exposed texture (parameter, texturePath) + /// - vfx_set_mesh: Set exposed mesh (parameter, meshPath) + /// - vfx_set_curve: Set exposed animation curve (parameter, curve) + /// - vfx_send_event: Send event with attributes (eventName, position, velocity, color, size, lifetime) + /// - vfx_play/stop/pause/reinit: Playback control + /// - vfx_set_playback_speed: Set playback speed multiplier (playRate) + /// - vfx_set_seed: Set random seed (seed, resetSeedOnPlay) + /// + /// LineRenderer (line_*): + /// - line_get_info: Get line info (position count, width, color, etc.) + /// - line_set_positions: Set all positions (positions as [[x,y,z], ...]) + /// - line_add_position: Add position at end (position as [x,y,z]) + /// - line_set_position: Set specific position (index, position) + /// - line_set_width: Set width (width, startWidth, endWidth, widthCurve, widthMultiplier) + /// - line_set_color: Set color (color, gradient, startColor, endColor) + /// - line_set_material: Set material (materialPath) + /// - line_set_properties: Set renderer properties (loop, useWorldSpace, alignment, textureMode, numCornerVertices, numCapVertices, etc.) + /// - line_clear: Clear all positions + /// Shape Creation: + /// - line_create_line: Create simple line (start, end, segments) + /// - line_create_circle: Create circle (center, radius, segments, normal) + /// - line_create_arc: Create arc (center, radius, startAngle, endAngle, segments, normal) + /// - line_create_bezier: Create Bezier curve (start, end, controlPoint1, controlPoint2, segments) + /// + /// TrailRenderer (trail_*): + /// - trail_get_info: Get trail info + /// - trail_set_time: Set trail duration (time) + /// - trail_set_width: Set width (width, startWidth, endWidth, widthCurve, widthMultiplier) + /// - trail_set_color: Set color (color, gradient, startColor, endColor) + /// - trail_set_material: Set material (materialPath) + /// - trail_set_properties: Set properties (minVertexDistance, autodestruct, emitting, alignment, textureMode, etc.) + /// - trail_clear: Clear trail + /// - trail_emit: Emit point at current position (Unity 2021.1+) + /// + /// COMMON PARAMETERS: + /// - target (string): GameObject identifier + /// - searchMethod (string): "by_id" | "by_name" | "by_path" | "by_tag" | "by_layer" + /// - materialPath (string): Asset path to material (e.g., "Assets/Materials/Fire.mat") + /// - color (array): Color as [r, g, b, a] with values 0-1 + /// - position (array): 3D position as [x, y, z] + /// - gradient (object): {colorKeys: [{color: [r,g,b,a], time: 0-1}], alphaKeys: [{alpha: 0-1, time: 0-1}]} + /// - curve (object): {keys: [{time: 0-1, value: number, inTangent: number, outTangent: number}]} + /// + /// For full parameter details, refer to Unity documentation for each component type. + /// + [McpForUnityTool("manage_vfx", AutoRegister = false)] + public static class ManageVFX + { + private static readonly Dictionary ParamAliases = new Dictionary(StringComparer.OrdinalIgnoreCase) + { + { "size_over_lifetime", "size" }, + { "start_color_line", "startColor" }, + { "sorting_layer_id", "sortingLayerID" }, + { "material", "materialPath" }, + }; + + private static JObject NormalizeParams(JObject source) + { + if (source == null) + { + return new JObject(); + } + + var normalized = new JObject(); + var properties = ExtractProperties(source); + if (properties != null) + { + foreach (var prop in properties.Properties()) + { + normalized[NormalizeKey(prop.Name, true)] = NormalizeToken(prop.Value); + } + } + + foreach (var prop in source.Properties()) + { + if (string.Equals(prop.Name, "properties", StringComparison.OrdinalIgnoreCase)) + { + continue; + } + normalized[NormalizeKey(prop.Name, true)] = NormalizeToken(prop.Value); + } + + return normalized; + } + + private static JObject ExtractProperties(JObject source) + { + if (source == null) + { + return null; + } + + if (!source.TryGetValue("properties", StringComparison.OrdinalIgnoreCase, out var token)) + { + return null; + } + + if (token == null || token.Type == JTokenType.Null) + { + return null; + } + + if (token is JObject obj) + { + return obj; + } + + if (token.Type == JTokenType.String) + { + try + { + return JToken.Parse(token.ToString()) as JObject; + } + catch (JsonException ex) + { + throw new JsonException( + $"Failed to parse 'properties' JSON string. Raw value: {token}", + ex); + } + } + + return null; + } + + private static string NormalizeKey(string key, bool allowAliases) + { + if (string.IsNullOrEmpty(key)) + { + return key; + } + if (string.Equals(key, "action", StringComparison.OrdinalIgnoreCase)) + { + return "action"; + } + if (allowAliases && ParamAliases.TryGetValue(key, out var alias)) + { + return alias; + } + if (key.IndexOf('_') >= 0) + { + return ToCamelCase(key); + } + return key; + } + + private static JToken NormalizeToken(JToken token) + { + if (token == null) + { + return null; + } + + if (token is JObject obj) + { + var normalized = new JObject(); + foreach (var prop in obj.Properties()) + { + normalized[NormalizeKey(prop.Name, false)] = NormalizeToken(prop.Value); + } + return normalized; + } + + if (token is JArray array) + { + var normalized = new JArray(); + foreach (var item in array) + { + normalized.Add(NormalizeToken(item)); + } + return normalized; + } + + return token; + } + + private static string ToCamelCase(string key) => StringCaseUtility.ToCamelCase(key); + + public static object HandleCommand(JObject @params) + { + JObject normalizedParams = NormalizeParams(@params); + string action = normalizedParams["action"]?.ToString(); + if (string.IsNullOrEmpty(action)) + { + return new { success = false, message = "Action is required" }; + } + + try + { + string actionLower = action.ToLowerInvariant(); + + // Route to appropriate handler based on action prefix + if (actionLower == "ping") + { + return new { success = true, tool = "manage_vfx", components = new[] { "ParticleSystem", "VisualEffect", "LineRenderer", "TrailRenderer" } }; + } + + // ParticleSystem actions (particle_*) + if (actionLower.StartsWith("particle_")) + { + return HandleParticleSystemAction(normalizedParams, actionLower.Substring(9)); + } + + // VFX Graph actions (vfx_*) + if (actionLower.StartsWith("vfx_")) + { + return HandleVFXGraphAction(normalizedParams, actionLower.Substring(4)); + } + + // LineRenderer actions (line_*) + if (actionLower.StartsWith("line_")) + { + return HandleLineRendererAction(normalizedParams, actionLower.Substring(5)); + } + + // TrailRenderer actions (trail_*) + if (actionLower.StartsWith("trail_")) + { + return HandleTrailRendererAction(normalizedParams, actionLower.Substring(6)); + } + + return new { success = false, message = $"Unknown action: {action}. Actions must be prefixed with: particle_, vfx_, line_, or trail_" }; + } + catch (Exception ex) + { + return new { success = false, message = ex.Message, stackTrace = ex.StackTrace }; + } + } + + private static object HandleParticleSystemAction(JObject @params, string action) + { + switch (action) + { + case "get_info": return ParticleRead.GetInfo(@params); + case "set_main": return ParticleWrite.SetMain(@params); + case "set_emission": return ParticleWrite.SetEmission(@params); + case "set_shape": return ParticleWrite.SetShape(@params); + case "set_color_over_lifetime": return ParticleWrite.SetColorOverLifetime(@params); + case "set_size_over_lifetime": return ParticleWrite.SetSizeOverLifetime(@params); + case "set_velocity_over_lifetime": return ParticleWrite.SetVelocityOverLifetime(@params); + case "set_noise": return ParticleWrite.SetNoise(@params); + case "set_renderer": return ParticleWrite.SetRenderer(@params); + case "enable_module": return ParticleControl.EnableModule(@params); + case "play": return ParticleControl.Control(@params, "play"); + case "stop": return ParticleControl.Control(@params, "stop"); + case "pause": return ParticleControl.Control(@params, "pause"); + case "restart": return ParticleControl.Control(@params, "restart"); + case "clear": return ParticleControl.Control(@params, "clear"); + case "add_burst": return ParticleControl.AddBurst(@params); + case "clear_bursts": return ParticleControl.ClearBursts(@params); + default: + return new { success = false, message = $"Unknown particle action: {action}. Valid: get_info, set_main, set_emission, set_shape, set_color_over_lifetime, set_size_over_lifetime, set_velocity_over_lifetime, set_noise, set_renderer, enable_module, play, stop, pause, restart, clear, add_burst, clear_bursts" }; + } + } + + // ==================== VFX GRAPH ==================== + #region VFX Graph + + private static object HandleVFXGraphAction(JObject @params, string action) + { +#if !UNITY_VFX_GRAPH + return new { success = false, message = "VFX Graph package (com.unity.visualeffectgraph) not installed" }; +#else + switch (action) + { + // Asset management + case "create_asset": return VfxGraphAssets.CreateAsset(@params); + case "assign_asset": return VfxGraphAssets.AssignAsset(@params); + case "list_templates": return VfxGraphAssets.ListTemplates(@params); + case "list_assets": return VfxGraphAssets.ListAssets(@params); + + // Runtime parameter control + case "get_info": return VfxGraphRead.GetInfo(@params); + case "set_float": return VfxGraphWrite.SetParameter(@params, (vfx, n, v) => vfx.SetFloat(n, v)); + case "set_int": return VfxGraphWrite.SetParameter(@params, (vfx, n, v) => vfx.SetInt(n, v)); + case "set_bool": return VfxGraphWrite.SetParameter(@params, (vfx, n, v) => vfx.SetBool(n, v)); + case "set_vector2": return VfxGraphWrite.SetVector(@params, 2); + case "set_vector3": return VfxGraphWrite.SetVector(@params, 3); + case "set_vector4": return VfxGraphWrite.SetVector(@params, 4); + case "set_color": return VfxGraphWrite.SetColor(@params); + case "set_gradient": return VfxGraphWrite.SetGradient(@params); + case "set_texture": return VfxGraphWrite.SetTexture(@params); + case "set_mesh": return VfxGraphWrite.SetMesh(@params); + case "set_curve": return VfxGraphWrite.SetCurve(@params); + case "send_event": return VfxGraphWrite.SendEvent(@params); + case "play": return VfxGraphControl.Control(@params, "play"); + case "stop": return VfxGraphControl.Control(@params, "stop"); + case "pause": return VfxGraphControl.Control(@params, "pause"); + case "reinit": return VfxGraphControl.Control(@params, "reinit"); + case "set_playback_speed": return VfxGraphControl.SetPlaybackSpeed(@params); + case "set_seed": return VfxGraphControl.SetSeed(@params); + default: + return new { success = false, message = $"Unknown vfx action: {action}. Valid: create_asset, assign_asset, list_templates, list_assets, get_info, set_float, set_int, set_bool, set_vector2/3/4, set_color, set_gradient, set_texture, set_mesh, set_curve, send_event, play, stop, pause, reinit, set_playback_speed, set_seed" }; + } +#endif + } + + + #endregion + + private static object HandleLineRendererAction(JObject @params, string action) + { + switch (action) + { + case "get_info": return LineRead.GetInfo(@params); + case "set_positions": return LineWrite.SetPositions(@params); + case "add_position": return LineWrite.AddPosition(@params); + case "set_position": return LineWrite.SetPosition(@params); + case "set_width": return LineWrite.SetWidth(@params); + case "set_color": return LineWrite.SetColor(@params); + case "set_material": return LineWrite.SetMaterial(@params); + case "set_properties": return LineWrite.SetProperties(@params); + case "clear": return LineWrite.Clear(@params); + case "create_line": return LineCreate.CreateLine(@params); + case "create_circle": return LineCreate.CreateCircle(@params); + case "create_arc": return LineCreate.CreateArc(@params); + case "create_bezier": return LineCreate.CreateBezier(@params); + default: + return new { success = false, message = $"Unknown line action: {action}. Valid: get_info, set_positions, add_position, set_position, set_width, set_color, set_material, set_properties, clear, create_line, create_circle, create_arc, create_bezier" }; + } + } + + private static object HandleTrailRendererAction(JObject @params, string action) + { + switch (action) + { + case "get_info": return TrailRead.GetInfo(@params); + case "set_time": return TrailWrite.SetTime(@params); + case "set_width": return TrailWrite.SetWidth(@params); + case "set_color": return TrailWrite.SetColor(@params); + case "set_material": return TrailWrite.SetMaterial(@params); + case "set_properties": return TrailWrite.SetProperties(@params); + case "clear": return TrailControl.Clear(@params); + case "emit": return TrailControl.Emit(@params); + default: + return new { success = false, message = $"Unknown trail action: {action}. Valid: get_info, set_time, set_width, set_color, set_material, set_properties, clear, emit" }; + } + } + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx/ManageVFX.cs.meta b/Packages/MCPForUnity/Editor/Tools/Vfx/ManageVFX.cs.meta new file mode 100644 index 00000000..e1fb8116 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx/ManageVFX.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: a8f3d2c1e9b74f6a8c5d0e2f1a3b4c5d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: + + diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx/ManageVfxCommon.cs b/Packages/MCPForUnity/Editor/Tools/Vfx/ManageVfxCommon.cs new file mode 100644 index 00000000..aa2d668c --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx/ManageVfxCommon.cs @@ -0,0 +1,22 @@ +using Newtonsoft.Json.Linq; +using MCPForUnity.Editor.Helpers; +using UnityEngine; + +namespace MCPForUnity.Editor.Tools.Vfx +{ + internal static class ManageVfxCommon + { + public static Color ParseColor(JToken token) => VectorParsing.ParseColorOrDefault(token); + public static Vector3 ParseVector3(JToken token) => VectorParsing.ParseVector3OrDefault(token); + public static Vector4 ParseVector4(JToken token) => VectorParsing.ParseVector4OrDefault(token); + public static Gradient ParseGradient(JToken token) => VectorParsing.ParseGradientOrDefault(token); + public static AnimationCurve ParseAnimationCurve(JToken token, float defaultValue = 1f) + => VectorParsing.ParseAnimationCurveOrDefault(token, defaultValue); + + public static GameObject FindTargetGameObject(JObject @params) + => ObjectResolver.ResolveGameObject(@params["target"], @params["searchMethod"]?.ToString()); + + public static Material FindMaterialByPath(string path) + => ObjectResolver.ResolveMaterial(path); + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx/ManageVfxCommon.cs.meta b/Packages/MCPForUnity/Editor/Tools/Vfx/ManageVfxCommon.cs.meta new file mode 100644 index 00000000..6d1d28b2 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx/ManageVfxCommon.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1c5e603b26d2f47529394c1ec6b8ed79 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx/ParticleCommon.cs b/Packages/MCPForUnity/Editor/Tools/Vfx/ParticleCommon.cs new file mode 100644 index 00000000..b9418733 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx/ParticleCommon.cs @@ -0,0 +1,87 @@ +using Newtonsoft.Json.Linq; +using UnityEngine; + +namespace MCPForUnity.Editor.Tools.Vfx +{ + internal static class ParticleCommon + { + public static ParticleSystem FindParticleSystem(JObject @params) + { + GameObject go = ManageVfxCommon.FindTargetGameObject(@params); + return go?.GetComponent(); + } + + public static ParticleSystem.MinMaxCurve ParseMinMaxCurve(JToken token, float defaultValue = 1f) + { + if (token == null) + return new ParticleSystem.MinMaxCurve(defaultValue); + + if (token.Type == JTokenType.Float || token.Type == JTokenType.Integer) + { + return new ParticleSystem.MinMaxCurve(token.ToObject()); + } + + if (token is JObject obj) + { + string mode = obj["mode"]?.ToString()?.ToLowerInvariant() ?? "constant"; + + switch (mode) + { + case "constant": + float constant = obj["value"]?.ToObject() ?? defaultValue; + return new ParticleSystem.MinMaxCurve(constant); + + case "random_between_constants": + case "two_constants": + float min = obj["min"]?.ToObject() ?? 0f; + float max = obj["max"]?.ToObject() ?? 1f; + return new ParticleSystem.MinMaxCurve(min, max); + + case "curve": + AnimationCurve curve = ManageVfxCommon.ParseAnimationCurve(obj, defaultValue); + return new ParticleSystem.MinMaxCurve(obj["multiplier"]?.ToObject() ?? 1f, curve); + + default: + return new ParticleSystem.MinMaxCurve(defaultValue); + } + } + + return new ParticleSystem.MinMaxCurve(defaultValue); + } + + public static ParticleSystem.MinMaxGradient ParseMinMaxGradient(JToken token) + { + if (token == null) + return new ParticleSystem.MinMaxGradient(Color.white); + + if (token is JArray arr && arr.Count >= 3) + { + return new ParticleSystem.MinMaxGradient(ManageVfxCommon.ParseColor(arr)); + } + + if (token is JObject obj) + { + string mode = obj["mode"]?.ToString()?.ToLowerInvariant() ?? "color"; + + switch (mode) + { + case "color": + return new ParticleSystem.MinMaxGradient(ManageVfxCommon.ParseColor(obj["color"])); + + case "two_colors": + Color colorMin = ManageVfxCommon.ParseColor(obj["colorMin"]); + Color colorMax = ManageVfxCommon.ParseColor(obj["colorMax"]); + return new ParticleSystem.MinMaxGradient(colorMin, colorMax); + + case "gradient": + return new ParticleSystem.MinMaxGradient(ManageVfxCommon.ParseGradient(obj)); + + default: + return new ParticleSystem.MinMaxGradient(Color.white); + } + } + + return new ParticleSystem.MinMaxGradient(Color.white); + } + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx/ParticleCommon.cs.meta b/Packages/MCPForUnity/Editor/Tools/Vfx/ParticleCommon.cs.meta new file mode 100644 index 00000000..fa9388a2 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx/ParticleCommon.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a3a91aa6f6b9c4121a2ccc1a8147bbf9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx/ParticleControl.cs b/Packages/MCPForUnity/Editor/Tools/Vfx/ParticleControl.cs new file mode 100644 index 00000000..4fb8584f --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx/ParticleControl.cs @@ -0,0 +1,121 @@ +using System; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEngine; +using MCPForUnity.Editor.Helpers; + +namespace MCPForUnity.Editor.Tools.Vfx +{ + internal static class ParticleControl + { + public static object EnableModule(JObject @params) + { + ParticleSystem ps = ParticleCommon.FindParticleSystem(@params); + if (ps == null) return new { success = false, message = "ParticleSystem not found" }; + + string moduleName = @params["module"]?.ToString()?.ToLowerInvariant(); + bool enabled = @params["enabled"]?.ToObject() ?? true; + + if (string.IsNullOrEmpty(moduleName)) return new { success = false, message = "Module name required" }; + + Undo.RecordObject(ps, $"Toggle {moduleName}"); + + switch (moduleName.Replace("_", "")) + { + case "emission": var em = ps.emission; em.enabled = enabled; break; + case "shape": var sh = ps.shape; sh.enabled = enabled; break; + case "coloroverlifetime": var col = ps.colorOverLifetime; col.enabled = enabled; break; + case "sizeoverlifetime": var sol = ps.sizeOverLifetime; sol.enabled = enabled; break; + case "velocityoverlifetime": var vol = ps.velocityOverLifetime; vol.enabled = enabled; break; + case "noise": var n = ps.noise; n.enabled = enabled; break; + case "collision": var coll = ps.collision; coll.enabled = enabled; break; + case "trails": var tr = ps.trails; tr.enabled = enabled; break; + case "lights": var li = ps.lights; li.enabled = enabled; break; + default: return new { success = false, message = $"Unknown module: {moduleName}" }; + } + + EditorUtility.SetDirty(ps); + return new { success = true, message = $"Module '{moduleName}' {(enabled ? "enabled" : "disabled")}" }; + } + + public static object Control(JObject @params, string action) + { + ParticleSystem ps = ParticleCommon.FindParticleSystem(@params); + if (ps == null) return new { success = false, message = "ParticleSystem not found" }; + + // Ensure material is assigned before playing + if (action == "play" || action == "restart") + { + var renderer = ps.GetComponent(); + if (renderer != null) + { + RendererHelpers.EnsureMaterial(renderer); + } + } + + bool withChildren = @params["withChildren"]?.ToObject() ?? true; + + switch (action) + { + case "play": ps.Play(withChildren); break; + case "stop": ps.Stop(withChildren, ParticleSystemStopBehavior.StopEmitting); break; + case "pause": ps.Pause(withChildren); break; + case "restart": ps.Stop(withChildren, ParticleSystemStopBehavior.StopEmittingAndClear); ps.Play(withChildren); break; + case "clear": ps.Clear(withChildren); break; + default: return new { success = false, message = $"Unknown action: {action}" }; + } + + return new { success = true, message = $"ParticleSystem {action}" }; + } + + public static object AddBurst(JObject @params) + { + ParticleSystem ps = ParticleCommon.FindParticleSystem(@params); + if (ps == null) return new { success = false, message = "ParticleSystem not found" }; + + // Ensure material is assigned + var renderer = ps.GetComponent(); + if (renderer != null) + { + RendererHelpers.EnsureMaterial(renderer); + } + + Undo.RecordObject(ps, "Add Burst"); + var emission = ps.emission; + + float time = @params["time"]?.ToObject() ?? 0f; + int minCountRaw = @params["minCount"]?.ToObject() ?? @params["count"]?.ToObject() ?? 30; + int maxCountRaw = @params["maxCount"]?.ToObject() ?? @params["count"]?.ToObject() ?? 30; + short minCount = (short)Math.Clamp(minCountRaw, 0, short.MaxValue); + short maxCount = (short)Math.Clamp(maxCountRaw, 0, short.MaxValue); + int cycles = @params["cycles"]?.ToObject() ?? 1; + float interval = @params["interval"]?.ToObject() ?? 0.01f; + + var burst = new ParticleSystem.Burst(time, minCount, maxCount, cycles, interval); + burst.probability = @params["probability"]?.ToObject() ?? 1f; + + int idx = emission.burstCount; + var bursts = new ParticleSystem.Burst[idx + 1]; + emission.GetBursts(bursts); + bursts[idx] = burst; + emission.SetBursts(bursts); + + EditorUtility.SetDirty(ps); + return new { success = true, message = $"Added burst at t={time}", burstIndex = idx }; + } + + public static object ClearBursts(JObject @params) + { + ParticleSystem ps = ParticleCommon.FindParticleSystem(@params); + if (ps == null) return new { success = false, message = "ParticleSystem not found" }; + + Undo.RecordObject(ps, "Clear Bursts"); + var emission = ps.emission; + int count = emission.burstCount; + emission.SetBursts(new ParticleSystem.Burst[0]); + + EditorUtility.SetDirty(ps); + return new { success = true, message = $"Cleared {count} bursts" }; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx/ParticleControl.cs.meta b/Packages/MCPForUnity/Editor/Tools/Vfx/ParticleControl.cs.meta new file mode 100644 index 00000000..d30d0272 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx/ParticleControl.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 04e1bfb655f184337943edd5a3fbbcdb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx/ParticleRead.cs b/Packages/MCPForUnity/Editor/Tools/Vfx/ParticleRead.cs new file mode 100644 index 00000000..65afcd4c --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx/ParticleRead.cs @@ -0,0 +1,153 @@ +using Newtonsoft.Json.Linq; +using System.Linq; +using UnityEngine; + +namespace MCPForUnity.Editor.Tools.Vfx +{ + internal static class ParticleRead + { + private static object SerializeAnimationCurve(AnimationCurve curve) + { + if (curve == null) + { + return null; + } + + return new + { + keys = curve.keys.Select(k => new + { + time = k.time, + value = k.value, + inTangent = k.inTangent, + outTangent = k.outTangent + }).ToArray() + }; + } + + private static object SerializeMinMaxCurve(ParticleSystem.MinMaxCurve curve) + { + switch (curve.mode) + { + case ParticleSystemCurveMode.Constant: + return new + { + mode = "constant", + value = curve.constant + }; + + case ParticleSystemCurveMode.TwoConstants: + return new + { + mode = "two_constants", + min = curve.constantMin, + max = curve.constantMax + }; + + case ParticleSystemCurveMode.Curve: + return new + { + mode = "curve", + multiplier = curve.curveMultiplier, + keys = curve.curve.keys.Select(k => new + { + time = k.time, + value = k.value, + inTangent = k.inTangent, + outTangent = k.outTangent + }).ToArray() + }; + + case ParticleSystemCurveMode.TwoCurves: + return new + { + mode = "curve", + multiplier = curve.curveMultiplier, + keys = curve.curveMax.keys.Select(k => new + { + time = k.time, + value = k.value, + inTangent = k.inTangent, + outTangent = k.outTangent + }).ToArray(), + originalMode = "two_curves", + curveMin = SerializeAnimationCurve(curve.curveMin), + curveMax = SerializeAnimationCurve(curve.curveMax) + }; + + default: + return new + { + mode = "constant", + value = curve.constant + }; + } + } + + public static object GetInfo(JObject @params) + { + ParticleSystem ps = ParticleCommon.FindParticleSystem(@params); + if (ps == null) + { + return new { success = false, message = "ParticleSystem not found" }; + } + + var main = ps.main; + var emission = ps.emission; + var shape = ps.shape; + var renderer = ps.GetComponent(); + + return new + { + success = true, + data = new + { + gameObject = ps.gameObject.name, + isPlaying = ps.isPlaying, + isPaused = ps.isPaused, + particleCount = ps.particleCount, + main = new + { + duration = main.duration, + looping = main.loop, + startLifetime = SerializeMinMaxCurve(main.startLifetime), + startSpeed = SerializeMinMaxCurve(main.startSpeed), + startSize = SerializeMinMaxCurve(main.startSize), + gravityModifier = SerializeMinMaxCurve(main.gravityModifier), + simulationSpace = main.simulationSpace.ToString(), + maxParticles = main.maxParticles + }, + emission = new + { + enabled = emission.enabled, + rateOverTime = SerializeMinMaxCurve(emission.rateOverTime), + burstCount = emission.burstCount + }, + shape = new + { + enabled = shape.enabled, + shapeType = shape.shapeType.ToString(), + radius = shape.radius, + angle = shape.angle + }, + renderer = renderer != null ? new + { + renderMode = renderer.renderMode.ToString(), + sortMode = renderer.sortMode.ToString(), + material = renderer.sharedMaterial?.name, + trailMaterial = renderer.trailMaterial?.name, + minParticleSize = renderer.minParticleSize, + maxParticleSize = renderer.maxParticleSize, + shadowCastingMode = renderer.shadowCastingMode.ToString(), + receiveShadows = renderer.receiveShadows, + lightProbeUsage = renderer.lightProbeUsage.ToString(), + reflectionProbeUsage = renderer.reflectionProbeUsage.ToString(), + sortingOrder = renderer.sortingOrder, + sortingLayerName = renderer.sortingLayerName, + renderingLayerMask = renderer.renderingLayerMask + } : null + } + }; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx/ParticleRead.cs.meta b/Packages/MCPForUnity/Editor/Tools/Vfx/ParticleRead.cs.meta new file mode 100644 index 00000000..a4a7dffb --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx/ParticleRead.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 74bb7c48a4e1944bcba43b3619653cb9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx/ParticleWrite.cs b/Packages/MCPForUnity/Editor/Tools/Vfx/ParticleWrite.cs new file mode 100644 index 00000000..21c0384f --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx/ParticleWrite.cs @@ -0,0 +1,295 @@ +using System; +using System.Collections.Generic; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEngine; +using MCPForUnity.Editor.Helpers; + +namespace MCPForUnity.Editor.Tools.Vfx +{ + internal static class ParticleWrite + { + public static object SetMain(JObject @params) + { + ParticleSystem ps = ParticleCommon.FindParticleSystem(@params); + if (ps == null) return new { success = false, message = "ParticleSystem not found" }; + + // Ensure material is assigned before any configuration + var renderer = ps.GetComponent(); + if (renderer != null) + { + RendererHelpers.EnsureMaterial(renderer); + } + + // Stop particle system if it's playing and duration needs to be changed + bool wasPlaying = ps.isPlaying; + bool needsStop = @params["duration"] != null && wasPlaying; + if (needsStop) + { + ps.Stop(true, ParticleSystemStopBehavior.StopEmittingAndClear); + } + + Undo.RecordObject(ps, "Set ParticleSystem Main"); + var main = ps.main; + var changes = new List(); + + if (@params["duration"] != null) { main.duration = @params["duration"].ToObject(); changes.Add("duration"); } + if (@params["looping"] != null) { main.loop = @params["looping"].ToObject(); changes.Add("looping"); } + if (@params["prewarm"] != null) { main.prewarm = @params["prewarm"].ToObject(); changes.Add("prewarm"); } + if (@params["startDelay"] != null) { main.startDelay = ParticleCommon.ParseMinMaxCurve(@params["startDelay"], 0f); changes.Add("startDelay"); } + if (@params["startLifetime"] != null) { main.startLifetime = ParticleCommon.ParseMinMaxCurve(@params["startLifetime"], 5f); changes.Add("startLifetime"); } + if (@params["startSpeed"] != null) { main.startSpeed = ParticleCommon.ParseMinMaxCurve(@params["startSpeed"], 5f); changes.Add("startSpeed"); } + if (@params["startSize"] != null) { main.startSize = ParticleCommon.ParseMinMaxCurve(@params["startSize"], 1f); changes.Add("startSize"); } + if (@params["startRotation"] != null) { main.startRotation = ParticleCommon.ParseMinMaxCurve(@params["startRotation"], 0f); changes.Add("startRotation"); } + if (@params["startColor"] != null) { main.startColor = ParticleCommon.ParseMinMaxGradient(@params["startColor"]); changes.Add("startColor"); } + if (@params["gravityModifier"] != null) { main.gravityModifier = ParticleCommon.ParseMinMaxCurve(@params["gravityModifier"], 0f); changes.Add("gravityModifier"); } + if (@params["simulationSpace"] != null && Enum.TryParse(@params["simulationSpace"].ToString(), true, out var simSpace)) { main.simulationSpace = simSpace; changes.Add("simulationSpace"); } + if (@params["scalingMode"] != null && Enum.TryParse(@params["scalingMode"].ToString(), true, out var scaleMode)) { main.scalingMode = scaleMode; changes.Add("scalingMode"); } + if (@params["playOnAwake"] != null) { main.playOnAwake = @params["playOnAwake"].ToObject(); changes.Add("playOnAwake"); } + if (@params["maxParticles"] != null) { main.maxParticles = @params["maxParticles"].ToObject(); changes.Add("maxParticles"); } + + EditorUtility.SetDirty(ps); + + // Restart particle system if it was playing + if (needsStop && wasPlaying) + { + ps.Play(true); + changes.Add("(restarted after duration change)"); + } + + return new { success = true, message = $"Updated: {string.Join(", ", changes)}" }; + } + + public static object SetEmission(JObject @params) + { + ParticleSystem ps = ParticleCommon.FindParticleSystem(@params); + if (ps == null) return new { success = false, message = "ParticleSystem not found" }; + + // Ensure material is assigned + var renderer = ps.GetComponent(); + if (renderer != null) + { + RendererHelpers.EnsureMaterial(renderer); + } + + Undo.RecordObject(ps, "Set ParticleSystem Emission"); + var emission = ps.emission; + var changes = new List(); + + if (@params["enabled"] != null) { emission.enabled = @params["enabled"].ToObject(); changes.Add("enabled"); } + if (@params["rateOverTime"] != null) { emission.rateOverTime = ParticleCommon.ParseMinMaxCurve(@params["rateOverTime"], 10f); changes.Add("rateOverTime"); } + if (@params["rateOverDistance"] != null) { emission.rateOverDistance = ParticleCommon.ParseMinMaxCurve(@params["rateOverDistance"], 0f); changes.Add("rateOverDistance"); } + + EditorUtility.SetDirty(ps); + return new { success = true, message = $"Updated emission: {string.Join(", ", changes)}" }; + } + + public static object SetShape(JObject @params) + { + ParticleSystem ps = ParticleCommon.FindParticleSystem(@params); + if (ps == null) return new { success = false, message = "ParticleSystem not found" }; + + // Ensure material is assigned + var renderer = ps.GetComponent(); + if (renderer != null) + { + RendererHelpers.EnsureMaterial(renderer); + } + + Undo.RecordObject(ps, "Set ParticleSystem Shape"); + var shape = ps.shape; + var changes = new List(); + + if (@params["enabled"] != null) { shape.enabled = @params["enabled"].ToObject(); changes.Add("enabled"); } + if (@params["shapeType"] != null && Enum.TryParse(@params["shapeType"].ToString(), true, out var shapeType)) { shape.shapeType = shapeType; changes.Add("shapeType"); } + if (@params["radius"] != null) { shape.radius = @params["radius"].ToObject(); changes.Add("radius"); } + if (@params["radiusThickness"] != null) { shape.radiusThickness = @params["radiusThickness"].ToObject(); changes.Add("radiusThickness"); } + if (@params["angle"] != null) { shape.angle = @params["angle"].ToObject(); changes.Add("angle"); } + if (@params["arc"] != null) { shape.arc = @params["arc"].ToObject(); changes.Add("arc"); } + if (@params["position"] != null) { shape.position = ManageVfxCommon.ParseVector3(@params["position"]); changes.Add("position"); } + if (@params["rotation"] != null) { shape.rotation = ManageVfxCommon.ParseVector3(@params["rotation"]); changes.Add("rotation"); } + if (@params["scale"] != null) { shape.scale = ManageVfxCommon.ParseVector3(@params["scale"]); changes.Add("scale"); } + + EditorUtility.SetDirty(ps); + return new { success = true, message = $"Updated shape: {string.Join(", ", changes)}" }; + } + + public static object SetColorOverLifetime(JObject @params) + { + ParticleSystem ps = ParticleCommon.FindParticleSystem(@params); + if (ps == null) return new { success = false, message = "ParticleSystem not found" }; + + // Ensure material is assigned + var renderer = ps.GetComponent(); + if (renderer != null) + { + RendererHelpers.EnsureMaterial(renderer); + } + + Undo.RecordObject(ps, "Set ParticleSystem Color Over Lifetime"); + var col = ps.colorOverLifetime; + var changes = new List(); + + if (@params["enabled"] != null) { col.enabled = @params["enabled"].ToObject(); changes.Add("enabled"); } + if (@params["color"] != null) { col.color = ParticleCommon.ParseMinMaxGradient(@params["color"]); changes.Add("color"); } + + EditorUtility.SetDirty(ps); + return new { success = true, message = $"Updated: {string.Join(", ", changes)}" }; + } + + public static object SetSizeOverLifetime(JObject @params) + { + ParticleSystem ps = ParticleCommon.FindParticleSystem(@params); + if (ps == null) return new { success = false, message = "ParticleSystem not found" }; + + // Ensure material is assigned + var renderer = ps.GetComponent(); + if (renderer != null) + { + RendererHelpers.EnsureMaterial(renderer); + } + + Undo.RecordObject(ps, "Set ParticleSystem Size Over Lifetime"); + var sol = ps.sizeOverLifetime; + var changes = new List(); + + bool hasSizeProperty = @params["size"] != null || @params["sizeX"] != null || + @params["sizeY"] != null || @params["sizeZ"] != null; + if (hasSizeProperty && @params["enabled"] == null && !sol.enabled) + { + sol.enabled = true; + changes.Add("enabled"); + } + else if (@params["enabled"] != null) + { + sol.enabled = @params["enabled"].ToObject(); + changes.Add("enabled"); + } + + if (@params["separateAxes"] != null) { sol.separateAxes = @params["separateAxes"].ToObject(); changes.Add("separateAxes"); } + if (@params["size"] != null) { sol.size = ParticleCommon.ParseMinMaxCurve(@params["size"], 1f); changes.Add("size"); } + if (@params["sizeX"] != null) { sol.x = ParticleCommon.ParseMinMaxCurve(@params["sizeX"], 1f); changes.Add("sizeX"); } + if (@params["sizeY"] != null) { sol.y = ParticleCommon.ParseMinMaxCurve(@params["sizeY"], 1f); changes.Add("sizeY"); } + if (@params["sizeZ"] != null) { sol.z = ParticleCommon.ParseMinMaxCurve(@params["sizeZ"], 1f); changes.Add("sizeZ"); } + + EditorUtility.SetDirty(ps); + return new { success = true, message = $"Updated: {string.Join(", ", changes)}" }; + } + + public static object SetVelocityOverLifetime(JObject @params) + { + ParticleSystem ps = ParticleCommon.FindParticleSystem(@params); + if (ps == null) return new { success = false, message = "ParticleSystem not found" }; + + // Ensure material is assigned + var renderer = ps.GetComponent(); + if (renderer != null) + { + RendererHelpers.EnsureMaterial(renderer); + } + + Undo.RecordObject(ps, "Set ParticleSystem Velocity Over Lifetime"); + var vol = ps.velocityOverLifetime; + var changes = new List(); + + if (@params["enabled"] != null) { vol.enabled = @params["enabled"].ToObject(); changes.Add("enabled"); } + if (@params["space"] != null && Enum.TryParse(@params["space"].ToString(), true, out var space)) { vol.space = space; changes.Add("space"); } + if (@params["x"] != null) { vol.x = ParticleCommon.ParseMinMaxCurve(@params["x"], 0f); changes.Add("x"); } + if (@params["y"] != null) { vol.y = ParticleCommon.ParseMinMaxCurve(@params["y"], 0f); changes.Add("y"); } + if (@params["z"] != null) { vol.z = ParticleCommon.ParseMinMaxCurve(@params["z"], 0f); changes.Add("z"); } + if (@params["speedModifier"] != null) { vol.speedModifier = ParticleCommon.ParseMinMaxCurve(@params["speedModifier"], 1f); changes.Add("speedModifier"); } + + EditorUtility.SetDirty(ps); + return new { success = true, message = $"Updated: {string.Join(", ", changes)}" }; + } + + public static object SetNoise(JObject @params) + { + ParticleSystem ps = ParticleCommon.FindParticleSystem(@params); + if (ps == null) return new { success = false, message = "ParticleSystem not found" }; + + // Ensure material is assigned + var renderer = ps.GetComponent(); + if (renderer != null) + { + RendererHelpers.EnsureMaterial(renderer); + } + + Undo.RecordObject(ps, "Set ParticleSystem Noise"); + var noise = ps.noise; + var changes = new List(); + + if (@params["enabled"] != null) { noise.enabled = @params["enabled"].ToObject(); changes.Add("enabled"); } + if (@params["strength"] != null) { noise.strength = ParticleCommon.ParseMinMaxCurve(@params["strength"], 1f); changes.Add("strength"); } + if (@params["frequency"] != null) { noise.frequency = @params["frequency"].ToObject(); changes.Add("frequency"); } + if (@params["scrollSpeed"] != null) { noise.scrollSpeed = ParticleCommon.ParseMinMaxCurve(@params["scrollSpeed"], 0f); changes.Add("scrollSpeed"); } + if (@params["damping"] != null) { noise.damping = @params["damping"].ToObject(); changes.Add("damping"); } + if (@params["octaveCount"] != null) { noise.octaveCount = @params["octaveCount"].ToObject(); changes.Add("octaveCount"); } + if (@params["quality"] != null && Enum.TryParse(@params["quality"].ToString(), true, out var quality)) { noise.quality = quality; changes.Add("quality"); } + + EditorUtility.SetDirty(ps); + return new { success = true, message = $"Updated noise: {string.Join(", ", changes)}" }; + } + + public static object SetRenderer(JObject @params) + { + ParticleSystem ps = ParticleCommon.FindParticleSystem(@params); + if (ps == null) return new { success = false, message = "ParticleSystem not found" }; + + var renderer = ps.GetComponent(); + if (renderer == null) return new { success = false, message = "ParticleSystemRenderer not found" }; + + // Ensure material is set before any other operations + RendererHelpers.EnsureMaterial(renderer); + + Undo.RecordObject(renderer, "Set ParticleSystem Renderer"); + var changes = new List(); + + if (@params["renderMode"] != null && Enum.TryParse(@params["renderMode"].ToString(), true, out var renderMode)) { renderer.renderMode = renderMode; changes.Add("renderMode"); } + if (@params["sortMode"] != null && Enum.TryParse(@params["sortMode"].ToString(), true, out var sortMode)) { renderer.sortMode = sortMode; changes.Add("sortMode"); } + + if (@params["minParticleSize"] != null) { renderer.minParticleSize = @params["minParticleSize"].ToObject(); changes.Add("minParticleSize"); } + if (@params["maxParticleSize"] != null) { renderer.maxParticleSize = @params["maxParticleSize"].ToObject(); changes.Add("maxParticleSize"); } + + if (@params["lengthScale"] != null) { renderer.lengthScale = @params["lengthScale"].ToObject(); changes.Add("lengthScale"); } + if (@params["velocityScale"] != null) { renderer.velocityScale = @params["velocityScale"].ToObject(); changes.Add("velocityScale"); } + if (@params["cameraVelocityScale"] != null) { renderer.cameraVelocityScale = @params["cameraVelocityScale"].ToObject(); changes.Add("cameraVelocityScale"); } + if (@params["normalDirection"] != null) { renderer.normalDirection = @params["normalDirection"].ToObject(); changes.Add("normalDirection"); } + + if (@params["alignment"] != null && Enum.TryParse(@params["alignment"].ToString(), true, out var alignment)) { renderer.alignment = alignment; changes.Add("alignment"); } + if (@params["pivot"] != null) { renderer.pivot = ManageVfxCommon.ParseVector3(@params["pivot"]); changes.Add("pivot"); } + if (@params["flip"] != null) { renderer.flip = ManageVfxCommon.ParseVector3(@params["flip"]); changes.Add("flip"); } + if (@params["allowRoll"] != null) { renderer.allowRoll = @params["allowRoll"].ToObject(); changes.Add("allowRoll"); } + + if (@params["shadowBias"] != null) { renderer.shadowBias = @params["shadowBias"].ToObject(); changes.Add("shadowBias"); } + + RendererHelpers.ApplyCommonRendererProperties(renderer, @params, changes); + + if (@params["materialPath"] != null) + { + string matPath = @params["materialPath"].ToString(); + var findInst = new JObject { ["find"] = matPath }; + Material mat = ObjectResolver.Resolve(findInst, typeof(Material)) as Material; + if (mat != null) + { + renderer.sharedMaterial = mat; + changes.Add($"material={mat.name}"); + } + else + { + McpLog.Warn($"Material not found at path: {matPath}. Keeping existing material."); + } + } + + if (@params["trailMaterialPath"] != null) + { + var findInst = new JObject { ["find"] = @params["trailMaterialPath"].ToString() }; + Material mat = ObjectResolver.Resolve(findInst, typeof(Material)) as Material; + if (mat != null) { renderer.trailMaterial = mat; changes.Add("trailMaterial"); } + } + + EditorUtility.SetDirty(renderer); + return new { success = true, message = $"Updated renderer: {string.Join(", ", changes)}" }; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx/ParticleWrite.cs.meta b/Packages/MCPForUnity/Editor/Tools/Vfx/ParticleWrite.cs.meta new file mode 100644 index 00000000..1512de12 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx/ParticleWrite.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2a68818a59fac4e2c83ad23433ddc9c1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx/TrailControl.cs b/Packages/MCPForUnity/Editor/Tools/Vfx/TrailControl.cs new file mode 100644 index 00000000..ad6acc6e --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx/TrailControl.cs @@ -0,0 +1,36 @@ +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEngine; +using MCPForUnity.Editor.Helpers; + +namespace MCPForUnity.Editor.Tools.Vfx +{ + internal static class TrailControl + { + public static object Clear(JObject @params) + { + TrailRenderer tr = TrailRead.FindTrailRenderer(@params); + if (tr == null) return new { success = false, message = "TrailRenderer not found" }; + + Undo.RecordObject(tr, "Clear Trail"); + tr.Clear(); + return new { success = true, message = "Trail cleared" }; + } + + public static object Emit(JObject @params) + { + TrailRenderer tr = TrailRead.FindTrailRenderer(@params); + if (tr == null) return new { success = false, message = "TrailRenderer not found" }; + + RendererHelpers.EnsureMaterial(tr); + +#if UNITY_2021_1_OR_NEWER + Vector3 pos = ManageVfxCommon.ParseVector3(@params["position"]); + tr.AddPosition(pos); + return new { success = true, message = $"Emitted at ({pos.x}, {pos.y}, {pos.z})" }; +#else + return new { success = false, message = "AddPosition requires Unity 2021.1+" }; +#endif + } + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx/TrailControl.cs.meta b/Packages/MCPForUnity/Editor/Tools/Vfx/TrailControl.cs.meta new file mode 100644 index 00000000..84a2f3c6 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx/TrailControl.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: edebad99699494d5585418395a2bf518 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx/TrailRead.cs b/Packages/MCPForUnity/Editor/Tools/Vfx/TrailRead.cs new file mode 100644 index 00000000..4fae75aa --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx/TrailRead.cs @@ -0,0 +1,49 @@ +using Newtonsoft.Json.Linq; +using UnityEngine; + +namespace MCPForUnity.Editor.Tools.Vfx +{ + internal static class TrailRead + { + public static TrailRenderer FindTrailRenderer(JObject @params) + { + GameObject go = ManageVfxCommon.FindTargetGameObject(@params); + return go?.GetComponent(); + } + + public static object GetInfo(JObject @params) + { + TrailRenderer tr = FindTrailRenderer(@params); + if (tr == null) return new { success = false, message = "TrailRenderer not found" }; + + return new + { + success = true, + data = new + { + gameObject = tr.gameObject.name, + time = tr.time, + startWidth = tr.startWidth, + endWidth = tr.endWidth, + minVertexDistance = tr.minVertexDistance, + emitting = tr.emitting, + autodestruct = tr.autodestruct, + positionCount = tr.positionCount, + alignment = tr.alignment.ToString(), + textureMode = tr.textureMode.ToString(), + numCornerVertices = tr.numCornerVertices, + numCapVertices = tr.numCapVertices, + generateLightingData = tr.generateLightingData, + material = tr.sharedMaterial?.name, + shadowCastingMode = tr.shadowCastingMode.ToString(), + receiveShadows = tr.receiveShadows, + lightProbeUsage = tr.lightProbeUsage.ToString(), + reflectionProbeUsage = tr.reflectionProbeUsage.ToString(), + sortingOrder = tr.sortingOrder, + sortingLayerName = tr.sortingLayerName, + renderingLayerMask = tr.renderingLayerMask + } + }; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx/TrailRead.cs.meta b/Packages/MCPForUnity/Editor/Tools/Vfx/TrailRead.cs.meta new file mode 100644 index 00000000..388cd9ee --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx/TrailRead.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2921f0042777b4ebbaec4c79c60908a1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx/TrailWrite.cs b/Packages/MCPForUnity/Editor/Tools/Vfx/TrailWrite.cs new file mode 100644 index 00000000..fa11bbff --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx/TrailWrite.cs @@ -0,0 +1,130 @@ +using System; +using System.Collections.Generic; +using MCPForUnity.Editor.Helpers; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEngine; + +namespace MCPForUnity.Editor.Tools.Vfx +{ + internal static class TrailWrite + { + public static object SetTime(JObject @params) + { + TrailRenderer tr = TrailRead.FindTrailRenderer(@params); + if (tr == null) return new { success = false, message = "TrailRenderer not found" }; + + RendererHelpers.EnsureMaterial(tr); + + float time = @params["time"]?.ToObject() ?? 5f; + + Undo.RecordObject(tr, "Set Trail Time"); + tr.time = time; + EditorUtility.SetDirty(tr); + + return new { success = true, message = $"Set trail time to {time}s" }; + } + + public static object SetWidth(JObject @params) + { + TrailRenderer tr = TrailRead.FindTrailRenderer(@params); + if (tr == null) return new { success = false, message = "TrailRenderer not found" }; + + RendererHelpers.EnsureMaterial(tr); + + Undo.RecordObject(tr, "Set Trail Width"); + var changes = new List(); + + RendererHelpers.ApplyWidthProperties(@params, changes, + v => tr.startWidth = v, v => tr.endWidth = v, + v => tr.widthCurve = v, v => tr.widthMultiplier = v, + ManageVfxCommon.ParseAnimationCurve); + + EditorUtility.SetDirty(tr); + return new { success = true, message = $"Updated: {string.Join(", ", changes)}" }; + } + + public static object SetColor(JObject @params) + { + TrailRenderer tr = TrailRead.FindTrailRenderer(@params); + if (tr == null) return new { success = false, message = "TrailRenderer not found" }; + + RendererHelpers.EnsureMaterial(tr); + + Undo.RecordObject(tr, "Set Trail Color"); + var changes = new List(); + + RendererHelpers.ApplyColorProperties(@params, changes, + v => tr.startColor = v, v => tr.endColor = v, + v => tr.colorGradient = v, + ManageVfxCommon.ParseColor, ManageVfxCommon.ParseGradient, fadeEndAlpha: true); + + EditorUtility.SetDirty(tr); + return new { success = true, message = $"Updated: {string.Join(", ", changes)}" }; + } + + public static object SetMaterial(JObject @params) + { + TrailRenderer tr = TrailRead.FindTrailRenderer(@params); + return RendererHelpers.SetRendererMaterial(tr, @params, "Set Trail Material", ManageVfxCommon.FindMaterialByPath); + } + + public static object SetProperties(JObject @params) + { + TrailRenderer tr = TrailRead.FindTrailRenderer(@params); + if (tr == null) return new { success = false, message = "TrailRenderer not found" }; + + RendererHelpers.EnsureMaterial(tr); + + Undo.RecordObject(tr, "Set Trail Properties"); + var changes = new List(); + + // Handle material if provided + if (@params["materialPath"] != null) + { + Material mat = ManageVfxCommon.FindMaterialByPath(@params["materialPath"].ToString()); + if (mat != null) + { + tr.sharedMaterial = mat; + changes.Add($"material={mat.name}"); + } + else + { + McpLog.Warn($"Material not found: {@params["materialPath"]}"); + } + } + + // Handle time if provided + if (@params["time"] != null) { tr.time = @params["time"].ToObject(); changes.Add("time"); } + + // Handle width properties if provided + if (@params["width"] != null || @params["startWidth"] != null || @params["endWidth"] != null) + { + if (@params["width"] != null) + { + float w = @params["width"].ToObject(); + tr.startWidth = w; + tr.endWidth = w; + changes.Add("width"); + } + if (@params["startWidth"] != null) { tr.startWidth = @params["startWidth"].ToObject(); changes.Add("startWidth"); } + if (@params["endWidth"] != null) { tr.endWidth = @params["endWidth"].ToObject(); changes.Add("endWidth"); } + } + + if (@params["minVertexDistance"] != null) { tr.minVertexDistance = @params["minVertexDistance"].ToObject(); changes.Add("minVertexDistance"); } + if (@params["autodestruct"] != null) { tr.autodestruct = @params["autodestruct"].ToObject(); changes.Add("autodestruct"); } + if (@params["emitting"] != null) { tr.emitting = @params["emitting"].ToObject(); changes.Add("emitting"); } + + RendererHelpers.ApplyLineTrailProperties(@params, changes, + null, null, + v => tr.numCornerVertices = v, v => tr.numCapVertices = v, + v => tr.alignment = v, v => tr.textureMode = v, + v => tr.generateLightingData = v); + + RendererHelpers.ApplyCommonRendererProperties(tr, @params, changes); + + EditorUtility.SetDirty(tr); + return new { success = true, message = $"Updated: {string.Join(", ", changes)}" }; + } + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx/TrailWrite.cs.meta b/Packages/MCPForUnity/Editor/Tools/Vfx/TrailWrite.cs.meta new file mode 100644 index 00000000..27ffbfaa --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx/TrailWrite.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 33ba432240c134206a4f71ab24f0fb3a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphAssets.cs b/Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphAssets.cs new file mode 100644 index 00000000..5f2e575f --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphAssets.cs @@ -0,0 +1,568 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEngine; + +#if UNITY_VFX_GRAPH +using UnityEngine.VFX; +#endif + +namespace MCPForUnity.Editor.Tools.Vfx +{ + /// + /// Asset management operations for VFX Graph. + /// Handles creating, assigning, and listing VFX assets. + /// Requires com.unity.visualeffectgraph package and UNITY_VFX_GRAPH symbol. + /// + internal static class VfxGraphAssets + { +#if !UNITY_VFX_GRAPH + public static object CreateAsset(JObject @params) + { + return new { success = false, message = "VFX Graph package (com.unity.visualeffectgraph) not installed" }; + } + + public static object AssignAsset(JObject @params) + { + return new { success = false, message = "VFX Graph package (com.unity.visualeffectgraph) not installed" }; + } + + public static object ListTemplates(JObject @params) + { + return new { success = false, message = "VFX Graph package (com.unity.visualeffectgraph) not installed" }; + } + + public static object ListAssets(JObject @params) + { + return new { success = false, message = "VFX Graph package (com.unity.visualeffectgraph) not installed" }; + } +#else + private static readonly string[] SupportedVfxGraphVersions = { "12.1" }; + + /// + /// Creates a new VFX Graph asset file from a template. + /// + public static object CreateAsset(JObject @params) + { + string assetName = @params["assetName"]?.ToString(); + string folderPath = @params["folderPath"]?.ToString() ?? "Assets/VFX"; + string template = @params["template"]?.ToString() ?? "empty"; + + if (string.IsNullOrEmpty(assetName)) + { + return new { success = false, message = "assetName is required" }; + } + + string versionError = ValidateVfxGraphVersion(); + if (!string.IsNullOrEmpty(versionError)) + { + return new { success = false, message = versionError }; + } + + // Ensure folder exists + if (!AssetDatabase.IsValidFolder(folderPath)) + { + string[] folders = folderPath.Split('/'); + string currentPath = folders[0]; + for (int i = 1; i < folders.Length; i++) + { + string newPath = currentPath + "/" + folders[i]; + if (!AssetDatabase.IsValidFolder(newPath)) + { + AssetDatabase.CreateFolder(currentPath, folders[i]); + } + currentPath = newPath; + } + } + + string assetPath = $"{folderPath}/{assetName}.vfx"; + + // Check if asset already exists + if (AssetDatabase.LoadAssetAtPath(assetPath) != null) + { + bool overwrite = @params["overwrite"]?.ToObject() ?? false; + if (!overwrite) + { + return new { success = false, message = $"Asset already exists at {assetPath}. Set overwrite=true to replace." }; + } + AssetDatabase.DeleteAsset(assetPath); + } + + // Find template asset and copy it + string templatePath = FindTemplate(template); + string templateAssetPath = TryGetAssetPathFromFileSystem(templatePath); + VisualEffectAsset newAsset = null; + + if (!string.IsNullOrEmpty(templateAssetPath)) + { + // Copy the asset to create a new VFX Graph asset + if (!AssetDatabase.CopyAsset(templateAssetPath, assetPath)) + { + return new { success = false, message = $"Failed to copy VFX template from {templateAssetPath}" }; + } + AssetDatabase.Refresh(); + newAsset = AssetDatabase.LoadAssetAtPath(assetPath); + } + else + { + return new { success = false, message = "VFX template not found. Add a .vfx template asset or install VFX Graph templates." }; + } + + if (newAsset == null) + { + return new { success = false, message = "Failed to create VFX asset. Try using a template from list_templates." }; + } + + return new + { + success = true, + message = $"Created VFX asset: {assetPath}", + data = new + { + assetPath = assetPath, + assetName = newAsset.name, + template = template + } + }; + } + + /// + /// Finds VFX template path by name. + /// + private static string FindTemplate(string templateName) + { + // Get the actual filesystem path for the VFX Graph package using PackageManager API + var packageInfo = UnityEditor.PackageManager.PackageInfo.FindForAssetPath("Packages/com.unity.visualeffectgraph"); + + var searchPaths = new List(); + + if (packageInfo != null) + { + // Use the resolved path from PackageManager (handles Library/PackageCache paths) + searchPaths.Add(System.IO.Path.Combine(packageInfo.resolvedPath, "Editor/Templates")); + searchPaths.Add(System.IO.Path.Combine(packageInfo.resolvedPath, "Samples")); + } + + // Also search project-local paths + searchPaths.Add("Assets/VFX/Templates"); + + string[] templatePatterns = new[] + { + $"{templateName}.vfx", + $"VFX{templateName}.vfx", + $"Simple{templateName}.vfx", + $"{templateName}VFX.vfx" + }; + + foreach (string basePath in searchPaths) + { + string searchRoot = basePath; + if (basePath.StartsWith("Assets/")) + { + searchRoot = System.IO.Path.Combine(UnityEngine.Application.dataPath, basePath.Substring("Assets/".Length)); + } + + if (!System.IO.Directory.Exists(searchRoot)) + { + continue; + } + + foreach (string pattern in templatePatterns) + { + string[] files = System.IO.Directory.GetFiles(searchRoot, pattern, System.IO.SearchOption.AllDirectories); + if (files.Length > 0) + { + return files[0]; + } + } + + // Also search by partial match + try + { + string[] allVfxFiles = System.IO.Directory.GetFiles(searchRoot, "*.vfx", System.IO.SearchOption.AllDirectories); + foreach (string file in allVfxFiles) + { + if (System.IO.Path.GetFileNameWithoutExtension(file).ToLower().Contains(templateName.ToLower())) + { + return file; + } + } + } + catch (Exception ex) + { + Debug.LogWarning($"Failed to search VFX templates under '{searchRoot}': {ex.Message}"); + } + } + + // Search in project assets + string[] guids = AssetDatabase.FindAssets("t:VisualEffectAsset " + templateName); + if (guids.Length > 0) + { + string assetPath = AssetDatabase.GUIDToAssetPath(guids[0]); + // Convert asset path (e.g., "Assets/...") to absolute filesystem path + if (!string.IsNullOrEmpty(assetPath) && assetPath.StartsWith("Assets/")) + { + return System.IO.Path.Combine(UnityEngine.Application.dataPath, assetPath.Substring("Assets/".Length)); + } + if (!string.IsNullOrEmpty(assetPath) && assetPath.StartsWith("Packages/")) + { + var info = UnityEditor.PackageManager.PackageInfo.FindForAssetPath(assetPath); + if (info != null) + { + string relPath = assetPath.Substring(("Packages/" + info.name + "/").Length); + return System.IO.Path.Combine(info.resolvedPath, relPath); + } + } + return null; + } + + return null; + } + + /// + /// Assigns a VFX asset to a VisualEffect component. + /// + public static object AssignAsset(JObject @params) + { + VisualEffect vfx = VfxGraphCommon.FindVisualEffect(@params); + if (vfx == null) + { + return new { success = false, message = "VisualEffect component not found" }; + } + + string assetPath = @params["assetPath"]?.ToString(); + if (string.IsNullOrEmpty(assetPath)) + { + return new { success = false, message = "assetPath is required" }; + } + + // Validate and normalize path + // Reject absolute paths, parent directory traversal, and backslashes + if (assetPath.Contains("\\") || assetPath.Contains("..") || System.IO.Path.IsPathRooted(assetPath)) + { + return new { success = false, message = "Invalid assetPath: traversal and absolute paths are not allowed" }; + } + + if (assetPath.StartsWith("Packages/")) + { + return new { success = false, message = "Invalid assetPath: VFX assets must live under Assets/." }; + } + + if (!assetPath.StartsWith("Assets/")) + { + assetPath = "Assets/" + assetPath; + } + if (!assetPath.EndsWith(".vfx")) + { + assetPath += ".vfx"; + } + + // Verify the normalized path doesn't escape the project + string fullPath = System.IO.Path.Combine(UnityEngine.Application.dataPath, assetPath.Substring("Assets/".Length)); + string canonicalProjectRoot = System.IO.Path.GetFullPath(UnityEngine.Application.dataPath); + string canonicalAssetPath = System.IO.Path.GetFullPath(fullPath); + if (!canonicalAssetPath.StartsWith(canonicalProjectRoot + System.IO.Path.DirectorySeparatorChar) && + canonicalAssetPath != canonicalProjectRoot) + { + return new { success = false, message = "Invalid assetPath: would escape project directory" }; + } + + var asset = AssetDatabase.LoadAssetAtPath(assetPath); + if (asset == null) + { + // Try searching by name + string searchName = System.IO.Path.GetFileNameWithoutExtension(assetPath); + string[] guids = AssetDatabase.FindAssets($"t:VisualEffectAsset {searchName}"); + if (guids.Length > 0) + { + assetPath = AssetDatabase.GUIDToAssetPath(guids[0]); + asset = AssetDatabase.LoadAssetAtPath(assetPath); + } + } + + if (asset == null) + { + return new { success = false, message = $"VFX asset not found: {assetPath}" }; + } + + Undo.RecordObject(vfx, "Assign VFX Asset"); + vfx.visualEffectAsset = asset; + EditorUtility.SetDirty(vfx); + + return new + { + success = true, + message = $"Assigned VFX asset '{asset.name}' to {vfx.gameObject.name}", + data = new + { + gameObject = vfx.gameObject.name, + assetName = asset.name, + assetPath = assetPath + } + }; + } + + /// + /// Lists available VFX templates. + /// + public static object ListTemplates(JObject @params) + { + var templates = new List(); + var seenPaths = new HashSet(StringComparer.OrdinalIgnoreCase); + + // Get the actual filesystem path for the VFX Graph package using PackageManager API + var packageInfo = UnityEditor.PackageManager.PackageInfo.FindForAssetPath("Packages/com.unity.visualeffectgraph"); + + var searchPaths = new List(); + + if (packageInfo != null) + { + // Use the resolved path from PackageManager (handles Library/PackageCache paths) + searchPaths.Add(System.IO.Path.Combine(packageInfo.resolvedPath, "Editor/Templates")); + searchPaths.Add(System.IO.Path.Combine(packageInfo.resolvedPath, "Samples")); + } + + // Also search project-local paths + searchPaths.Add("Assets/VFX/Templates"); + searchPaths.Add("Assets/VFX"); + + // Precompute normalized package path for comparison + string normalizedPackagePath = null; + if (packageInfo != null) + { + normalizedPackagePath = packageInfo.resolvedPath.Replace("\\", "/"); + } + + // Precompute the Assets base path for converting absolute paths to project-relative + string assetsBasePath = Application.dataPath.Replace("\\", "/"); + + foreach (string basePath in searchPaths) + { + if (!System.IO.Directory.Exists(basePath)) + { + continue; + } + + try + { + string[] vfxFiles = System.IO.Directory.GetFiles(basePath, "*.vfx", System.IO.SearchOption.AllDirectories); + foreach (string file in vfxFiles) + { + string absolutePath = file.Replace("\\", "/"); + string name = System.IO.Path.GetFileNameWithoutExtension(file); + bool isPackage = normalizedPackagePath != null && absolutePath.StartsWith(normalizedPackagePath); + + // Convert absolute path to project-relative path + string projectRelativePath; + if (isPackage) + { + // For package paths, convert to Packages/... format + projectRelativePath = "Packages/" + packageInfo.name + absolutePath.Substring(normalizedPackagePath.Length); + } + else if (absolutePath.StartsWith(assetsBasePath)) + { + // For project assets, convert to Assets/... format + projectRelativePath = "Assets" + absolutePath.Substring(assetsBasePath.Length); + } + else + { + // Fallback: use the absolute path if we can't determine the relative path + projectRelativePath = absolutePath; + } + + string normalizedPath = projectRelativePath.Replace("\\", "/"); + if (seenPaths.Add(normalizedPath)) + { + templates.Add(new { name = name, path = projectRelativePath, source = isPackage ? "package" : "project" }); + } + } + } + catch (Exception ex) + { + Debug.LogWarning($"Failed to list VFX templates under '{basePath}': {ex.Message}"); + } + } + + // Also search project assets + string[] guids = AssetDatabase.FindAssets("t:VisualEffectAsset"); + foreach (string guid in guids) + { + string path = AssetDatabase.GUIDToAssetPath(guid); + string normalizedPath = path.Replace("\\", "/"); + if (seenPaths.Add(normalizedPath)) + { + string name = System.IO.Path.GetFileNameWithoutExtension(path); + templates.Add(new { name = name, path = path, source = "project" }); + } + } + + return new + { + success = true, + data = new + { + count = templates.Count, + templates = templates + } + }; + } + + /// + /// Lists all VFX assets in the project. + /// + public static object ListAssets(JObject @params) + { + string searchFolder = @params["folder"]?.ToString(); + string searchPattern = @params["search"]?.ToString(); + + string filter = "t:VisualEffectAsset"; + if (!string.IsNullOrEmpty(searchPattern)) + { + filter += " " + searchPattern; + } + + string[] guids; + if (!string.IsNullOrEmpty(searchFolder)) + { + if (searchFolder.Contains("\\") || searchFolder.Contains("..") || System.IO.Path.IsPathRooted(searchFolder)) + { + return new { success = false, message = "Invalid folder: traversal and absolute paths are not allowed" }; + } + + if (searchFolder.StartsWith("Packages/")) + { + return new { success = false, message = "Invalid folder: VFX assets must live under Assets/." }; + } + + if (!searchFolder.StartsWith("Assets/")) + { + searchFolder = "Assets/" + searchFolder; + } + + string fullPath = System.IO.Path.Combine(UnityEngine.Application.dataPath, searchFolder.Substring("Assets/".Length)); + string canonicalProjectRoot = System.IO.Path.GetFullPath(UnityEngine.Application.dataPath); + string canonicalSearchFolder = System.IO.Path.GetFullPath(fullPath); + if (!canonicalSearchFolder.StartsWith(canonicalProjectRoot + System.IO.Path.DirectorySeparatorChar) && + canonicalSearchFolder != canonicalProjectRoot) + { + return new { success = false, message = "Invalid folder: would escape project directory" }; + } + + guids = AssetDatabase.FindAssets(filter, new[] { searchFolder }); + } + else + { + guids = AssetDatabase.FindAssets(filter); + } + + var assets = new List(); + foreach (string guid in guids) + { + string path = AssetDatabase.GUIDToAssetPath(guid); + var asset = AssetDatabase.LoadAssetAtPath(path); + if (asset != null) + { + assets.Add(new + { + name = asset.name, + path = path, + guid = guid + }); + } + } + + return new + { + success = true, + data = new + { + count = assets.Count, + assets = assets + } + }; + } + + private static string ValidateVfxGraphVersion() + { + var info = UnityEditor.PackageManager.PackageInfo.FindForAssetPath("Packages/com.unity.visualeffectgraph"); + if (info == null) + { + return "VFX Graph package (com.unity.visualeffectgraph) not installed"; + } + + if (IsVersionSupported(info.version)) + { + return null; + } + + string supported = string.Join(", ", SupportedVfxGraphVersions.Select(version => $"{version}.x")); + return $"Unsupported VFX Graph version {info.version}. Supported versions: {supported}."; + } + + private static bool IsVersionSupported(string installedVersion) + { + if (string.IsNullOrEmpty(installedVersion)) + { + return false; + } + + string normalized = installedVersion; + int suffixIndex = normalized.IndexOfAny(new[] { '-', '+' }); + if (suffixIndex >= 0) + { + normalized = normalized.Substring(0, suffixIndex); + } + + if (!Version.TryParse(normalized, out Version installed)) + { + return false; + } + + foreach (string supported in SupportedVfxGraphVersions) + { + if (!Version.TryParse(supported, out Version target)) + { + continue; + } + + if (installed.Major == target.Major && installed.Minor == target.Minor) + { + return true; + } + } + + return false; + } + + private static string TryGetAssetPathFromFileSystem(string templatePath) + { + if (string.IsNullOrEmpty(templatePath)) + { + return null; + } + + string normalized = templatePath.Replace("\\", "/"); + string assetsRoot = Application.dataPath.Replace("\\", "/"); + + if (normalized.StartsWith(assetsRoot + "/")) + { + return "Assets/" + normalized.Substring(assetsRoot.Length + 1); + } + + var packageInfo = UnityEditor.PackageManager.PackageInfo.FindForAssetPath("Packages/com.unity.visualeffectgraph"); + if (packageInfo != null) + { + string packageRoot = packageInfo.resolvedPath.Replace("\\", "/"); + if (normalized.StartsWith(packageRoot + "/")) + { + return "Packages/" + packageInfo.name + "/" + normalized.Substring(packageRoot.Length + 1); + } + } + + return null; + } +#endif + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphAssets.cs.meta b/Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphAssets.cs.meta new file mode 100644 index 00000000..17085b4b --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphAssets.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a1dfb51f038764a6da23619cac60f299 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphCommon.cs b/Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphCommon.cs new file mode 100644 index 00000000..d342085b --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphCommon.cs @@ -0,0 +1,29 @@ +using Newtonsoft.Json.Linq; +using UnityEngine; + +#if UNITY_VFX_GRAPH +using UnityEngine.VFX; +#endif + +namespace MCPForUnity.Editor.Tools.Vfx +{ + /// + /// Common utilities for VFX Graph operations. + /// + internal static class VfxGraphCommon + { +#if UNITY_VFX_GRAPH + /// + /// Finds a VisualEffect component on the target GameObject. + /// + public static VisualEffect FindVisualEffect(JObject @params) + { + if (@params == null) + return null; + + GameObject go = ManageVfxCommon.FindTargetGameObject(@params); + return go?.GetComponent(); + } +#endif + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphCommon.cs.meta b/Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphCommon.cs.meta new file mode 100644 index 00000000..b9319780 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphCommon.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0a6dbf78125194cf29b98d658af1039a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphControl.cs b/Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphControl.cs new file mode 100644 index 00000000..e9064815 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphControl.cs @@ -0,0 +1,89 @@ +using Newtonsoft.Json.Linq; +using UnityEditor; + +#if UNITY_VFX_GRAPH +using UnityEngine.VFX; +#endif + +namespace MCPForUnity.Editor.Tools.Vfx +{ + /// + /// Playback control operations for VFX Graph (VisualEffect component). + /// Requires com.unity.visualeffectgraph package and UNITY_VFX_GRAPH symbol. + /// + internal static class VfxGraphControl + { +#if !UNITY_VFX_GRAPH + public static object Control(JObject @params, string action) + { + return new { success = false, message = "VFX Graph package (com.unity.visualeffectgraph) not installed" }; + } + + public static object SetPlaybackSpeed(JObject @params) + { + return new { success = false, message = "VFX Graph package (com.unity.visualeffectgraph) not installed" }; + } + + public static object SetSeed(JObject @params) + { + return new { success = false, message = "VFX Graph package (com.unity.visualeffectgraph) not installed" }; + } +#else + public static object Control(JObject @params, string action) + { + VisualEffect vfx = VfxGraphCommon.FindVisualEffect(@params); + if (vfx == null) + { + return new { success = false, message = "VisualEffect not found" }; + } + + switch (action) + { + case "play": vfx.Play(); break; + case "stop": vfx.Stop(); break; + case "pause": vfx.pause = !vfx.pause; break; + case "reinit": vfx.Reinit(); break; + default: + return new { success = false, message = $"Unknown VFX action: {action}" }; + } + + return new { success = true, message = $"VFX {action}", isPaused = vfx.pause }; + } + + public static object SetPlaybackSpeed(JObject @params) + { + VisualEffect vfx = VfxGraphCommon.FindVisualEffect(@params); + if (vfx == null) + { + return new { success = false, message = "VisualEffect not found" }; + } + + float rate = @params["playRate"]?.ToObject() ?? 1f; + Undo.RecordObject(vfx, "Set VFX Play Rate"); + vfx.playRate = rate; + EditorUtility.SetDirty(vfx); + + return new { success = true, message = $"Set play rate = {rate}" }; + } + + public static object SetSeed(JObject @params) + { + VisualEffect vfx = VfxGraphCommon.FindVisualEffect(@params); + if (vfx == null) + { + return new { success = false, message = "VisualEffect not found" }; + } + + uint seed = @params["seed"]?.ToObject() ?? 0; + bool resetOnPlay = @params["resetSeedOnPlay"]?.ToObject() ?? true; + + Undo.RecordObject(vfx, "Set VFX Seed"); + vfx.startSeed = seed; + vfx.resetSeedOnPlay = resetOnPlay; + EditorUtility.SetDirty(vfx); + + return new { success = true, message = $"Set seed = {seed}" }; + } +#endif + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphControl.cs.meta b/Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphControl.cs.meta new file mode 100644 index 00000000..7c112c16 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphControl.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4720d53b13bc14989803670a788a1eaa +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphRead.cs b/Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphRead.cs new file mode 100644 index 00000000..e3cb8f43 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphRead.cs @@ -0,0 +1,47 @@ +using Newtonsoft.Json.Linq; +using UnityEngine; + +#if UNITY_VFX_GRAPH +using UnityEngine.VFX; +#endif + +namespace MCPForUnity.Editor.Tools.Vfx +{ + /// + /// Read operations for VFX Graph (VisualEffect component). + /// Requires com.unity.visualeffectgraph package and UNITY_VFX_GRAPH symbol. + /// + internal static class VfxGraphRead + { +#if !UNITY_VFX_GRAPH + public static object GetInfo(JObject @params) + { + return new { success = false, message = "VFX Graph package (com.unity.visualeffectgraph) not installed" }; + } +#else + public static object GetInfo(JObject @params) + { + VisualEffect vfx = VfxGraphCommon.FindVisualEffect(@params); + if (vfx == null) + { + return new { success = false, message = "VisualEffect not found" }; + } + + return new + { + success = true, + data = new + { + gameObject = vfx.gameObject.name, + assetName = vfx.visualEffectAsset?.name ?? "None", + aliveParticleCount = vfx.aliveParticleCount, + culled = vfx.culled, + pause = vfx.pause, + playRate = vfx.playRate, + startSeed = vfx.startSeed + } + }; + } +#endif + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphRead.cs.meta b/Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphRead.cs.meta new file mode 100644 index 00000000..ebf1e00d --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphRead.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 419e293a95ea64af5ad6984b1d02b9b1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphWrite.cs b/Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphWrite.cs new file mode 100644 index 00000000..530bde9f --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphWrite.cs @@ -0,0 +1,310 @@ +using System; +using MCPForUnity.Editor.Helpers; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using UnityEditor; +using UnityEngine; + +#if UNITY_VFX_GRAPH +using UnityEngine.VFX; +#endif + +namespace MCPForUnity.Editor.Tools.Vfx +{ + /// + /// Parameter setter operations for VFX Graph (VisualEffect component). + /// Requires com.unity.visualeffectgraph package and UNITY_VFX_GRAPH symbol. + /// + internal static class VfxGraphWrite + { +#if !UNITY_VFX_GRAPH + public static object SetParameter(JObject @params, Action setter) + { + return new { success = false, message = "VFX Graph package (com.unity.visualeffectgraph) not installed" }; + } + + public static object SetVector(JObject @params, int dims) + { + return new { success = false, message = "VFX Graph package (com.unity.visualeffectgraph) not installed" }; + } + + public static object SetColor(JObject @params) + { + return new { success = false, message = "VFX Graph package (com.unity.visualeffectgraph) not installed" }; + } + + public static object SetGradient(JObject @params) + { + return new { success = false, message = "VFX Graph package (com.unity.visualeffectgraph) not installed" }; + } + + public static object SetTexture(JObject @params) + { + return new { success = false, message = "VFX Graph package (com.unity.visualeffectgraph) not installed" }; + } + + public static object SetMesh(JObject @params) + { + return new { success = false, message = "VFX Graph package (com.unity.visualeffectgraph) not installed" }; + } + + public static object SetCurve(JObject @params) + { + return new { success = false, message = "VFX Graph package (com.unity.visualeffectgraph) not installed" }; + } + + public static object SendEvent(JObject @params) + { + return new { success = false, message = "VFX Graph package (com.unity.visualeffectgraph) not installed" }; + } +#else + public static object SetParameter(JObject @params, Action setter) + { + VisualEffect vfx = VfxGraphCommon.FindVisualEffect(@params); + if (vfx == null) + { + return new { success = false, message = "VisualEffect not found" }; + } + + string param = @params["parameter"]?.ToString(); + if (string.IsNullOrEmpty(param)) + { + return new { success = false, message = "Parameter name required" }; + } + + JToken valueToken = @params["value"]; + if (valueToken == null) + { + return new { success = false, message = "Value required" }; + } + + // Safely deserialize the value + T value; + try + { + value = valueToken.ToObject(); + } + catch (JsonException ex) + { + return new { success = false, message = $"Invalid value for {param}: {ex.Message}" }; + } + catch (InvalidCastException ex) + { + return new { success = false, message = $"Invalid value type for {param}: {ex.Message}" }; + } + + Undo.RecordObject(vfx, $"Set VFX {param}"); + setter(vfx, param, value); + EditorUtility.SetDirty(vfx); + + return new { success = true, message = $"Set {param} = {value}" }; + } + + public static object SetVector(JObject @params, int dims) + { + VisualEffect vfx = VfxGraphCommon.FindVisualEffect(@params); + if (vfx == null) + { + return new { success = false, message = "VisualEffect not found" }; + } + + string param = @params["parameter"]?.ToString(); + if (string.IsNullOrEmpty(param)) + { + return new { success = false, message = "Parameter name required" }; + } + + if (dims != 2 && dims != 3 && dims != 4) + { + return new { success = false, message = $"Unsupported vector dimension: {dims}. Expected 2, 3, or 4." }; + } + + Vector4 vec = ManageVfxCommon.ParseVector4(@params["value"]); + Undo.RecordObject(vfx, $"Set VFX {param}"); + + switch (dims) + { + case 2: vfx.SetVector2(param, new Vector2(vec.x, vec.y)); break; + case 3: vfx.SetVector3(param, new Vector3(vec.x, vec.y, vec.z)); break; + case 4: vfx.SetVector4(param, vec); break; + } + + EditorUtility.SetDirty(vfx); + return new { success = true, message = $"Set {param}" }; + } + + public static object SetColor(JObject @params) + { + VisualEffect vfx = VfxGraphCommon.FindVisualEffect(@params); + if (vfx == null) + { + return new { success = false, message = "VisualEffect not found" }; + } + + string param = @params["parameter"]?.ToString(); + if (string.IsNullOrEmpty(param)) + { + return new { success = false, message = "Parameter name required" }; + } + + Color color = ManageVfxCommon.ParseColor(@params["value"]); + Undo.RecordObject(vfx, $"Set VFX Color {param}"); + vfx.SetVector4(param, new Vector4(color.r, color.g, color.b, color.a)); + EditorUtility.SetDirty(vfx); + + return new { success = true, message = $"Set color {param}" }; + } + + public static object SetGradient(JObject @params) + { + VisualEffect vfx = VfxGraphCommon.FindVisualEffect(@params); + if (vfx == null) + { + return new { success = false, message = "VisualEffect not found" }; + } + + string param = @params["parameter"]?.ToString(); + if (string.IsNullOrEmpty(param)) + { + return new { success = false, message = "Parameter name required" }; + } + + Gradient gradient = ManageVfxCommon.ParseGradient(@params["gradient"]); + Undo.RecordObject(vfx, $"Set VFX Gradient {param}"); + vfx.SetGradient(param, gradient); + EditorUtility.SetDirty(vfx); + + return new { success = true, message = $"Set gradient {param}" }; + } + + public static object SetTexture(JObject @params) + { + VisualEffect vfx = VfxGraphCommon.FindVisualEffect(@params); + if (vfx == null) + { + return new { success = false, message = "VisualEffect not found" }; + } + + string param = @params["parameter"]?.ToString(); + string path = @params["texturePath"]?.ToString(); + if (string.IsNullOrEmpty(param) || string.IsNullOrEmpty(path)) + { + return new { success = false, message = "Parameter and texturePath required" }; + } + + var findInst = new JObject { ["find"] = path }; + Texture tex = ObjectResolver.Resolve(findInst, typeof(Texture)) as Texture; + if (tex == null) + { + return new { success = false, message = $"Texture not found: {path}" }; + } + + Undo.RecordObject(vfx, $"Set VFX Texture {param}"); + vfx.SetTexture(param, tex); + EditorUtility.SetDirty(vfx); + + return new { success = true, message = $"Set texture {param} = {tex.name}" }; + } + + public static object SetMesh(JObject @params) + { + VisualEffect vfx = VfxGraphCommon.FindVisualEffect(@params); + if (vfx == null) + { + return new { success = false, message = "VisualEffect not found" }; + } + + string param = @params["parameter"]?.ToString(); + string path = @params["meshPath"]?.ToString(); + if (string.IsNullOrEmpty(param) || string.IsNullOrEmpty(path)) + { + return new { success = false, message = "Parameter and meshPath required" }; + } + + var findInst = new JObject { ["find"] = path }; + Mesh mesh = ObjectResolver.Resolve(findInst, typeof(Mesh)) as Mesh; + if (mesh == null) + { + return new { success = false, message = $"Mesh not found: {path}" }; + } + + Undo.RecordObject(vfx, $"Set VFX Mesh {param}"); + vfx.SetMesh(param, mesh); + EditorUtility.SetDirty(vfx); + + return new { success = true, message = $"Set mesh {param} = {mesh.name}" }; + } + + public static object SetCurve(JObject @params) + { + VisualEffect vfx = VfxGraphCommon.FindVisualEffect(@params); + if (vfx == null) + { + return new { success = false, message = "VisualEffect not found" }; + } + + string param = @params["parameter"]?.ToString(); + if (string.IsNullOrEmpty(param)) + { + return new { success = false, message = "Parameter name required" }; + } + + AnimationCurve curve = ManageVfxCommon.ParseAnimationCurve(@params["curve"], 1f); + Undo.RecordObject(vfx, $"Set VFX Curve {param}"); + vfx.SetAnimationCurve(param, curve); + EditorUtility.SetDirty(vfx); + + return new { success = true, message = $"Set curve {param}" }; + } + + public static object SendEvent(JObject @params) + { + VisualEffect vfx = VfxGraphCommon.FindVisualEffect(@params); + if (vfx == null) + { + return new { success = false, message = "VisualEffect not found" }; + } + + string eventName = @params["eventName"]?.ToString(); + if (string.IsNullOrEmpty(eventName)) + { + return new { success = false, message = "Event name required" }; + } + + VFXEventAttribute attr = vfx.CreateVFXEventAttribute(); + if (@params["position"] != null) + { + attr.SetVector3("position", ManageVfxCommon.ParseVector3(@params["position"])); + } + if (@params["velocity"] != null) + { + attr.SetVector3("velocity", ManageVfxCommon.ParseVector3(@params["velocity"])); + } + if (@params["color"] != null) + { + var c = ManageVfxCommon.ParseColor(@params["color"]); + attr.SetVector3("color", new Vector3(c.r, c.g, c.b)); + } + if (@params["size"] != null) + { + float? sizeValue = @params["size"].Value(); + if (sizeValue.HasValue) + { + attr.SetFloat("size", sizeValue.Value); + } + } + if (@params["lifetime"] != null) + { + float? lifetimeValue = @params["lifetime"].Value(); + if (lifetimeValue.HasValue) + { + attr.SetFloat("lifetime", lifetimeValue.Value); + } + } + + vfx.SendEvent(eventName, attr); + return new { success = true, message = $"Sent event '{eventName}'" }; + } +#endif + } +} diff --git a/Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphWrite.cs.meta b/Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphWrite.cs.meta new file mode 100644 index 00000000..7ec78b68 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Tools/Vfx/VfxGraphWrite.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7516cdde6a4b648c9a2def6c26103cc4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Windows.meta b/Packages/MCPForUnity/Editor/Windows.meta new file mode 100644 index 00000000..eda016e5 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Windows.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d2ee39f5d4171184eb208e865c1ef4c1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Windows/Components.meta b/Packages/MCPForUnity/Editor/Windows/Components.meta new file mode 100644 index 00000000..716e0fab --- /dev/null +++ b/Packages/MCPForUnity/Editor/Windows/Components.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 82074be914aefa84cb557c599d2319b3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Windows/Components/Advanced.meta b/Packages/MCPForUnity/Editor/Windows/Components/Advanced.meta new file mode 100644 index 00000000..9c3d0246 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Windows/Components/Advanced.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7723ed5eaaccb104e93acb9fd2d8cd32 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/MCPForUnity/Editor/Windows/Components/Advanced/McpAdvancedSection.cs b/Packages/MCPForUnity/Editor/Windows/Components/Advanced/McpAdvancedSection.cs new file mode 100644 index 00000000..8898fcf2 --- /dev/null +++ b/Packages/MCPForUnity/Editor/Windows/Components/Advanced/McpAdvancedSection.cs @@ -0,0 +1,467 @@ +using System; +using System.IO; +using System.Runtime.InteropServices; +using MCPForUnity.Editor.Constants; +using MCPForUnity.Editor.Helpers; +using MCPForUnity.Editor.Services; +using UnityEditor; +using UnityEngine; +using UnityEngine.UIElements; + +namespace MCPForUnity.Editor.Windows.Components.Advanced +{ + /// + /// Controller for the Advanced Settings section. + /// Handles path overrides, server source configuration, dev mode, and package deployment. + /// + public class McpAdvancedSection + { + // UI Elements + private TextField uvxPathOverride; + private Button browseUvxButton; + private Button clearUvxButton; + private VisualElement uvxPathStatus; + private TextField gitUrlOverride; + private Button browseGitUrlButton; + private Button clearGitUrlButton; + private Toggle debugLogsToggle; + private Toggle devModeForceRefreshToggle; + private Toggle useBetaServerToggle; + private TextField deploySourcePath; + private Button browseDeploySourceButton; + private Button clearDeploySourceButton; + private Button deployButton; + private Button deployRestoreButton; + private Label deployTargetLabel; + private Label deployBackupLabel; + private Label deployStatusLabel; + private VisualElement healthIndicator; + private Label healthStatus; + private Button testConnectionButton; + + // Events + public event Action OnGitUrlChanged; + public event Action OnHttpServerCommandUpdateRequested; + public event Action OnTestConnectionRequested; + public event Action OnBetaModeChanged; + + public VisualElement Root { get; private set; } + + public McpAdvancedSection(VisualElement root) + { + Root = root; + CacheUIElements(); + InitializeUI(); + RegisterCallbacks(); + } + + private void CacheUIElements() + { + uvxPathOverride = Root.Q("uv-path-override"); + browseUvxButton = Root.Q

    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 z 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 N00aO400000003t|ro{jN literal 0 HcmV?d00001 diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Textures/Concrete_Normal.tif.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Textures/Concrete_Normal.tif.meta new file mode 100644 index 00000000..c8f5d8ae --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/DemoSceneAssets/Textures/Concrete_Normal.tif.meta @@ -0,0 +1,135 @@ +fileFormatVersion: 2 +guid: cdebec39dbf81a14688e1de8d12897b4 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + 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: 1 + 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: Server + 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/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Editor.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Editor.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Editor.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Editor.meta diff --git a/Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Editor/Scripts.meta b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Editor/Scripts.meta similarity index 100% rename from Assets/Samples/XR Interaction Toolkit/2.5.2/Starter Assets/Editor/Scripts.meta rename to Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Editor/Scripts.meta diff --git a/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Editor/Scripts/StarterAssetsSampleProjectValidation.cs b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Editor/Scripts/StarterAssetsSampleProjectValidation.cs new file mode 100644 index 00000000..33f2b585 --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.0.7/Starter Assets/Editor/Scripts/StarterAssetsSampleProjectValidation.cs @@ -0,0 +1,195 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Unity.XR.CoreUtils.Editor; +using UnityEditor.PackageManager; +using UnityEditor.PackageManager.Requests; +using UnityEngine; +using UnityEngine.XR.Interaction.Toolkit; + +#if UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS +using UnityEngine.InputSystem; +#endif + +namespace UnityEditor.XR.Interaction.Toolkit.Samples +{ + ///

  • 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≥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∾gY{P0mFMB|M&tBCRM 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

  • txeD>CsI9e#SkX1F7<|2;ll5 z9~wp;qb!c-#_heD+9QAhVEKh5<8&%Akyj?Qp=<=e;(Oo!w*kNX8wq9jxJ|o2FX{s3 z|LkoMKOYVOT!cKS^1a``;@#fw<TV~0OVZzY`k8m&suErSc^Cm zc%NeZ1Ry5xk>;B^(@a{Z>;y)*1e&yZTkh1a2LkRUD`~Dot$_oBf0htV}Au6Ct#@gGXHu*Z0dfU0&~RVq0fW zJ_@{_Ypworc}@!Lb1VVGJETR+K3n#7cZ(-3Af7&V&H>6aSH3|=!EMvmxa$oocn$Q! z|6zdf-L~V_j^1P^%b>SzC2oNm2-q-Q;j1K+PDfwEab=BLaZgt!F5Rjv6bPA_W&Jl0 zI$Dlf=G3@iaJTWzETr$_qT&?pKguo>lMzL??@c3L3%Yw*9*A`9IrpxA)q{7SZ8R5- z~OalKTd{WzsW!&N3wQs=YhSfmO)N>L;Uzj5%IJIT_xy383AZz-#7kEmrxiSws4 z^#7nI`=6cAz4m|_DlY~FL3t5I@Wbua=EK@~pX+EaNhWC}tWa5xxrl;m&@DD%ONY(O zA@}Fpu+Zh&hMxT=0Fp#3aB#^)qx|QD$W^lDyNLoD)Xb51{Ly>gUSQKn;s~v}nv`o) zE=gA8U1+1+r$;iYzvJ}h&PXC3*mW8R50xasG{nwx=4weTc}g;o_J~(8lb?m+syVFF z3u$`p}>^r3h&?J1S3tdvOehDxZ8 zXwOmaA0$m>$|>>H#`qH?9eFe zZRN(t@?^bCM!Fsv4Az_l$^JN$3jij@XCWsxu&}W@y^6FeL(eq#ig3#Ma#oLs78+<1 zryuPmgq2q*=6eo>b=JJ-KICNFsy}F2TcJ8@GIWV|ra$t1#V%)Bs&*P~=|)9nKm$=!>_+k_3Vd*RK=ZeFQsnjgTF+LK}5PO1Km`ABTPjSUAYiI8O z=U4yT86VJ*jQhMhMJYG|L{@6LM8X?01ru@nH`X}fa3lyD(izq#xKw{Vy}x6kZQRG2 zR2$)((-yFC;v&Lq+?Q4xdDoAJnO3s8EUcvq#4KDi|Jm4q6Fi|dq&k#QC>6q>Q$?8e z0%bd$J6S&}@t=C4%{EvMR3g~nL(3v+eoMz?p38rdA&lY&EkkAfqBe7a6k)V;>lurN z<*a#hsFQcxtt>fsGj%g#DC}D2E;Ll#$4RxHV9?a-9Z1t_3Bl{cND1lO!~E}-ep_q; zewTsW3u<#+Ia*iS_o(BS%*q%AUMOrtW+*5G5mQ%8BfS20&ivHQ*9k zVx(HIP`hnco`xwyYRVd-V657Cyd(cs@5ag8;B5WudW=csxRbljKl>t<-@pBkQObVw zE1qT_Ed`ljBI{#_i#0Q{$E;sS#aVdO_6wE5@=#~Y1~&2ST^~V?@5^Xv&H$f5CKmZk zSFgL(*8Me{z#K(YQXRM=0~s&fV9pl{48^?Tq%3FC3q1a3w@IA_daE;$X#-cZlU42; zBf>$9*xAGns%LFxd}u!Z0?$xaWowhIMisQ54xkF&UHT9Id~)10=b^_F8QH4^uX9P( z!RPk1KhDpPp5GT;SL@KXgd(c$zqOLTUsiA2*e+=GBAADPOpZgC*UHnL(Gb`Me(Cdv zcA0_OUsd|}7AYexM;#0Rxhx_aV?XdtgYTidrL4%4Zu&%dpw&kBRM9 zvksXoFvRU!6R7~zyJ=CnHW5+yKAb6umti`seXAmMd zH`YD7TIy6jABw#yjsWyNYf6jWyhwCmFXnWAlC6KMN{2)L`+{|T8EbeYV$%a)Oq(6~ z(q>v4bqzwtLvVbt(<2BM$!6l2DX%b66gOR_Z}pyo=asvQSX+R_3$SY_3OG07l~s4( zoJ#SBt6kFWIn(HdVukw<`@>h1D?2?Lc3_VZpO`dkiI3u^o<$AXv}Lxsk*%L?9SF!9 zbjaz3^RlFlEPk%A^^K3sK6q)aAoM7%ePH&agD8~iA!Y@6J99MahbBoLdDic6?1-nY zrhR^Z<>gJS3?7$F+d*5tmOZ$upqLDXqd?wOCJ&0_L?VST_tb`)(D7SyTWJ+1Su2vr zjx`-xdTL9eER~JA*Z>$IncOQ(BcWJYgt-F;xdX@`6zFA<8FiJ}QUb`s8}V^sGu`5- zDKUGrad@Qk3Yyk8qdl)tJh8;`Xaigd_oU2=>+?l}s?m-K(msb#?)74w``STHh6e+#Pz};L^^fdfD zGqg*b<}@;mbrtDyIkWXktD?IoSd#veDHr=ltjq6D^sw~;04{69k4VzT=AjBu zdUcuMCD~-Flz9i+4W^mm?OGoe`;>}kP=0Y8Lfj*^%tWG&UYM^SGuqR*pZv@=_fI3f zyJ}JR)uZ|0H<=!ng{64rYpG;TNb+pai_2O@(1Sk>SJ zX(rE$38=98lB>+1Wgtre;Gxq-t185jn67@noGN5TMNPf~S$Ba6TuROgMNEbnPgJm@ zU?4-AD8B#}CW0PNOd*xjW1sQqSwZIuX@`37;1z|t|3i2LAacE!UMCqIyCHZ9fQu?7 z-51*;0l{x`JjXG2IdX1~9p>?xzIbNc|3jrhf*Bc37@tD}T+w~>*nJEEbLu=vRU@yd zNS4!?M?Q|yCxIT%oR>SWr9h@%FjqKk#~_Cd^z{Xr$>8(R`&e9By0QOWkUv*qXriOq~LQ$)fLdyjv zDuSi9Bdwz%UJjPfqlEY`d2vN-v@GA_0kfqhKRmuLSP3v<=MSSYRyu*Gb^!kjnGy(+ zYDX{~$d*yS9`Q6NymCYy86*u6J0q?iC`PMeO>%2ePNOVOS9|cpR3cfqkd&RbLQpg< zsXQ;M8UX45V+7JOmB|wd@X&e-C!aG!QKqkDIeh?K)YU#lPKhnETwV#pv!g`D$=)du zIKZU?S@jcV!Vqf>WOt0FWR+D~TuMILH+Rf$l$dstDHqGReg8iaJq;7B5L>5;A&CRA*QCG~>7nn{yPu-oy;A!ak~KA)F*HIn0KxR~nS!5J^jgi7(3ztzN1aT<;#3W;xJjb{r0wizI*VyG!yl+LWl12pR(UmmiD z!xTP*i+?=a?E5}a`nfkB&M#xaMOhZl^E}cy%{F!K-VQihX9KT}njO*cevECeIQ)*T zb>es7%%ataqchm^Dk_&vx6Y?+MdFQxZd3&(Ef&e4i5dqR8Kd?X%aou|5?|$Z$*Acj z=Q(guRZ*9Delq!-Bq53laYZtl(w}az@+SB)#!sZWVa96q>2htzoC7|_H|uO`#VPTu zjtXRVq}iVs4iU(Re}!C&Q|P(n?ubGegRRE!H){z@XMblv3>v~R{e49FXVY4KGfySH zq@apVh$7F)j?^IEG8iT{WFY#53X~#;yCGA14%_lU*7%(0)OlusfR2);J0g(F@p5rx zkcudCD^BrcdTvCoPJ7Cn zTS4!wlQMmPe!ATl=U&)hB>8yChPEnJf76lHD!K0?^Wm3kvO_Xsx70bvOcS%=Lq}7| zhY^)4m{`OuEkV{24M-0ax}SE_npm##*febizq@RI`mN;_q(H2ypAAff2_J}9L_$g3 zDg1D!!kpUFGZkZQve-u*${)TarBuIXx>!oOc_`UsV!>PyI7t={Y`^5-1a?4QuYV>fNJgn`~+r1 zWCm=qW3+@FlAfuUrDy_7hz|Q9A^{Ij)_AI+QGry#U z6Xwf)<|SmlpEzQgpS2-NKqtm`Y|+Ru@MJX`0h1V`Cz=nD$BoNP*KX`+Z{UBsPnzDxVN2dx5$Y<>FE=~M09&g3_c)MUA$Te- ziB+Dki;}viNxXr2Upk7pr^!Cd8cR9MW3j!3$UYWjoWyjzh$J>Zv5Q4HX6eg_+@b_Y zCN}gd4e95{ymb>;>Bt+0RZ`LvX!#?{Wl}%?$D+VSmE2h?KXRSePjF9mp(zJCQ2C%s z(+7BA?pf5Xb7to7-8D$0_hl_qshp1kxyMyYky(JdQx*AOVo*HuA?1*|cEQ@J!oh>g z?r*~njaV0FD>Ort?yV>bx?X&Ddm*a2|5p_di-x$rkOe}1qr=#uG;<|@wY>wj)NR@(xd zYOeBLc2eVx84bfKtm$GQiP5?Tp0o$2L1%Nl73ee>z=CYF9Lv--WQK9DIE|Oa*w~^d zq+-;Ah>)`ID(Kxuy4uZ;+gF85d}g!kSsj@xirh&7;zR$FSO259 zWn_$@qi}R(KW4~vIAKAPC4BfBp)!qP{ymY++IG zBwN5Z)_+qP0SNy>O%%1izmoQszMzm*C17A5A$v@#|DRJ| z5+CCa6KQJO1o1S8LeYQteoe%|nh4nn&k%L6GZ!9AOs{;)2en`PxY50g6@9LEp<38U z!Z3h;#~`BeXWhj8_{KGqgfb#Q*rva{aclb*c;NkiKfZ0DB@qnDe;-@FZfrjSH6`Dy zAw+UvF8}5?88jIDxjOpkLiO8Q<6o|K(RVW8^dWf+B9&LR^Y!}H#l8O=tLE=ESCtS6 z2I{^oPJO=I@sWRmR^y?y0#r?eW-PUDC0YdoP1yw{FG4Q?q#W~{^*>40U23ZV607JH ztK0VnTUYRK<$>w;xJGNvX*n3c(Y#MEXx@C@$exh~fjjG`2g(|Fh^r4i3@MA!M}60} z%E%UYz!EvG`cR!s-yDLL(?yw31Mh%X8OnDl4o?%Vqzf;3Wl=C7ZZqDXx_A`S zFMVcKB(lrccfAAp-UQ>g5LH@0P$qff3So72^FJ+4W$tqy=6sFtZq)j#)2lnH3^?@6 z&6!oEOO_C!(=LsS_^bu~?g9*b*Y7~txp;;aQV5YY--#AH(yOP52b3A0R|m^cP8&tu z(Q?AoX5<9Fgf~RN-SooF=~L@2Tf8ms{aT+QLVu|A!-YXH7Arf1tX+svLt0P869hC% zG>DvDxqR!@YNAL`C?}R zG7>C7I_3sHzJ=xNQCJ&tMWNX3!aIDLmXz=BDAhry$xCY2e7B@@0lpFXmX7bNGL%gw zF-YM;yP+P@sXqKh)oj;=G~d`0>-1lb80H;8HZZz)CFLb>q$vKj z{GuJ)iKC6iU zZaEacz)N87X18NS#EUTaWI<+`XUTU-_LXFch-KU0P}$_mi$|9fbh@^cZTrdMb zit3q+`1e5h##)Vsvp4If8ptK)=EASyhD^@_J6r*^gKHjde_pYPAa_x!Hh|)mapzlCLa+;S6PYpfJ$Sa@|shPj!dm7pgq(Ae>WP z*Gn6ISRE}Kh($OVi-aZD=SW`09FRn3Qk@>|DKItrj&3TG;o0Q@j93A0`lj_*sJUIM zhfQW;k-BqzXLqHIF1=nT1iz_GA6L@ zT4f(eJc8*skMCWrQkZM7DpAVIsA+$$#77lm&XwRHv*Gfc0!KMA92^V50PC5>OxAyD zA3V}H8{1sW?0*IQYlXTG|EE0IEHF)rX7|riJ1Fqg9W+ZEU0`lG=q(7e9lo$j#`~k# ztem|un2Y?SLiLybnPjRywF$!=^9u{WBmcL#Iw0)P=f3U^%Ofkxzrj*mNQ^FPbwH3T*6Hgod zoam$09bwKN>~BHbt=h1?JhC~diD(NQ22bIey|2*sMH;xujDWEwUyP^-xZ!a#OO1uv zf+M*#oY7&A#5Rd!dTmo6I437+}=YS-vsqqj|uq zPiiTYLyG@$iXg?vnWu0l`R<|A&c2b+5{&|J-JkyY+9hh)ZGj<#69eWw4k?ml4P4 ztg?5aXVPA&l@BErb#Lwe7WF!B!f>w_b|*&(!5{nuze*9GqyugmKBXP zmJa3iI42E`Sf6|mC;lMB%pU+x67JI%fx8hF%#gLK@FC<5xfZza3eks%_q)5a`^{MG z8GIHtdarennJAY4heCvWIMo7a{^>$kRZv8P?&%lU)>e^D2kkIM=bM-Wn&ITwnar)$( z1=Df)9%P7@lz-3UC*XNPb!)b42aMw9a~1w95%385Dd*fN9EwV|RPw^6@e#qt*1Md( z1K0AUY8qoEmGnI3dY2xZ!Y^6E*56V85q{d{t9~aO--`zoF!ZBGQ)j6&$h6@S)qwD_ zGIfs`D?UpaMl^btb;m9YIcIjbCcG5#u-HVsT1pgI@yF>OYn$4g~}_7+F|h zytK*<2=o@M|f zW9#3l`mvh6b8xO1TJRX)$B~FU9>-W>T7&xE*#>?h#)(t&n z;vHI;P4GtNUfj~7RP zM1@Yc9Jq)aSGz-U&I=>a(-U&6GVOQ}<%X-(K3ipDebg@GV^GhN=!|=fF4}f~tEcC8 z>fr8uPc<`aioy|L7b++)tUfI2mar}M!L*j3UVPsq@#EZSL_5g1sm4T={17$B z-94%`ig;%q7^Dp&dWjGn4P7ltlRYzgRC_-}t9Q4n(D}+tuZt7|q3;vXe7`udn$`d0$nL; z)^mjC0eGhkylX|D47IniQ=Wm;bCk8?g%>d8gIwBlh?4f2Cdwg>rW4LRMqAfIEuQx1 z3BXT#meQgbUfLRxx`P~Ih4C)*j2|3^pFJe&Yl8E?PpW*sFLF75&ckg$xiQ&*FC_}t zQ;Xd^j*IrFzxZSCuWX;p7Y;n%*6qg!Jk{Z7cZjUgDX9KCd1O7m{GNdcShyA-%z^Fx zmnSjL(gOMp*lKN#9wPN3Y1iA#+j6@)f-6DV0CsLc5HIK2J9TcFUDBI zLm#_Y8Tl@9B>r#(*P5bjf(s^mnFi6bEtOy^@e;n@PEYH<^J)s3mmVpN$WoC#7hr7E>J-9ww>QY(C&rv zLWp6@mWigZ>)3!JDk-I62Vf&g;1z+=^+tZ@b@amy*S$D8Pmm!ZE_eSI*3aqWH4wk1 zdx!Pl?@n6kNko?8+x@~%KVQ;kc#qldi4N&-i;V7Z$C^~UBRVo*5Bx zYL44^_>hYC3Q(hd+JK*{nXdgz&uJT*tz@sQh~Un|o;samKlQBfK)802jX$iFdVbz~ z6qiU{Q0%R33pbRl9_pihuX{n0K2jG%>hsdOhP)WlQBm6)U?Y+8;FH?0Dd9^`)l2r# z0c+ccNuQmse43A4&9h6kUcTKB^VOkRE1=Cm!_#N>x8DWF^sL`7n_yseMT3GlQualK z-tqq_QVN`rd%H$I#8$#eEE9xO?G_YWMOpv~g)YHUD_g?P2Q*LNOQkQ1PdJ;9yaK*P z2ijjnEI51ketB*3uCDhxq0j4AWx8#pou0quihDKCX5ehONDynK9R%Da# zh)GNJ&5MB99?0Q9*^^!LzT=16--Nvr${CjBE|6dw`V zQSlx<(~W?0HWB;g=7BniDPA~xv8fdI_R`@?mlw~3xYNB0T~e-R{UM4ICm*P`2($t? zYMWaZxQY|!5mzBg)7dX%-}n7Lv3Y@jUZ9!r?8u7A#p{6fcZq=>zOY?doCoOyS1DIJt`txa+Fdr#uf{I%57v!J*2?B`nZujap|N zT}9kEc+(<#tn>Qw3;udu=$^(}3%#CIC9qJLsDqkrLPS`L2XprM^(1C21tw$kE^To$ z=A9%=VZFPJt=Gwc%KM%+!+Bn3KjrGrb;tCXblQ?(4rXf*QPuacihlD69Azpm@~nNJ z3p2$nTz|&mF8f>E}2;EmS$77bN)Q3o-^}L zR^QRZ_tz_FdQ?PzHRWxMGu3Xr8c`DG!ZBqUWEclHknHhilUl=vh~t<{PKlcT%GE_< z&1&Tvj#o5aw54X}n#?EmrELr5^3}oF{<60(tBf*qE)%VgU4T4DNNg2VHAt&(H+TVTD+5(4a`_Y;{^!k~SFHJf!mq_ITkzx_!C29yrIicNzu8pPaJb4BnbiXw_vx^8E`*+8LT;FH-M+n#Da(ZY~@Bj22e`CAR}xz78Z zEqn(cKv-~+wt!tda9en*{Tn9=d-HF>4YL?N078@KS=K0`D0>pPc`g#MI-z7`HT~fCRXwORdCg$ZkDG7Xa+l{3)q4NKJ; zvDv)&h-edaMT4dsT?)BGV1?je>-}g30I8y35My)BS#J)g#<6_jRQ)ETx#1I)HeF+O09epwm12(<%92nklxBd@yH#)Ki|ie0wH*0!-_@M@YIJ_L5Y>& zF3;p{RfjJ9foMl&lN=n@Yv3&of9}cY9!sQjPXY&r;_wcsiUpRtk1r+Nj(ktNt4}mT zC76b7!G(!i-_PP^0@rQPvZjX{S1Oom5)=4Q_uN2b$>vW5V9VlaC*g z0ebx?KKwa!8Ky*y$BV8MNfZ+@DYC-u(#@D8kU}Lq!oO{CaP%O8KLel-?~D?5?M|oz z89Qf}M$Oz=@`>k0$e1QbX?U$3VugPH_wr!bmuNMI6K9XmfgdVG^z-JJii6_M2xfJ! z;!9y;Lt40`rGKSUHX*(GsM}>G9XSEeNb<$T+84n&GYw6O2V6i?d__GH5mL$kEM@lw-*^dNfRsYYqNpnO2Q}Qr@ zlTvp1q4(_L2m(1mgz|EEZE$!O0Fe>q$(F3#tu6fg;%>m>-F{Ned4^8Y&%8cMnhgKP z?g7_td*{k=c$DaI6UPLNg7sUtS$D!gB2YMn8y)0`vR-mv@@1Pzd|#1sLq5+He1E$g z^A=CH?R(doRu?({=$=`MCJg8KzFsI8CL{~4NHo72WpXxQ&?$KJcz_i$<%Z{fk!_Cy zOMdc|KY{*>ngy(((C0F)=XO-^o}@lMK9X@yTjS{!sBD=|p~3NxrO16DA$>Gwf1&^t zr(9IxhUrNJ#S{l5$NMh1sl-?WVYd{8vLJ_g*U&UjY+v*e_4d#oD^XOX0&gV`Kq(0= zf)haGfVur@1L2_i(OsKSRu#Ds>RR579HIgOFgc)J{whJ@p*;hLgbrO>9+rbstaOz9 zv_+w-W4w3uYV2Nv$bZB*p-D+4{)#%^oTNBB{s-q~>JD~(zWwZ91i+Gx^`G*`(u+g@ zmJ|YFNlLa*!!_wzp+;qZ)4@uu>k&XYs;o+0VZ(#DtW4RsdCByH2Yi@Lv02)c*k+&J zTeGe~hHr_}1y%?s0;l5d6ZYU@9nIm}UO3GY4fPVu!~X2F_n$(8RO3~L&k}f3=Tl}| z(F2+mo<~I4bA_T^nXmj>4Yig*Fv1LpoT#w1eYd6Vr|2;Fa|v`ZamqfSrtnm+4IJvH z%ZjvnYY){f@qewWOci?qyhmF}eJ-633H0#kVomY)c~Vg-Et)#C5e-q2e09)lPp> ziZn$MpKH7dvXa|tpij=iW&8C3FZM1Qif3{FV`T)8t9mY_?^2fUAbF65ji4EbNJ_o4 zl&Ap?J?JExO-tlGMT_Jj`TzrusrR|La_6+PjsutP~5t1w;v<|H;t1}6j^skZ%!WEV^>(96djTd0V@8{ z7kEv^L)oupZPNm0vh#ZFM#B(J0i4c5L+Y+rzqdLy+%d_;Y}e<*>Ej`+wr-#3hk#QZ zUI*KLN6*(QfZU4a9tZK5)c?rar5DV6(1KwfcCM{<| zsB3Dy{X5~rAhDCKVtW&?5D>y2V>{l=YL>$Cs}>q$1cx2MqZoo*^npsPov18EUm zRB&)W|G1ao{qc~6xJ2@T(fxd>_m;?v2{nGE6v)Tl#zlON_iqxlNWsDRG;uIvYAQby zpeYUL9J*@W-Ed#oHKQ(~-2IjXFlK<#qiv}rr`%PHs;+ph%+}%)>$So+tPYzt1AX|s z=0HC$r{bo)qt3zQLn3lH_Qw2rKEhhrRa$ zl9Q0$TY!mO24J1&pWZCTZD~|7np@xc3UMPENkrw|mcD4{;b;x4L81PYkyV8!jvo^7Y&{AGm(NMbiXAS2mXv8Tx0lCc#IRz${~-CIJ+(2o300Z$D>6Wti~y}Plz>eB zN8K1DgiO&9Tfn}iJBq#17aiq%Ys8HaHw1~6N`Q9gY1!@@n3hzf7Exy1Kiwf{C<0w- z&fv5&IBWglpiF`HOkr4&a^2P3j;Te^yWM}sI}r+{Y11Fyxgv&@UTog@G!MJV)N zBwZC(>r?sioaHMsrgsd|`#e)IioWw-pxe#->%l6)v&@np!>uml1oOVs`mM0M_HJ8= zp$$c8ZRW&Xprw!r{X$#p$xe3SzI@Tv?9F*)k_*O7-d*q7KJzz}r+FCMjKtn_b#z_!v?6*dQGVJfKVOrzHJZIOQ=B`Qb7GIe5SO_e z#Uw}P7h&pfkHr+fNzJ^r-s-#CQQXu`G&kA7gW!$bT4>H}Nl|GjD?Z)$QG;v1Ny@(2D-uTDLTeQ?d8~Jpv_0DGwFL#u% zYM364wpg=fc?5V*qNs@tve3_S4;XuiUqZ;FNFuPU$-ct zy6s$zP=|_~s_U+4*@FMMgdj4MCZuR!y{@z2)FTYEs6Z4U;@UVQGEM-K3H5h=R4Nh2 z7UQ26U5>av6(wsd4H9vXP(_(Pjnp(jvYkK_4)|zwkRIR3;v6P-<}skwi0O1p1y(T+ zzxS*~`xTWTbly%g}f@99&)ZVFZo18QNGmEE0VP9Vv3n)&g0ikXBG0LNOU>& zOT8S}3j=e^ov8#S`65&AS@Sz7)Kt?xJz)`kRoMW|8M=b*@OWKQZ0r=Z-&#juwyu-H zphSpf#HI?hh@3~KZdjXM3squ|iP+T1ibo_$V^FLqG~^BU@N~WbUKXp!pX>%moLDI* z-VHyH?WD&3w1b_Vm5T{1A$}7hUS&dmbH$Zfd}l@+uP~cW6n@pLqvf$2MKpNz7+N1> zgJYI`zXnDY#s%EcpyW7(%Y`&$sS*k-#E(I(FQ+~M>PFhmPK8q|-f<_27n)USJ1UBW z;dMDCF-VjZMjun5bHs%bUlKN2mfTqR>XA&v_iN?z6XwYzRD#4~VpdU`m?Hf6_#$g( z46{fQ7{hQvVil*Nfi(%ByA!tzV^S_UPc;j@zd-lp>jk^mKe5P{oj`P;F}E|@?93Z% zAIkqa+s?^hjawuaL*ULlT^?pfnN?7yx`)@V^`%l&u4fT>xh^uymjza#-#dKm@@Z|z zY44^-YPG2U9sX!4CS8S2JTP$dL`E;kS?Xrlim7)j`p8!-v)P^L(<4rA5hrOQ%ak55 z$Y!^y6)u|Zq_h^Iu09BfS9ukPbuzb9jK+m_2%WW1&fN9p%)P~ODvqCI%${&L_mJFJ zX1O{Li=f_UmWV3Sgr1coc(N%;Z@pVaA7zsKT+mxX2kN$-6axoyEr@LU{+&BG9pSX% z)LbYH$?xD>o*dw4txA-phXg+XRgC-cwDOJKx;fT31z#7v0xhOr_UC zKn#+0S#nH-&q5(7(MZQ2(bzC>N)5dE_I~$rYrst&w?B_OFISVu%TohbFQ3%JF}>q< zg}}#(=Sk*qjjJlrok#Ib=z9x$$^}XqiML*)-+e$w$?g|pE zdv-PlWqTv8vHx>(>=V-`Gb<0+DTy#+Y-KBuQ1pGsQ(L^g4;gV8DcpK5*182Cn<4HAUbs`X@=oME|L5{xxE~y5N?}A5o9KzwG7YW3);+ zVytfJuFi>?g8bOs!@(6lF>lzNx+oY&+f)o4P@|ktH}2y3?q)^A-CdpMDo~=(5U3@M z-g9v$OQyw5)jem6kD)y3eXabcHr8kMuS66RIcXBri2Nm-p_n_o4Gi>Zo@%Zhk#D(=w({+3#(YV&YYCU?H}EW5a7vyijdjccwA zt2&+)d@Vip9NYeeC?dz>MWZ7F`M3|s_=m6JaJMI)IG%AWc?>gJAYoZ(xOdNi_kQ&Y zatg2idmWFP@mS7+>Zo@I?;bG#*e`_7LwOM#e@ zI2dKQI=jRla+1s5r-l=JK?cEO_Tu&#siJ1>O?K|f2>pB05cvqmSE|Yp6Zu`w&+R$q ztdM`S1iGc*mMPET=9@UlSf9n(TS$F=eOv0k(Gpz>#-Z9H9TVG@uJkB1%et=-frvM#Q&zQ7P2l8AYkRZ6|72CObWE zTRbK5A8Ate+#kX8oH{2w><=a6S>v;yA%AWe&FS2J&y)Z4=^PxJ)xD`bB=ZmQ<{9AK z1r5JoCU+I0VSpwvv9T+AXfZY2dAh~cSZ_XI-?YNXU-G6&*?UcL*tnfiCN5oO%|(*XbmsU^D--7%6chRvK!0n_k=9x?u^C>)8+CEO$=33<{R)R z{$-xEY4K{GDzDY>;#3uFqJ);lY_3wXkC4oHWEQ((l6kT6QHzrCw;bCYXqfkP#}=uF zO*NKs)yh-I{(VRl)0+0C6T-h6|IZQgE+s`Yu<{KkLPKc@YsAhSy|isF`zX z_xRMz>-B%lxHA(_HM?CT(dAfO?eDU$Cs^>G+kaqmO7`HlpZ^mB4nRa>ocQ{$LubMDjhV^38opOTY%(f3x4r{}ufMJUg?ago{&_L>>?vR>*ixI8@32 zi6Qfw!8$X`W4Zd$vHRXD) z2LF4w4#HxP$mAaRV@p4mf6`;R>69Y3h0m94Lyx+-Ms5LVPj=@6<~WgxmYxWQ9(-l> zi!nqNA^hidEfm_a1&6pNQ3?3q)@8t$>&#EG9^sK%Zv*i2DP@t;BMdqULL`=c=qRix zOHa>F)n|fTQ7`~fj=DKWBcVY$*-r9y@Jtz^jm+RN0U{{~B)piy!GY@8^==Ymj5N@a zR^R5t0^Gl@wZ8fru#ohihxQ&fdCPc#C0m!cvT7L&%qk_$&YVn zobQN&4P`yjo7jn*qk?68<#$(_Fy1Ip5IP$W-#HS2`a!rOUHG;tSAFvbumTg=PZ)gd zVhL2&t|U4_WJQsY;OVt$4^~tfXhGXayP`e31{=8@KC^bEpHqje)?3Xly)``XXTW_YH|FZ5R2X z+kk1GIiQo9s4xFQp-BY^3>GiM@Oq{2Lc4t9BUH&F8o|v`E-q2y-4}7Qn!OO0I?Fl94rA6yMQPN9 z{c53XM2QxbGWqgih-jW`f*LdZ^eUhtwJCDMBg~0!;Fx}MTb(9jRjRAMEV&yr`_g{L z1^pDRqrZtb@k)Crvsh6mL)p<{v8?o$3l#EXblOJuZX^S%+AXij1hPed|F;?JBezJA zL=dkN_bRrOIfd#a(+C!5dInV$DMVm}B0kFD>m)*nVL+`9d){b93neZ4Afl=wF>kj7 z^>_s0B(^ODLSZi!{cPEpF|4?67a2f3>@gc@E6wx3*txTGqhxtJ{*}B!Era1o%o@3jU7~fd5A||E6fkWA{TQCJs9XRV1~x#DdCw79d1y zyn&Do9Lg|^76ZB^t8HK?y}Mey3nhTGK{9)24R0%m&2Ia$f?WF+U>tH47sRP>^3x;X zlwNT)z4ptG8moVBMMx>>-F1lgq_z^euYWVG3Od5oPJLJ@C-o&gC(;D8+k32%WNvu!+FXaRW70B!s>zfHOVCuQpxZgAK2yC!8sOx+?#c*6er z-V(d^2Nakg9VUM4awusl{OIg-r+M9(=sv?9&H3B5MRSo>s-j#Btl*g9SZ|ySiM?wt zN<6=-x;c4)wRabxcp^XD-H>J{$bga&9+DHhRJP^Ye4NB+y5irwWs|?<$TRYjJH=v0 z>x0N{{c{NvZ< zos4l&tZ)2Vjt`cw3@c&wsbzDtO@0rfn1d zo?(EieG*NDNBIwZhJx)lgA13z>ho_LS~Y{;(@nL*6d5g~_Gk6$%icRI8|3HxUH~Du zbReKpvTWvuB6rP`h*1LsV3KR?%waQ1s%60Y+LDOh_dO|11^vx>zLCfG)YP;7m`Iw1NvD$FJmcj7^}}aGg}6YahIPg?BtL`0%3h;xBs@_~t@t zlEyW(6tx*$X~nae8i3UQ?2s=>WSW%M?fZ`7FJ8i$C?fS*yE1u)dKxq;B6mS~4KcE9 zkMK(eZ0<3)Dw#7X2DWS0oir*gNGm&)^uDVB)~#v>izC%j197ssG8z(&KlHX`5fb#t zebMHdFs}Q({;xgeOoIm^w0h~r2TW7q=YIhcYHM^WG^~r-0rV;X2eggN4@t}O#E>_oxKS=Td4i#Y>{Xe;62fn&A z6#47YvS-24d_XOruAu9t`JzrfPxtwaG4IsntAixjGaW;s!X~|1r2rfu?mj%J)AO6` z`rEliUYCXeYX$0l7KaBn?fj&@yVrGy*h$iJHvhuVgO4VUie&3ETT%q44TSD%lsY8osXQ&XQ(@oiTH>=868 zn5|C*O;ZzYUdvn3XG`cl+X$X-%G;r-9TryQy2TF+ApoX<;ZK2CVJf#z?U|9$IX$7@ z@jBdY?>rt1>C%~FjEI-0t&G*%JOL_N#_zQ0I+{jn9t7^#xDc@xl{9i7;w%b#v`#jp zt|WsjUB}#R^8IU@9N>mV1oc({5XsH={hm1kR^y3o15toiI2@3x>6nu1V3vB#B0gnS zUgW%vPQ>szJ4^b86QgGLLX8{vWu*q8SCMNtkZu;3xY5&7!V;Eq?dlc~z0mjSf?tGA@s!iH157Qn#+um5Ihp$@q=v`G`OCjuV9U_%j zQtyXmVu2p+fymRb=b!#*s2E<%G=mK#hTxrgWS>jWb~~N_GZzE#r9-NwEI!93`C;^D zH-#NrHGKm-*Ax!u{a=HAcDw;*1n|~H1SdpNBEUlu6P5NJz4#q-(x2%6fXiP_i(=e| zWQmolp!KZQ0PFzV*rP{&A6;ldo#J00KB8bxOJfer4LJo!49;#pm)Z;C^{Lyb>Mkj- zuWsvUIU5ADxesmdFx%aFrO^@#-<8Pp_E&%sBu-9G-(*cQfTW`wI$&fQ82eq)y$dk8tGu)|5UM6o5}XWfj*w% zYxOMo*B`zlUOc@~u|X4HVjJsEA{{eCi+1!#J2DVw{(Il$`deRTOLo>SWxWy)>$xMX zU8S9C>M9C^hWwgS1NmgQP_0__R7Jf?iLVETY=XIX6`^ZZlx)pUX2x)<*q!4?JT zToYNeIbl=!Cb{k~(ow5F&^QGbHWc3E;%sSbd=}QhQeQnlL|sr{{Xb6E&x|0m3P&*D zVGTi2D`_t#EarI6Dia}uUOTT$WeHjzzRox6q?b}v^{*x>NHZ5D3$$$LLLf0?(f zrv6;bx=$Ex<_Y9ivy;Gp!pFgOS2Oy?tJ0%+;U1!#mE7Sp z(@67($q|}N_?r7@5^D5GH7tkL`(RJ1f$BYh8u_^<{R>=R1rL1>UWzuZ^{~pJ02NbD z=FRiw?F;8AH!_O=jiwVr7Nx09u(-*VT-4 zC*8F{hT?eDiKFn49CG-<`{aG##%a&ry)k1JNNO?z@p_&2gCc4QCkHp{@H8A z@uhLYkfSv0f`pwNs@}|T-LTgJKRc<`J(pEei%At0>c`Zq-|u#39S9zH4&V$2gAC4M z;$bzKwnlj$V7g44b0%&ER%o<^mj9BwO9wNUDG1$p-J2w#>-zhKS+ap$5i?NJPV5Bt zSx{r;!r1IeH)$$y4kL7As%ibBMI)=_EeI-B9?cn17-dcs5`@oPFkT{I&T)Kp*$ZJq zbPOBrb#*=j0EfFsQGEqA8#|LXge(kkX&*@>zD+EBamg{Oc*7_aWVtfvwGHSYJ`dlYH%%IGW=B zW(6$umCNPi9SjIoK2E2=@W)mzs4ooDq-ojXD~_f%fTAgVStuA*BggDxSjGK6iq6HK zssE4T=j>ve>s*t|%-m)!&8?6$_qi2PQNA^|(ABMScjmSY*+_CXbHC)43f<=_U#Df*lGKn zrJmMu$}o7KQQGz8V9+5oq?0@K^sZZN*@)+yOOm*g-eKN~kA{BHPmBE1M4jr}7wvH~ zr}_vl_W9?`X8l@Qu%<1*e@S%)Yv&V60x1o#ZnA7DX z^JeYwWs_}f?l9LYTm<Q@-u|x=m4-JK+^WiIfXv$ zpx!wH8txup?Vu*fbV8WO-?Qt-oeR9rA}4F3(f3pB1{qYkoP={egYf&82eF)&DPC*yT7e ziF@CuY{OSEn->B6kR2|9C|eO;HDd=A!2Tww9`X-e78v}t*Y|ED7Y^_!pReSWR-FECF4`KEfjG#n&H zuv@0vCZAA#(kLlY+ssp+lOYASXR#v4>Gd})(;?pdOW6f}8i4NzQe}7Og9-hZ>b1}s z!jEQS!{GYwu90w}-* zmT;KaXsskLoJ}%N#J8*La2y94SyW=E>F^ZJ{x)TZtD*k3hhj~tT*0x9Sqx&WPx|>0 zhTT3H;ayyugR8dP(sVYS*S|16ftlA}0vvDG)2SzWQ})FSBU0MG%jp;FXmz}mE8bOb z-M-3R=U1L>>ZRqdOcWg_<3hK)J}~3l1F1rgvuvEH3wc@Sn*)^?n#v>#jx7 zM+oDjX6KCwVdLZN$FHUdkhaDvnvRZ+kcUls@RK{d)bhz=r<2Ot9rW3WNzuD7VxigT z`5o0YjsiP3ogkk5OubeEHo5OtGTXdhX0)}Hn$1-VtuNcwc+$du-I5~5bciDbs@v+T z9);-`)Vw!7Ey8{HlN-0vaH2bt3)9BKma5hdP*i6>WIH0{oC63?GlDa}x)FGWe{@b5 zp7858IPg87#m018XI0c>UcBnmjJM)a=Z+V?0S*Jf2cV9D3sz$ZQie9evwAN}4f_E- zIZe(-ih*{ar@hp^-nr)9vE-baIE=yu;Ee>FF?=W63p63yUiH?$cAq2JT7I7g*4DEq z=_?nS`}DzpYC^zHGp)o#qn#JM#>0XTH(x z#$L%rfN^)r1$=WAf+TV;|6sVH{FAR2?*;I~i84Fn3*ABEX0+D5`SUPgmpvb|@%IWy z+CM4RDPNX!uVVk<+tae`9q)t8JrqT3H}Bq4J6H18azslAH)UUa`e9uHg`iW~{4y}R z&g@ctcyki-ab8flMn4BV=*XrM!!0l>!Bf<5*jM-J(G_b?1D^xZgy`B zL5#=iZ!1ufu%TAH_P_V(0F3+^(2b{Lws?5$OT6n|^|t`}N`}RjJC%g@-Dxrh5Fp-S zbynTkSg8Zz9th}zc0ADs2<=Z@k_|cEMPc_Q)z{fPyowvskV>$=ULg~mkJx=lEHj}3 zpo$~97*k$|N}5o%eR+~;ud0;|t~%m(UGmr$I;m_6O9?P}=_sxc-3aX4i`SP%~BU7mK(t=x)H{TMbC zT}H7~Kmzq-1r!VjSJlDQ={~v8K?zQp043h9twPVXFQhlKJcS+a@qnJI&<->F+RlY7 z?03SYPd?2RSK1VBf;zkTZ4{}_oDQII8XJdmN~5+Ly7!^sbiBP!!p%>k-dWcSV5(w- z#Y|#n9bW5COy!~c08lNYdxZss^mrt`^y(4^^~PLqS$Fu#+&<`G7szfa9NB2_X7o;7 zC|evoAMXb^4@Q=`;!z%S9o9^2Ds57~7G#lB;?*es^j_Hu!Jn|S1UTyD3Rn6{3Zx(D z*MRT(zMrc0EAC0BTAm*dej{vi11NVANOB+=O(ek!t87;{P&lekc%O9;|2nA2dS8Xd zB`zk+E6YXneHE6Vs$jx3KAUW{U@j6~>SR|Rv2%BT7-1x@;Tv&mTl;)m1*&L14o(@? zmq*%=wJ|WAhPgNmlt6ZS*~f_2h=0G6$n=YVt6HFU=<1Gb1gylilpT0w+e?Aw4>1@* z$OJA;7h)3Pd%o@$dKA7(N!@Q;ph#8;g-m7$wNLL?W9<*-;X7?s*DG=%Lv1|WimNAT zpz))pTEQL|>xSd&R3ET;tKfbC%%a|cum?u77K`iEB)(9fJYA;pF-@L9_OAhs$X=() zpg4D{lqHIoShkj{!RQ1zD)8{X-T&SAF?5vpW<>hSgZN>uL$cuWxMfX-hqk0P^FGkRNP+CP;o*X#+YkTfK)!oJUI8y!5pT(wX2U5elk&f z+jSU>FHnL9KCs*|-L+Sox@r#@Y_IoU+ROCaPOWZ(mvU8{ht|kyh!FyQwa-SDl^(<{ z-7F97C_r!C#kEXL3hSt+DZcXrT?A09;1&r%b1LwdelAuN8k$lioG8rH4c2~7^+n*n zZe>*PVR4vwfdz(-fG~vnRJKBvt=N zPHMvWHtWFWt&+SH1Xax5R(nqJ_|?21o9x&~=s_hNdq4#&e0)w#Rvu|T=wVk_bl4V; zJX1-NJc{lMQ2VHu=xW{p{?mCgkG&ZzyIpcl%7qydBHwOQ*tn|6J0T2}7_}b!isX(> zw$@TWKtM#y#cbkO-RFUnjtJ=>gsGwZou}c5M934RaV921zkec@BI|Wr_n+I9DW^bT zV#3#~_U&EMA*0jJ?gBw~iewHp+GrYWWr%&iw>C%~zP5zBkUACiFz@d;;7T;DT0;p( zv>1>`*b(^bpcJs(;@>vFXs!)`ov*fL^iF^dX`NL(>oXresR0^3rzJ-8MaUhU;AcdP z&jj&P$|ZEXP9pP)$`cYOU-(kgHT)Eg~vKlHce`E z5r(g>H!q@iQy|4&LWQYlJ#=GG>*fz%x820UEsJUy@P!z5u*%*@mWDb-5heXJdUrb> zW-Yni${X88Y8E@QLu;7fGD?0rQmJ*d)%*6Yg1_v{+##20_W_y0j!_0}RgK~yPXE4Y zl^qv2F0|;?UUJS?K70wV5X`0+V$jg-mp5`=tuS} z*~3r-;7Wlf?>vwk=kHda{K7fEj*>K*v~&_~Cj=fcDISy_$oOE{fIr*YHq`coji`QI z{;=zfeeOWL0<2m*sosB{!n#c_WMhB3@j9&CuRpzoET7-Cx~)Wk#ExJYPvm*+K|MJl zW7kN{z2VEOz8I$CpmiF~_FvqF`F0A_e3q|o$32U)fvL?t`;<$8pQ4<(>A!->Gb-}( zACHu!IdMTdaNTOC?T-sl6vP{C!6EZ4i{Xa2wr`6!)H8E61XK*&+(6T5Xtm^T`wxDjEvSWy=1Lu zjjjthc`3VtOimlld8%Q<#it%32Cdo(c)2FaFq6!el>QHm->ZD??YFt$6BGlSPgyv5 zm=y#Q-Yj|bFBU_@`P-Ah4E?@iaXw*0r=b@a6}C#5bqmPF#=|F{!^2%i^FM{z6-G<; zcJBO;y8v%(GVh@;Bl-2RI-%F#cu3r>c=Z?HoSiQ71GC_|`qQgs^kpPG|B13zN z>ftF%-^HuzqgOjKbLkjfr(77o@-)DDQ&4j%W^_zp@tqR>WEKrsp7OC`ZF_;M4O4bM z$9FL=F)JIIPi8WP(EzhiHMN1$E@Mu+h@wTKh%-vFO4%tYEZttVu7VP`z2L|z znFbHQXV`G8i+MYVrx(h+zLhNy0qVt}l?i|t!=ObnVq#ETvO<-4Zrh0r=mg|(1qhug z!ovWT8OuDL;d2qi%7m0`0P3x)BkXJeQdPqV6WR*ER(kplb_)888rVbKItsVxrM_A+ z-{E`mrP^E3ZJD=^C^EWou|+3x#{j@5?JoK;#*;0z>2RsOU2gK7A#jH)_LsRa z%UGhy5a56^f=Q4;ZHNNlaG`V_coo3#iDFQrg;Vx253%i@0_j3HiuY7Xa31AzA&Usy zL8BBZFs4N(E|Z8ddxt8;b#6RWU+aP*8`oFTut4nlvpjI|eX^X1D?JQtw}DnSXaIyjZ|} z#eMRikpD8TA;8W2dY0@N8{-_5#rU?4gi=ZtssRgaNYlw;(1J9Bd@h3@!N7(C8(2CZ zPp3+=%`c+_|7wT+mg#~OXFiY&MOKb@GP)0BwTp=X$&#OLs?eHi$#3)UY>3o4I%2zR zHB;Yb4Wgleu!E?$12*9Z6zh%t?%aZ|_N#4(%+OxZfC?eFPPSJ^xCvulrYM=C*qgf; zDW98kUy1nN*jghp5NrdwWp3ZNJ-SA2^TI%m8B zpvFSPq~mz%ti1Y+k1&de87HD;`6 zH;oe^Y5*j&J(CFyA`RWnhe{9xV*LLRj9?j~(FU+@xXSqnL1kG!Q(3wWkU$bzh;g7HMg57z3(5b_j2fLleG&s++ytZxP&UarMmnfAj#^hAEA_W!5#dsw zE~|sg*hD<7U+6%mu{;pl!ef1i=Ucf*C?TR~yB?&KNpO)WYu6ec`Q^py?4A0l&CKH! z&e+Wy&k09zIG`#eCP&)kQU{-TBTYpevy)R$ASinlo+TTlQzQfMuoHUCJT;b9fv3C6 zqFf&HyF$=|eGS8GGD3CMo%Y?Ra{%JWuNVE>uIbT=WEH<1MR)Hd(*M ziOIYd`sy;4y^RXPx5X2r@8xUucxj;bJhf=F`FnLY8r^P(>bBTBS(w#*bG*{vV6JSf zXJh$h8RPN;hDC$!bipf)Q0ladkhHox6|MNgn3cDE5B0ataD$qqc-Mmg=@LYKXzDG+ zTg6u-Nct0EG^COFunN?9m3p1A__KuYG7r3C9pGDj=84^#BWNb4R)m>(|Fsx7 zWD7=1HNK;iwVi@Kp;E5`0`Z$07$~%3sOvfEl%YH`SyOha+Jt<(D{)l6b~mlRI5r*a zzvxTs%U!fr`SrQhNJe4duiSZGy-c2j|3?FjyJTYzM%nQ6tMiQnXm8sLY7K*J3wh5$ z0d3MZH$=64qA(ta%khTluCj7z39X`?HN`wUI(ZsFCE>l1M0buy=8iN&!{O_E(!Hyk z4(XVDh>AhAB~H1+b8R?QT{$+VRcHy zE+eoqEDyiXe+mCw*el3y7nr4{WqlZ?5bs>p)y5{tbJ}YRo)t1ZAMC+UCGL`BEJ9T9 zO|0N~nlBaI_`Svtms^r?pi$8y@}ebQ1Y&K6oDVWAml@qsl;Ky>F7NV02@HOR7ifuM zxue#)HTzWR-ZWBQh+~Xz_#aV~&eOj?oK+r0G3g=KytuCTExp0ztE}|xnM{D$Z(iV> zqDD@YW9eYV-=jm%p@2vwMOiu?TL~p)yu2jAC8QAXck!`|lzK+k&EkR`QhFOX_DiT2 z@?^yd!^id#>M*IieLR^5DxQ+L=Sj-9ksbcOYl-);7WlpxR2d}}V`Om2HLAg2Sb-yQ zqtEZ=WOsn6svG5*hT?2fSh7J;)Fm(*AV#3@Q7Gt>SJe|Sx$RQBEBjgU9^qZ6#W#$E z2q<6^a@LUvpOfl+Xg}FpAbv#5H7r}*3@Ut-PmXCKp3Ee*LfCDfhfI;;?;=4wig}CO z>+;wpyzu(~qcUEvsf8Op!nF<7bFSHzTLWnYmGAzG_IKA0gNp$(f!%!Oj~2a#a=S2j z#cuT`I_BXITRAAZk9Yhkr=7N1A{!TSlC{JvG4CapESb|wHA5`-<#XC{D}K1knf%5t ziW68#PVKS~krr?CEtILv~&2b+$3}ma=`x zN%HOApyNvztl=KABK>Xb67#`LUu}QD>lYASD5D&Ty2r8bD^WuJ>kWfT3ui?!V!DDuH3=g=)43sHSt*TTz7$Wk(6OPTJ3_EAiISZn zB}e{#r!r8D?}8Nb&Y$XJQQ;6IA$-N4@aII@I%eU1(tV#fEQM`mbu~WuW*HF%vVWI2 z?^#yt+Tsbt&CsPhsjlAp5KKS!Kb^ubm?k}FjFWRYFDQm6*1CYW4D-w4;aKL;3}R$= zc>KLw@qak^sy%SY1vo0<%8i&3Uh_%R;~&r@9}15USvgzs|36wO$I#R(-qj4+`N?03 z!5VHKYwP7ecE70I-s&d-6GXR&n#>u+OBhG3Zv0Bx_dDNh#PAcj9;>_;I&PD&HiyRr zxle||6W&@@dt+y;(5N5G^9+yk=QAyI!z|Y(A!`AJLs2BkVA5>(lZt3Sh~cF0xgLt* z@Yp+VITR`a_%G4=`2H2FFa`>yP*&TB(!c&BQ;!L-Xw2U~z}`9&3Vg}VOenU3NSbou z%hi_uBRyX0i#5+Iu~H@1nUZbf>ogXX`G|%XWV|f{$CSN{wSmii$(zl{T~VN z;;^m4y=qU~%I2JoFJGS$D>U+T6W?jjAD!cP96 z03uIZZIj&VI{rAJLTu@KHNLKpRm7|l?I3H9o!9>JN`$UI@sM3dP64Slf)&VKvl}$j zm=HGO!=6W%qavO+LR{I=;bv4H?L}pqOfy)a)37?N*2)om)?Xia7SNI05P^euFaC8k zoi1?^Fw7*Vw7)JvD=5@cP_IR1vG9BYKSfSd-t@@|hlgs?lJxf_4Fhh#bWQ|Il?nFZQ z5MLAyG&BVjf>5X;HWhk2GkOPKPZG7u_WzskR3cR*WpeDrRz~ON(dTeYr%}#D_z$YW zYT3u4w+)RFliC>i5*~54;>!5h1T}~zhkV!sOBe(qjn@0?b>ppIW^Vng{X}DpjvG+a zsmR0|G}s3K_}IPF!IKU98;h%J*ebLf+CCcX&L%y7sSTlbN~VUIYZgN&&v(jdAsa-L zfvewr5eVfkNZ3V_nOXJV6h|f#hDps+$6I(xm(^Pnw3CmDxgOTA*WdE!o%{knv`Qz+ z(*2%3^!)YRhQBy$SdT?j4{gpyI({r#i7O9zvYs_Q zvZ9in!f(@@)@0`$f*ruVN_kxY5hbsh0p`-UF{fYV1B;7Q9#cC)zMNjIp_z-*eKuUK zMGzryA+DUWpz;w$jeXv2Bxc()V?uq4#|Oj-^Z->#MoW7Bd!7s zR<%zZ_g#~ksJI@r!>;0IV!<>ZdR6J|4X0_~+fI^LFk{@5@UIrNu5#w#HGGUB91PXT zEiMmXEm;d&$wC4RN&#GeLF&WWsmpO}`DB=?tkmfy@1>%TF$Js_)u&mV*LT%Sh8^)i zTV^aj)w`Op2i3s>s~s{6qw3GQ&+<$HpS>y%!BXA4MdQ+9?&du?V&gxuOD%_rP|CAy zf7)GhKtw+uXKV$$q5V*;;>XleVZ4l$w<=CtX&BjB)W%2Olq(IFqTGRHj_L4|D@ChUwgra=Bt3ek@E)i;`IC^AX_N&fo(1v9etBCC2O?r2#x9 zrOg||Xx~m9zIH{5E3`SKeDV805srCZBOuNCAS%S_XqM_++W}g;fOUN)6$fVSr3!ujy90G>)KczHc-{#xp+>{pG zNYIsDs~`@7d=C`v;d^53<1H6-Z|NDbAG@9`&V#(Yak)Vebb+NvFa>*b_U*RffY2~@ z4${bBFcViG%ZiYFz04@!UhEjSo1us-EAEDtA?!=mHE8 z0z22B{iLSS#LB4GU!*WBwICULo}Ho7$f9)cGtL;)6aGolX9Y()$QR-m1B3H+)y#k1 zCFc;U;W%-6`&4gaNb2To|ve$<76oKtjs4 zi7D=MoPPiEch>`>A*l9HPTlZqo(Ih3QJCfBQ>8aw{B*V-%91*YC!>H>eUL-_5?&nx z=&i^+L`|;>3;rDjcAw#>_vIkhzoQ6T-5mn_*kx~Z@wq@HujomIwafG-fg@LoYFFEH zkXxpgaVGGy#Xx5b7G!_qxIVVj@klL<${DV;y285J37D@19z2hQ7VrpwBSrss-DY}r zF(u=e1jS_32@>0>8IA9(FiFPqn}EqWatm z_wY(2(Q@Vbo{(n_)NTXq#)L8eFMG6llueM9hDmub!ShrCS#r5pO0#P>iu!>|QxTC` z4|PXvmfUc6Ve2p)4vPymT(Yu40iG+CF%upf>|#?!MrTtLw_Z8em)!753jh!>p+YHv zG+)0*e?!XGFuGjHJ8phr>5Rru&BIg_k4VZR88R?xkNfk zy8b%T{?>r&YAn*S3;;_Zq|U#;$OlmPC3^?I-A>HUs_ZS6GzD|N$+Pnw?IEC3J(k>NW;)5aDGh*X-1;}>gN;jWN? zt9{#v$yfED{hxs7s;TynTMwJRhIm;s7^>ECQnTN~KDE}KJ*U&Vp7>yW^Aipium#eTU;q_C zacfOO*QC}*ON86lOsIhOlpjovL5i>JzqmHd`=xGy0&FtD+H5B709rphHQXbt))X)K z+<#rQ+O&wG;C*IGtx-_P*A7?zrC;xX%lbn7a0czZ&pD&hq`!U#;)IUfg~?$e^~0~2 zKs|VnVOYSlWqJ$IMc)mvvKU19X&^^^V6BCmP)qXy)5&V|Y9*W6%fwKv*0~5ss6#b| ze^A=dP;3TY16wRl5O_zC6OSD`<5-Ry#@RLTe?%RESPqyz$}Hnc8b&$r2=OTsAkIey1mW6jxpR6Vd63 zSAau1;f{Yn`uP6fMgWh$f-tqKv$~C!+!YY>6B5M@u4%tt6Q*8jTb6cJD_vZeQXhLB zi`JbX=oJ? zn8GQB9Fcikw#%U!G0AEw(bF%=ovfX1^&~|f_hqbG63h zK$3veH?8&IbX2aU57~6A$=3Q&9&VIy8otjyXUZq@G3j&<*s$}6otM^p{_l}BwPx+K zzGL>hmsgo?e&VGyGk7~18oWdVnKD*hp^Qs^)EbYa)pdNirtkAXT(ci=C9LZY3v^)q z5`4LI&a~Q?rp3`?1N0-;S9KDZP|K%iOcSg$5c+HE*-uV2wp^2A>FK9WWTdH5JHcqXd%hlB{x z%-#!x3$6vAcZ}oyP!L`IGcae~VfPfHlwPy+x0-{|0rOL4NOXgp%9GIzBUanV)B*yk z*<+lL=Koe0)Efx4Qpe-!M7;1eucyzgf`a4DwJWZbZ&i7QT77FL20E?nG%eHYbJ!m+ z8HY@Qf02YZklCJnZ~&A#skNdMvj}!c55@jFAXV%XQF@qP+ATcMbNC^B0jA= zpItC2z$Jw09#S32aIaD_(0H!S3nGc>I-J6hL#UU}rd)%00OP|GwQENfgTg2>X(vvS zO-)Ju&C1|CKZ-Ej;+VL0$m0K}`p}MtXqpI$J$$aynX6#vv@@7T^9Jv!s1K|9KgYooKw*X$ zzXyJ^4d`9?Du%P^2XKS)_5v&j5n%fEDswDX$>`EE`T-y9fk&rt!>i$0YuddF)fXP@@r5B1cXiXB~||^RUsY@PdwXI6#j%aZX42RCe?Szp&;1%l{k+WYk0!4 zpIp9TnIEa*-FmM%9dj_H@w)h$-{*pV>(boxJu;DF3Jy0vI<%aJH9q{9bl`ao=(eQm z{i_PGZ`abWaJ6_kJtm@x=_p-FI@pKvU&0+MhWW4Rw*CTY^B2Q-upL>u+{!N4F*Vhf zguG|vpF!973P+#LX=;cco(B?U?6pt4KKvp2z|>kq|HO&@%#479s0S16Gjl}U+{6Pa z|7xOL0Q`=?efJ#BZrQ~b@J{N{iTcU<7fll;)PC2b>{5UG4i?C%K6_n2 zqR}T*{QKZY9RrHKvid!hfacDb#s{!bHTugDqX75jq#kKon7{y&b_DluMWtU!3n?;8 zLjQNm0~mJPnYkJIl|v9Kg<-7U^{!3RXLI4euBt)T!}FD}IFj8Vy|kpmn=qVRVLqUG z)#iEGNpjJRzaUpNqcsl~q5{e&nQCR?o%=Sp3PMDyilU_|Uo+|XC^&xa$&|NI9<*QT z5=UE-6rBm4&hs$V-bok)Qx-VYUS=ccU4hF4qvjnF`r4M&zJZEy<8p_eY#b0-!ByT0 z>kj}ZhlB|>P3eN)-wF;$%$uOjnk=mN&B_&3yAZfo3zv<5G2_pdYeXfp#BOd`_V=78 zbRDXGz1=2%d$kH6I3YsuQ%k?6+q-y0^dIf3&9|#))&+xL;NTXvKFu~PL{Zum_93I6 zF0V<|)EMa7p1o7MrH>g`Q19qibr8;|YIzVDuvo0-ReqWo9`C-DFk257*dkmz!L}uP z*$iUJF|{-1D(|b6)a(5!m%~k0wR$)pGg3tiwV&^S5IAXm-M)XYWzYV|;gj09kISI( z6fEV6i{3mTEkH}A`t8Ag>+SfX#{Cl_IkZSj!!>-JyE@{Hngeo|!^23Y+-w-xXA_OAvL1xv^Sy#Hi z(Y}u{#7m#O*u0G@fLr^fLXD}kO#hisywVBX2?651`nAswKffljVx_eb+*1dM{pM;r zZ$FHkx8pVH^qn{k3w_aFZzi!t9m)!>p8l4;&q#eO^HDX-JK*TKOd?<8{~2+Hm0Hb- z?{|963@Gn?a>9B{v#Hv%g?Fr~54s$9%#x^Q#7E=KEbscoISXr?VI;ZiD%43Kg7l^9 z@Mk7r%jf-T$Da&HbxMRtBb?3KU=ze#ppi=g+j-4c{D`y{7vEv~xcMIvvaQU-nCR zHugIyVqi*BqUTA9D{incAqHn&9e(0Lq(3PYQDmDKkWoaD>vS|cD%}1kYFqyHAh{Wy zt~nc+F3#I4$w`^ObLGE|>S**eUWJr8Q)=(Vf@kgGv8JXjgtUhdLb|*of?_in5D?tw zEK?=_$Tm%bY56baPhk4YsLW24;NiLEe-|KaxEJud>U|*F-nj{PBDLemwRwl`jw2a{ zrjs;P9$pB}|K$|pp}wlTm4_&}Ru}LK#~0Qoh(!8-A@pGaL-U`$Yo*M3)%RV>y<^A6 zU2D9Bz)^@SjuwIM^#>?K>A%9Je1%jS77c^JKv1xfe?$}sx93ZtQg5tnCfq%CF0>xG z^*2e#{xc_U-}s&60O0}gWl&DYRz26y{9*&eb~yf(ar?tpR{)yfdl1bPM3eWv>#TeF zV+%<4CfvCA{oC5_6wn6X*sYHkB-`>IF`h1k!x%pArdDLXZSE-A|87J1bN42_l>SW? zi|je_UwBuU)c>=dY7$4dD-cyvo+h-+KLb<^mR_ATFKhV--SN|r5P@$Sntc_9WqAYB z%sca6{!~l^U!T5vegjByz4++Xr)32Uvj6y#kOvWeMUg2V%_jC_{`PAcpP?zw5oE<+ z4tMYtZ;ne0J`zxX#0ls5jf98(l2;Gh__7{fA;A3o4uuY@#NtAD#Wj1m98FA`I@%Hq z3QlH&m6En^({(<6yBAS9cQzUd1&_vj8(%8|b5?9W+;Vx<6{i__{pZRd1 zt`;wv#XyzDyU(vh^U{l?%jYmxvP8wz$YgyG3>-wP=nLf$58}|u} zh@BBmffEKlR-DC(z5^~5y+yn`)0iiaCrZXN? zSh;`ka|N&YXwsc&)L8#M_x7iqsX#+iA(B3pG8eCwtNtbn#;rGnt22D3q7AORa~VBvcoBRJds2(mlFX!`UZ>JX`whY$fYXg zs*XL(&!cDUYd2B5a4k3J6jZg901V3o8~PgM*$auUo}-N^Qth8zBS{}}6Zn?GKwFAs z!g##l(+`<9%@=;OG1bRj!@fiKpyt@}x-1k0JR!6mg)i?NUn^9UFLt07AvCxuwNe3b zz&{I^Q^+%RHqmJ%*+;=7i50d~z&=WmXOwy!cUER*Ba|X7W;ozb-O^#6T{>C{EJ~Y5 zrS=_j{Q%JBKh?IUOcpFJcbQl-s8-Kf#cc8-I~#$6Ze~H)l@D!DnCbfGMEI8 zblVA^#7meZm-Kb{`~bO9w$LJ_FX#j!-dZ^oN$NNv{^YEXkwA?_Iy^th)z5 zO(!){WG=XdBTdpNck}zAfrEIoyNGGh z4In!VpzA=>VGc&Ke>p0LJ{`p1odN_lZ|GQU1U39WxBfZd$VeeTfp=fKWx4`_x4?!M zqpUxyy@qnP{N|6Q;d47TwIjZ`DWy1)JpQ??%t2p!3yHeSzRtgrrzKQCAa?}e6Dy*Z zz=OYA)m;iuGG5tbZgxy}LyvbFJfg!tXz^&Kzn$aG3pCg5ej!18xZAfcMGs#X7!EA7 zu-p60olIdk{1sUk%|lGOy-_&M{YR%u&WgcYQ?cVjNf~>I+E6uw@@rAE)J(|vWd<>G zxS*ATj#Rez2-xQ*5*sp(705jNC(UhDVSxO5t|wln`oWF*JXMO{Xi?srY2O4Nj{+7{ z5|<^B{O)C6)Z`Cb|I`Jw%3@Q;$`v7925(QWjGhnjNS6z8?Dda4+(0Xtp z9N);&3i1JaA3V1KRL}37`{QK>&$$jLVs>fTj2cG24#yn%L9y?JvyBGLhb)7@a3h)& zSBLm2Mv?*mQ8}IuFTR(ZfJHH8O#Prw2?c_O@;SSxPdikS0v7`Rc zWxCzN1;%Yw2iv4=uU97#sgFd*UN-7wp&!V0WQ5koUH}eUmwRpOk+IE@VikNGpBpt8 z1^Gtq3&CkMQlvyiU+mJ+;(rw`+bc6kT{?LK#q7iG%DK5{p4;Lc&X1%cC5w_K^9pQ# zo=Uz0ktefsXx>pv0x9WIs} zFQ_xg#d{z-r?d@`CLPQ3XSc)%bNcC*uVh+}yxP6nVQoO6qdf{xmj+N%$xvE#nR7tq zF6JbxWhTkt(>KX6ntT*jf-~OE zLez-9V!Ov`t4Dp_@53VahW*t~4xsM&JU`!g?}*LHFVDp+peR?)tAxohvq|f z8xuZA^E5R?%P^2Yc{cxi&f~Ye#T!VtAX?%W7C(UdGlCx~uR3Yc2V|b}+T&K!sc>M( zZmy^A4BzyWMD7h_FGUC8!(jtgm4rT~Pgf`CREto>2Sd=OQxuz!kJ>Cxmk-BCZgYH| zlM0*y$-ua0o+zp^fzq(QILMKvJb-=u(4|LXcsR>hNj8Pm_V@6$m$gmb6+(~v>HPS( z<1GYpZDv+wbfjAq?jb~#F)L~5p-2n%6ML%(k1ZHvkH%WT@xHH~RFZC~=LY6C9@(@? znZ4C1(aX1hrWIj#%_R$XDkQ~>22O0DkqDF-E)o+a!oLCRt^-y!#fR@?wO3fIw3M{B zmf^qMZ1NThZ)K~SF!*dt(HQI02CIGpwIQN5Dy_?p&BZ5VPv6M#qLfT;Vm8*Y7O%9E z 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%0A27KS)k`(Pw3Ss#Ancpz3Qd2sK^BVRxGkWqMZ z*xgI{w%UM-_2zTOPGKHati?R#6ZW|K9dJ9UYy%!8CTfJP@H3_%T$@ zG`+{Oz1_@)i81aPWH{NlR;UHqu$(ErDp6(HFISl5YlLT^L?I4NLJ%1r(%L3s{o{gR zjdJZJ-#%~GtFQR5B`lLIiy9A$TMXL!bnW$gQJ~^3LLc>ZDx}w_!bG+tIJ`QLcIiJoalh1naAy58&DBAXjcJfcMw>Ho&k7-_|t`+|W3sA#J8@D1Ikxm!9T=A}Lc zb5=Ai+5)N0mO?^z+uXlZFSiDm7zTM0olOZzbQnZ{(MeaQMly%C8h3h97Mi*+yHV{0 z1t;CUDs2b$ujd!$%AtIYKclh`odwhls{Q=jPSZ)l_v&iaKGUJx84t;B0Bl;l6Lhek z?LWAhL-o|(7(NZ8{B=3mw7;o=!EQCTR5g6h1xZw(ZCyh|0BOIx0Vy4k8WR?EV4h$m zkPFyXYn!c^-q|SzR4Df-C7nG~&cc^)+-8x=qOPb-?zFC$PlT_1oqCLS4cjNFf}}r$ zvkd;N4}GpeGY)+V+8%+~^=P;)EV|ypwtJkEcguP8HYT@}+Vx$k`a$@#o&ODhIlVDb z+_3qa*mXiK*VH>9u>5^zI<2%k;-)=fV+<{{rk$FX1SDqci^=8Fhtt{ zIs$S=xQ`a4SsIueDF`-7a@Z5BZr~ep%6i`0wl;Muc`2N+>|PPCU$Lq?ll86LBaX3j zqwd`GJgRNJVw$EvoQ7sNL?8Jh9imkNC0W+qOdl)aWjjcB@A$ z9@(cM^gsxAB>-~A4%23B)DAMGAQO)A1q%nA?fT}Ya#u#$k{kg)mAy<%^LvY&A#3k; zoG<6&=8BAvJuN5U8xK+!#mTQ|_d87k%25@^oNfSH(taK5w!ZtN-KNhucSiceccrtO zNxu#^Q0XMnr`D;)FC*(;rE0>dWsp&0>psA83qa>sBzW}!9xo8QZ8bAD_SuM+9ng(Mwr zdo0Ki`)`%LicW=-=t#yezPwXys%DcgLmDWQbVx3-DZU&LzHIHNRqx=7ztB}$z zTR)Y&xRWkbUK2@{->K*OLlLG%_~qKUZV>4SNcvl6is!#ZFD#H@d4WHjW-Bgu#A|t+3DOI zijB+3Pij^QS^MiBes%H!xBdlRj}v@H$4b>!6LBjQ001Pnb6Bcq*teL61fw50$~b8R ztZmP^#vVBY>@iXP()9OLIaD&Rx%SQcs>HDY(dkOdOY7&K2mz9b?9xgs2N3b*r2m2! zcTInFSNgv8R}!U!q;mk^KbT~pPg3-Vet%%w=tdtb!Nqq6+)BNHO zK(bQ}^WMDvyZ9i$a##Nip1jWi@=&8=8E_atKYa~32t)n<6G{F3(&~8_EV~IHFD-^6 z!SPpbey#mC>eGOuS!=Ds1;e4nOFsXa{3_&tfcuVw?}4E3s$k=i6uAK0buD}A?SEB~ zz$hWxA?Jvmvf#;A`HUuog>P||r32|U>pStX2qtMhNcQbQ)U+fs8oK}E_ZMKRMeWoq zE}0Dej3emyiej3eO{?)&L+j8TSNVM^~0!yG^8f?BnXXt0#Z488v;sSoSc1YJo zu0;ny~r#_K8s<->OhZGnuh$0i0~9H?F!q^8(5h z)FtS?{t{DoC9izxk=ApOB9i20nzK|EHjVDxeq0OzIwDo&baOcy>5atN-o;pFfkH#* z+n9IS%?#b?5e4s6)V`p_`D-ib_^Yc>$*BfKqp6Rmm=GqNZN+!?iUUyW6)$BL@ zu4W(|(J62;nU057q58$=HF@v4w?QIZ@pa-!cgjuTNh{ApQ1|{=bXocw1)D??H^p`= zY^S%D_1bupXwoTe@#PLpa%Ei6xJd$``_{*30-dDtZ#^JoxXbv&VLjO7iE7i5tKCB@ z@gL7DDVaJqqz4s4I`?N|i3^Q-U4}8-SNreC+`wH8;mtNYsH9ob1(4I{9rMkN>jxUH z(rI`Yacl%L3ef~AImFtAyHXt1$+PnJ=y3lk%k70`QXqYM>AemS9ry1Yj{`fAhR4^G zV=dQBRHd$`lYeDK3|Q&)0)5T{545q{o#o)7Utg{k*BmT8qj5YeR4o;-$~=BGg#F(} zYLmN6A5A;EN%mK`Y#2&MbdE1dvyD2~Cy>HvKXjK+4v!UPBKZS+C{Q1e5iMO|7cyH}K{+dA?B$qp@am9C3$u zqz@W4cfx=VW=N=2#m{CTB`dnX71g8+gXq1RH_ur+(C0Ohp+su4`z=>@5?m0_1>O31 zWQ(Tky5#4ZBueDP)GM+871F?<;eYvKUIBo4-_+ zLYHM%)0mnlV?&apK>|q9VFFTA)~yMv?q~_x-K^g=%CA)Yez0e!iZs$D`&0l{Ag_0AR-nnTF7z zp@zf5%+L50C*h;2wTB(5MCgobQ%~)%4^R0fYO0!)MY{2& z9*PZa2XLuAmz=ZM0>d$s94!G^ib}*<4w-W4=dyt+WFAFIXPENO)0-Ub7SVaM)L2Mz-X)aF#F5pC7ZX!4(#M(uU}av ze?3MKB}(2Z^U+0si#`?8N*YJFr zHSDwgi~E0-M{p8wt~U*gfg4(vXbh29w)1K*R=#60U}pSxM{*lHhpiHf2YxCfv!m!< zX)pH{BaO2&xYAZ`4<=WC?YBX_8{XUqoTKjnWR*$9Q2;;4VvBq6ObJ^@?J zzAM2-fa5Zzi}U%}pfvQ{td8LtwMnK5#pXKdSl2Bj&i8FYxu95ELvUhgZ6~CuCnm=x z(k{p9sK>Z3V$i0pBOmgIje)4f#QJI1os#+Q>!DMBYaX8+>9~do|6#yXQ2-3KR-XaR z3MW*i%jKXh=EKZQ@2J4@(-B2=jYNRsVbYy<9tXWigyfF8|gBnxjKYb%`Q|h|H8i8=}rQGe$)y)pBQAh27S@Q4c!*jq# zJe&rXAj-{ByHJV^#B-vM+Gt8&E}WPlG2*(u%jFZ{olgp-@1A-QI&z+xK2Go>|9QvzcsR(`FE%wBi=YnR|qWM)2Xop z1GhgWAsQxVqO|zd!z&O=qNXs>R{y$TMcMlp=y5xZ_L6I61AFxy3L6dYG`~>G^5nP? zj-P2RaypxWT>SN29g|IbVuBJo>7t-qd+9m-%L-_W(HYMGAU?Xn4&kTGZhjSO_jfO5 z-}$a=`~6cP8w9S_2VkF2$mh8l)M`zcEWtWEVaw26O$O@r?aSzO1q+2#I zR=ctU3y^I9S|_8j~vuj;S$)5zNbs z^985{HQ68IfFF;i{FMFCS9*6~cTHl1H~(f3F}K3dO*wywy2jTz zek#o=t=%_Rl!vZl3gv1!H-Ph5y3^>eL1)Mek9pPg9Wq>b;|k##Eb91gohZ z5Gh9FJjG~mvx?u=l{9wU{sbyN#rl#mE)gXfk8xwAwI|xm$Me&hN*Q677$!LY2nT{t zJxhzlK`?<0)8IuWV&+PRoO(9yUzyFv43Eodu@~|_PXZJa$o`I;_zSl>3qYar+OfH& zHAi-Y_J1yAC0H<6_Ts!T*6AMg{6}{^_eh{7P$B&yjS72pF9@{48JkeUXoR4i1y*%Q z0&F5IrgT0N!CQ3q0SKf6M$iDXWKHN14O%`yBty{HL@!Ez}?e}~{tH^{-Gf1e)DaO8%z72QMxxa6WSIqMf z0{gBr0GV4mZ4(8oL9g?#XB}$k07n{^&aO3i? zDdm)O9I++{E?{6AI$y8y9(YAjV*IAaOMU)5jF%H2^A6F519+lzq!=*w2m$r}XXo-D z1xR-tEWFQt^g-x4n8Fy4GhH#W8)lwIYrIEt=x_{`(7+ zYFM-^#+aBYQJ7^~AUZy#N<`q=HxZ-m9o6l{z=&J))mxSZu*r+~)%(Qb?kpKaN;$)5Lut0pWw;|rKbjbi z@8mOYBH9%Jcdb3NMcjx-#%(Q!o~qo0+=-@%95IGQI0L!KXsCD^ za<{yJUnv`ivTSGWw%sT9AuW$x@5IVXD0h;yALr_5uf39>++{iKW|@nnBbQ&}ZlHjf z$Ku(NV+5XN3*h92jgHM}Jn2}_hiS5_2g~M^Zq#$*QME}$K6QHznH<@K=8CzXiq)F^FNQ+i&}kaKs(1|LT%XF$}qQ#8>Ep+{_IrZbK#ODTg#$ zIy;k_06cI?ItWo^kKbHmH$3}!ubugi(|{6a@_*Q&;7Lb>NkNEWlrCZCrE>@tkugn1 zq**h9shJ+PfMbWiMg&1qL189lN*9r%2ou3o?1>?!TfWD*ZXz1bmlUj^nySn6>L+;gUjJyySlwcdQWj@k^l6(RHI-m|7YcXiG5aT4%Iy_c9+zvc%fvKWg%X9L7h?f^}#Z zV$qr~vRjDg=2)MnG<DQjp)3HlQ4@j1cQP*%C3 z_g?}`#Nv3QZ`A@P0?pDSN{n{obJ)2U(SjupaZeGn2VAZyUi7mSVAK~xSKJpgO-s^6 zf)zz20%Uu?|?;Rin5gl8(g95{#-R&0YrjaL_QfcXQ)Gq-}3*a9oxj;P{_YhNo=hE1F1Y*OWtep64-!Kz$p{ z7qDFoHs0#@=}LAUf8sO4`ZKZDD)(@oHdgMBSC)c|?9_pWuh4K;(bcOgyK8!{EPzv| zZVbT*OU+GwZzo4LTX=1k*F!L2iKRnVLCPp&^}KLHs5=k?>5_+(Yo>m_KVC@#K!jW| zKMgFx8he^rF_FI&G5VY~B@xLlk_Ea&drVW$e$z}puZ5W%H&k0@RJZ2_W!v9W+GBZ4 zhn+lrE52DK6_N6(ungL<8^I+-TqrxzSa|}g{S(w2NabA+p7&%>1de#I*NrCaBSM*n z91-gjaIj9FW5sAKOx=`%;KWfH5aC6`>^3Cl$Ia1(!Yq^jIO$5)HLCVkw`b#GPvm&q z;`e@*ie-W@JP{8SBCjP>LvFxZzxS}H&w8bJv!6_9}4zNa?`A$XTle<+v1P0^<{ zdp`QUP`a_Picmp5I3Sbt);~ypelK&6$eY```zeL-J_BEIv7xJQzMgD`t90JiKk6~( z${ly455J-{AQ&>?2#wHG?s+;J#0(KZiqh`ytAaK7q8H0wgrE?By!Y4g&d<1qXMkwF zww!3}L%a_F`~6!L0s!HF{D+-g03-us83~R5QY_AN2(-qci0jV)vaVDu`bR?VnQc%1 zmHh3vN6GV5Oa+`!+=+k##$PX^(a@)7vR^4)zH}(pVj-L;Ilb~F&g#tb;U`l_;W7wW zjBBDIDxepTB1#gP5w?KSIRHm9R1ifZdw;r85cug#cJg)X71hACXz0wpRbe`R#IXs( z0G}JC-}yViLVb$*d2RDo^`kSty7DJucU#xUpMsHCe_P12pmys1Dhxt6C5im~_6Yxb z{KGzgY_9bCAjBCc-Dht4RRMm4AQnymE!82$UM}j*vmb>yJLjsxRMHKP0gwpV$_n{!pUI z@D5D1Wn7<_&tY2sx#q}6@uTsLRcP2Fh~;%Y$s!mFx890m?SjJ=!#(6Vo@ zRFJ(m0u_ZotUz9i?Y>{Hx9tE_GUf;t&pN0(2nd(85?etrPvH?dUoc}IQ#_=afvITd zNX3R!&jE|cFW5Vr;eLNS$lZ74bnTRu`!%`*^;@3n+D2&V-FL5ECJ>xth=?R9K?+PT z2uZMo=&zpzT8N5`FhHtgS7_jA`xkbFJ`c*#*$?^crAECIQPRMw#kD?q%5kY{*VJES z&;W-I&ICXuG47#Hkc1F;EavSM#h?tUB97jn&A}1GC@zu8_jW3GAKt+V(W%UfK*FTY~ z1E9+j)X30e2qB6l^{Vd6Si=6r<1R09H6ycP@B&ZCp zYhJBrw#1DkV&!qp)f$m;|K{cW@knYbU5tnT_G zf{K_SB9lh+zQy9zqeaFaXu;zlnsIiee_rSPQOIvM2@?rcR&QMApXE#ZGEvJH|Ck?e zSq=?%jB~8iq3X`Qc~N?{q(cpUGBj^9J!3

    Wl!mV-kQ*q;+|C#@de3?zw{l>jcL?+1;Dj*5RV3&H%<6C|9KRHDlaw%e+J?b1r%Tf*ShZ&9q8OF1Vt4PvW>Hen~sohwuzQ^%xE$Gyd~q{HghPFq0X|6@;GY@>4I= zY|+9z{E*MByVm83%LsTNi8!Cs%6PUuamS(VHWqmsAM>RM^%>Jbm%IK)D=Zafh;`=} zZpx_3i87Ap9g86ZYj9bJrOgqz37-#)tKC|kNRRv^HPGtITNdx5YB`ka?a+GPh8r+_ zm)v|nO5bR8&mSo%5WCtbz`yG(&KD=osfE+j$zg#)w1PZcdXRSe<sWOA(oi<_Si_gpO~vS5R7*n zlw@FEZJjeFZMDZ_g@=iv<%^f|g2U^E=Ea-E&NfiEm-!q!xee~M1h=T{?w%V76nwpX zwSNKKT98mPE3RE~!~a(B?6t4#aO{K_fg;7OuT2~Kn@%2KHGzb8Iuff89M%R6=*de) zw4X_PGyuTBuzjc5d>8$NU%@Sedt}U3j2HsWl=}1Q-SQvNq)^mG-LbwAvG4TjyNlqu z7=k0XJSX@61J*X+(c2Gmw8&=y(R#i(V(q$#VDM4jr$rHwNfI(WmQmv2Pfmk)-FaDY zDJn(EQ2^sn>Ta|6GcA!e>gt30PYxoKrg7A2H~7V zZb)l9f^bfyKaBXL$!Tj$qS-g}!vx#RT9uygg_uXF&g9Vw)e#)5thR>uzCfVEdvC=R zib+9NPL9SDNYDJM0;;$mgavm$Cb$o=UADsSShQp2cHAh@^xrc=?a_xwP{`K{y~7m`ic|`S z$4{5C{bkWwcjv7`kE#X`vkESM)DEoF9rTP)u=1G@k0$3Phbt&Mev~~SWH4|rt5T;j zNN}n(kp@`Hln`eVhJzH&{uBh{=XRS&!r4vg*nKtO!P(kXC3#sBemyIx&;$GylS41N zfw@WX^?UyKdj)*uj+oIyK|qEfQp<=sVJdcQTR7y9v;To zGPyWf{Ayog^Lm(GtuYzG3$tF?J)45|oO!R)_8`Ev8EV8?RIpD!<35jDLL zMH6Pf{}zS0oX_1CcBd<6_71?bH29ebMDUAiIamNroc}=Pb$+g?nJYSRu=?HQ>J|5=QiWj8zZ+)`jDg?vty$C=`Zh5}??h7fo8_Rq9K>ki*@@TWH#gyTHk&JD--r58(CMUK8K{uuJj`#Smk*(XCwNhB}YaAWh5 z9U!kuEF+Xr(#wiiYPovX))`j+e)1E6{WD=jWoOL_QMcGEa>Xsj` zsM1lArZ}^5r1#AimYK+m-2N#d@c^KrxcWjWcIFT6gZ=3d*rSp+o8E7|fmCas5uxJe zjWN~xDOKIW|9lqzknr_D#(BB*G`;eBuMGcE6(=CtayT60va+wri%1*8#N+B#RBSEv zZf7lm`3-AeEN!{Wem+8>20jK6BGju;U-~A+h-Erd) zX;W=@qP>D}FE-vf60jdb_lYy|p-CG9*E zuHfDhjjQ~o61%dXIDLA*73bCSYwD=?j<1H^HzC0o`JTIr2#5TSH#AcE<7D2wjdEDg zSLvHH*;Vqh!mXEkL^?plEMp=1wCMrB=!INboje=}$$S~tGovSz%VR1I8kf!Aq`&z$ z8rl&^EYZF{g^YJ_n|uQDMe<-^tC1CZUJd>a2Wsg&EqJEY)!ydSWqh7q=++hW#rVp~G8nWy$KPMtBvQFJDs<^}lK-KOHIs$J8X zz_T((+|PZeIZ&T|9bk!v2pG#cbiNRYKD;_4e0U9_}~APbkk_53Kcto!TDI zX|OsvJXr^TJt#DAcs`;)ivWYXf0qOb;iXD3Hfgg;iP{I^_J*r0dhBGFu!`@rnH3~y+HTy{w4}_&i$jYf zqpn?3N=z|_8&ZkjCk;m1j8?Ui!6Ap9;w*y_IZ|2!Y}Vjk?||xakkWU{!!Inq3dINd zrZ&|C6!(Xx$_!|bq%*6C9(`JHw@LZM0+$ioOIcK@3bksF1YXP97M1KqHj=E0oXJ%9 z-Bpr@NUcOJwg_#-<{uE!K+39-0CVtDKw&BCPtjMC(x9up)s|{SVH^<(CM2XSAq4ga zk*{$onb^BR_#8@T>sL^fFCbeYAal3_VX9;b=vaL>Gx}OtN7P>=Pziu2m&iBR-OV$Y zD%%a4ot|9Oiu-I@D@)^Sg0S&F6~lc|sx+4Gp=q9cVf9YWd=&X4lF^~9tU)qsb+iuz z6z_rJd*$Pu!fK2W%GJDY_}9^21ItzoEaKUyqXtnthArc~>WmWS4QN` z5z>JGm^KpTLw*Do0m{(rGi`EZQy}l#Sw#F~fi1~CGUa@2I{6DVN~x>GD!Lu;MN#a_ z9g4+kqqQccuur{Qsmou2kzZHn3HDD>J-xAJwXqa0;gf8=~ELv5VM%+Y`#tss>9d> z*h?}S5&Zg|$!n=jkJ1<~&#$^|BSiS;E9Yl(Qkznkeu+C}P4- z^duj3cQJe}z6w9@aOkY1qCBZ>_BgBcihG_4E10ChBPEyvOjU4+X5NG0k}(=FWMwuH z1`v;E1YMho1i?vpNc`BjaR-~P1)l#R*!ZDyN41M&%$VZ4=Ua?ugu|U#pcY2gUH0>I zqzZ(j4c>dA%Ys=M0Br*&5Be&9(h=yIoQe0{CBWzL2`*+Z;*}U5ZoZLb;04WjkuSCs zoVs=HBzYR4LpqJ-AtgBTjkEehtKAWgHWzVwEFq49R#tFVfS+j7`?Urqm%&# z#YfEaof`Iwi*j+|m<}}u!j!m8gwXQzi!y7yN;;6{`ia%FB-LxxvO1q`Z13>4tS{Ov z+-hVW&u-6jMviEBy6?-Rnp_AYx2=P*Rw6qo!L6MzM3|YH$&AWW-gVyUXLtIPmE;uB zm^yAHCC~E+zBakMVIKLbV=)_SMF>RL9P6*?kOJl9){MyOu}y0N8Z3H*q=rRC=@AYD z98(H}naqp~JFt{fLz*NEZ)0&29aJcY9qS=Zm;rS&Q{l4$knsLoEu zR|moAL^UP6iX$eyznwNSzwaIjgs6#D8ak9OTM7mLOPL1t!e+kha?f>Uoh)#hH&Sl- zhcdCdyL@;i_)|NS>qBc{Z5otfjtNorXB$WvPkp9OKaLe%>J+NJd8qYZ9mWy?wNu2X ze$6N=Hs;0N>2Cy!C?m>Z`U^z<;JL#$<3qmWE5!s+qGYsd0_puado*$bYfVJW=4QoU zdhtEr7UpL|!*}ZJqf*cOBF_!_hE{Pa$V%)r!%-V84J@2~B|fzJyoF%ttbNbY>PG*w z(uGk~`r)^PChS09+;bTvtCLoH#5te8TsT_}8>)asY9Et3RJaa{GlzR0d}{7}p2i+i zu5>;ACBMmHNv&GRlP7um`J8U|u?#i{)F~UR{s#U7u6oUwkDEu5H z_-4m3L;)*nlH#j5%7~F2aj%fPS|R(+#oQ`o;rV4Usr{9wd5OaFJQjng^`#x;EEK1* zk9`^pEDEI;PFh{EyZ{+on_SZ5tDkmTCU80l7O1-imp1Sk&18zriw2v6f!fN=q}hjr zS&h(vEQ-6U3-aM*YBVkuRuA)~xPP`vyCAi)<;)>@r6MXZHXyk8?3keoZ!X`Yydg_k zU~M{3%+*uI%&hu^$MwwwTbLg#{9NiDyWd@|;>dtDW8PmW`J&8-<1c;Rb|(NEv^w|+ z;mtdvA=`Grm^jrBI!Xf8nzt3@ZwR(p!r8_!;}iOE8&n8XY9*d6Q}N6@_S>61H@;Hz zMbEK8Tirv`vHeWU!WeqhgiNi50LVq06p>hz}#rKs};9&On(3&-ovGStnLFC0{8X4sg8 z?tZRqTpD-U(Kb6ymjGl#=+=f8BeBye0q}_jU3KBb<(nEQ+%TjAgFk> z0^nCrD7$+rLFs%Kwcj8kQLnSK)+5GS)vR3;k~^|c|K(}N`8;+MLHFJSF(`RFP4hNes#vT1RJ+S~PN(7vC)1I*OGQpL$}Ve_1M-vi zb_UPknd%1s+Obmi^BQWjsi;G?@`RXZ6ha2Uq~;O*3lVZr_$ZQ6}&Aot<`> z8C6)_TKFn`a8_f0_-K?J&)jXE?H_qrLDzjXN z@8upebMDoF_nyAJ6T8p$|F-NumbgTz;OQ!k1jY&Vr!OVtEhuaKD4EguRpjMom6=xb zAU`(z^bfY?%n0!`S?&AL6GAXFHB?2E;w}@dCk-ojX+`kG?ZGeqN71>*Gxh&*{On>k zv&}Wc40FGYB-fft?h4(gzJ2FXNjLX9ogurp&Ha*?`>o4RLbth;k%T0=jwmD{6}o(X z`#m1}d;8~eK4*{j`}umlP@f!oKP(=k5pu5^^}&v=PqYC22Xkxviy!T9v7O1|6JR6? zbWpbz^5&vYchaFk+3)4lDa^@p)M$XD=~PTf#zMXbfXfGBPLCIHNt2ZyFOA-w5Gr+s zXh)`ef8K6Mv7L3Jk13N=ja9#|(UkrlliGn6aSCxR#aL6Uog63wz3``#?30Q- z7q{;qk$>a_Aev&iv%A|BE8DkUKm^(+==Kx#eS4>QS#>1(mXlbaVN`!ZKG9f5@3@mS z3IFofZz&WU1Zi5IzyE+iMS@PJUz2yn`NFKjZG(5>9_uT?gnOpL=8j4gi+` z2$geS;TJi6HLQ~GZqV z1gvD)K7R{=8d87t=zCb3&%coXL8|62ozEx9JG2uZmmi*NY!*U@iAY@AbaTjQ^DxSqILGLx#$pShkSDz~t{jrOA8sLrKd}{MYj4?Z7*0ny&k-iq_N?@PsAA7J@WqsU8RIy`m*Os__S_UkF+G z1L*1lErv9dxSb066}hl>DA@CI1z&Bws7BN){;U!EJ7u34va9dX9jBh4OJirojx*>x zo7`7x)9=Sa$Y6*J(s1lDrela1f~qDCyfD8{;(BwSD$chR#XMVYV_1z;^m?wwfXPyU z2<%_GR9C-s4QAx@ho5NXHpahNeAwZ8rR~nhiE#EL1KdpFY!t{Ak)4{oq zP<>=BPXIo9C6`F-r_cA_E93aWuYO-_{bYYWcmwr_i3=i`FS^V?u!Cw<2?>ap3r1w(+YoOx{K+D1!u6G-0pUW$F#7$UCjt z!U5kD<(2PGyVp!@e2imull0lyG1wEJs_iM*0z%!y&f8blPpx{g1+ZPZst6I8*?l5K zjZVx%Br%AmLMtdn+vkT)()oH0dPDu4wR^HHRcu)mpL4^kpRf%|Gm!^p1+LSo6@E_V zY4>>uu*|E%no4vs(6~|Lt_oHC{ATrr5cdzt=NIw3tQ}rRhEb^^w$&j5*ZnSxDt!f5 z7)da4QM&(1eeWKcBIfpiTEvm~0MV5jTXgErVEYhYG2-C% zUi;Ei=XX}1T(U&WPY2j6{I(4B-nd?m{-d(H+9gU*9B0e0@BSWl6L*h8e)|8PwN_9N zHXfsix+8~blyBASNhjkHakrMG0!WY{?M)qq{ATfvjk<%Qr%%CzOTZci($D;=-1xif z;fAgoK(^D{yBG>q4`z?Idh3d9RB_F#ym4#50fzOYMzS2n)>B{IOCe-?Pr37R{a)+6 zbKXs_GEU?xR4RS=sEY5A>dBKd)dm#Wr9PA%#A1(>osH$m2Fg1ORQc^n>4>SHv9#{@ z5#2R`Vj?W~7}B>>nXk47paQ!ax*w=~<-i0+RbUigdHDIxZ$S8T_dWGW9dA~h?BF(Vd;zkW+IO4I~%6r7W0f#Gq`U6g-|^^ z)F}rI{!$S6mLfKFV_VOI%GuDf#FRgF#d$J;&a^FAXsU;7+bMT1;E#@8Vu*p}AoSeb zdg99Wx+`2$1hoeVX*~?HZtW{NJP@bzWHvE7EcHY_>9>jGJxO@02d)7|~k4_iXZ#+z1`hsxF5 zP>9e>>`h*Da7|e!XD!KY(AYs`*g&y5*}7d^@w(31X4Fj+P5W_i-Q%3g!MQ2bvH8$0 zi_{n1;I);#j1InhfILo=e8uBJnkzin>*7kY|f_32ha)_jd0_GNCH=!x!893!QYz+5TKv9Vzc) zt_ooh^1Y-}eX3t=Kwqc|pN0ljg2cPM;E-Ah1ov&PBVgeUwV}J5f)c5ziLrY zb39Sh5mr3lB)|XH>{ox;ZZvV~k6JBwnP{?Agj<()@8lE}xpf?Pj_sjn?sk%I*=R(C z+B(3#9CcwSo%qs?RznvTkpliLn6CjT%k8u!;z%QEBaT_z`XH7BcsES9Uzrz^n9Fqdu&R;M>A7V;P7_U*_)-1bv)QFHMUz!ozT7b%Fm?kd7+g;uBen*BN!*z4E(j_t8Vy!dO3Bcnu#Ck}lXThb$)(g9 zEPbK_?5JtNZP&Lnot4P%Nx=9l6a@zB4cKWAV3=+_wh1=d8D8oIU`i_M%xm;EWio#K zi;0;+tLZB99;A;}->s?5-!5IYxKrKhhGxgAJS86N^44J00NSzHKn#N$WBI#lTS&Dz zT|WyG#pGVfYCsTxONfrMh|av6Cu8*u2x%Tt>2)RQm#-zYkjxePf8Xu2JLBAbV^Is5 z5CDA;U}{~aAhu1r3E1Jna;|78?j_8ZsOtowXgrV*!EmLdr&9qQpuneh{Wb!8dSyng z0UxO1giA=^B7+dhAcg;5^Ev(-=$S!+?*IY@;G&Un6a_G@0G-y%E33A}Wu39(_9{pM ztvWIm1(wF*O8O7LB5bK7X&`{yZ0$5IQDmMvK>dmCTEtQkQLd(#(n5@v1E>SbtT~V_ zv&;y1DkqRoR=+4sn#qH$JNhPPq+V94i@9JwUV$WQxFHlY_LES!!xFJ zJ_+gBww(gV1zlo<-tQG3V>K#(7W0grf2&efunLzve9orLUl36vA`>Cq(i_N48$3E$ z!r^8mgzc%+(KY?dlFuMVl=cZbbEoY{{G$3Za3JnaS=UF9ZX-VsoT2!y(ZZfw+kQ4J zzdn5URYWTR)TQj0pX}}<250|b+{oKv_;*6j4R>_qoLmBZ!jZs*YhLVL*v0(j<(vHOE5-2-Apr_t zTAt|(ZR)f7)wwq90sQeqkoIbC}ZInwg#VJh(xu~jZhM$iW+GZ9(ia9HZ z_>cr}15Zccz!iMsy~INLwxapFRUOMsrf0~nuT~ew-I;pA@D99!rZjh7VlU8GQ%78V zxcMFTH5KWyA@z)q_#Dea^`0^N)wW@p$53tR=}a+@5Ucctl{*A!SuYTWoh6mnwcbm( zy+tcDO{`QspbPLy}{F+u)yZBcxImzT-Q zuJ=Zihn_p6UC@;LnF%JL_Z5}Ln%}%Ezb}>U#-cXW@>Yx$Doc6qGgzM1J`oHc1S!9f z;|Bw~$MT%J0M$K|n(OuacamO*^YToMh083?5}s9y3ezFUQ!6Ctjw5=eAhNTQ_oZ=ij z<7#Y^afz<{9fO8cY4P!Nb6x@FaVI)}HK?mJ&$#;HKqaaTrEp1B;yo^M7P%4k@TmS3 zhkSfoHH0cnclZHx#Hua?3&uk=8!Ct^5ySpDvX(ow&JadI0PcpEt&I%XmS^>@*>cwN^=5GsWDVlE9CghKwPo&wFXz`Fo1?N11&f7=srLQQ_nQ|hUGi^TH zns=iw>@nII&O2^{^^B?aYkiEmm(i4kbdHo0bY@ZB*@vt$Hr_C9Yrg*S30W|gRSMg| zc_*DqLDEM6Zt^f#>)H^)K!tY;!aGptvJDK2l7!?YPQ+%@s7#5?%Isk;5S3WZV~SUy zDi-C&)&HwjbwZDPEzcXvEpYX4^?0y!f$f!VBe;4+wNcu+qiAz)=VWI(wON-UdXjoL zvW;F5uRtH1sNA{`6)iytV+2LN>Jq~Pi9oF@z(au{;i}FB8JT#%7MpH4pY2yKPuK)w zkUPWN3oOdWs$ziXbrTf(N^p)Xh(c2!BGWM483Xdfhgag~tbYLwB1}I#s3TO+nI>?B zt64~6JfVnHv}mox*j@<;C4im};N3zdEs2GJm~(!zfqJdHcSPE{`1}g;+V#pf&#YVP zMc+tlu@~bc?iH_j#&cZV-++$HBeE9YBVWZ&b9QPY3>(EG$9ZKvP4TD}8%CuSu)~^? zAi?%kERh%EcD&5Yy3UGyR63BEUebK@_!nmA{sJ4vmfc5c$4j#1-y$nd+-?5Lp4tF> z?jsiyC3Bm%`|*l^%TIb3=98&5x_B_AS^?}~t<0X3Z`SyA<&o{-V#vy=92sL_s^e(8 z#tNcKp|CcT_R!(;)1b5Rl(<(b68|_~1x@Wi4mU@=p@PD1`raxTTOh6T`C$+funj1> zwO(MpRYd3|QIm$L2;FXHLCh3}3(L&M%UU}k%Z8c8Cs9WaWwk0^1Y*H!|Fw>z!L~H5 zpm31@n@NSqX#Rto{#f+c8nBx$Uwv_%f(AGkW(a`v;xk8(=-Iu1jM0$qa8brjTnKNs zu>r>SQ~|G!FDz@opdJR*i~Gcts9TdDvDfuj%+k7Y=r9#X!29#!d^bkn4<>1oFuh;x=Q z&Z_!KhU-15PB!Lxjm`Q&ys^teX1rqeQ4`xhxt;UQkL-9_sbV?!jl}e z=Yc=Z#i48etlCM*Rr33{t+L8GgQ?}H?$8B9vd;JT57M9P&v|sgQ zT}aI4fwJR+Ko!KyPry4P^W2W=8x)T;wdg)@%5FgLX!df|Kn>=YUH@wIxs?xj=wNoM zM*d1F!zT*KC_=^!(`C{@O3b?$3DFw_9~5UTyZ~{OzUYau+wf1L1f<2BPAfd`2}{!; zVM-OGb36hIZQcnjjL~DkPQ{7aU1Gino-MB2d+55%JY&GxjAOZK-c?{fH$Ji1bZqCU zj;fS|r2&6kGu>Wze8*QkeY<_&-lx)2>#`C>7SS% zw$EZuEm&PQ(*)A6#;G|y9w=$t@5-Y%s8#o#ql5hWZ2#qS6rcyglzL-JsM9QC2PS|* z!4qxX8`Zy_#Ufx2D=vQ85c>}Xp>wH#^!Fcsk^nwHK%t<2lO77GBqc0_a0w)j5j@E< zzcahbTUJmq7}%vfDr>$=VMzd#4uagEoqybNK{|=1_x9sj?!%J+NgtyRPjV75r%I`) z&4l}4RETWicg2c5AijT{B1z>qRD7MU4Md_6>40~L%;@@mZ6FZNLqT_*%^nAGKmB^U z^b_{}J^s$?w_ATi`Efp1TUGcaYLB}4wqMTGewv{Iz@qLhQbka2 zU!I7tIC_cuX(+C3U|?oB(Q!Fv3vO<>xLgFVP2z6U55$q*RDVYQ+TQV5b?s7(V0$th zTy9k{YH|H6uCJe6O3eqtbvBl3huo83)f`>Yw3WD;H%x=1Zk8k~CaHUsjuo+|L`Iu) zWHMJ^pk-jR78F#fSvel5%(ZVqKxm#Pwuzl_gO;j~St8=^y1T;b=@|M_YycbSr6FsJSA!0c5~FKfGmRfxI2#5$6}lSzLznAWu5CPhJ5JVa^xr*HOU z%5~MAQQcx5!MYBw)_5$CuEdwm)3AgT{uhoI z(co~Y5PU-aJpxo3o{MfheLfMc$1-S$ybBFULFJTLky#?YEcLPkzcHShC6w@IKN`#^4D+I z2adnk1!kp>w5ozeV5}iO>Dkov;5&(Iv(Kh)TgJSv@gHQ(qCMlL(?%5y9}2iyfz1XvOeZI@nBz z&Nf~$C(Yy7qT&ju?U03&=R$gQUo4*BDpDS+!)f4*q3yCORo@1R3W_x!U7B#=OB^Mi z%a#5{wjsNa04^1?E8*2y=QZi%pxp!G`282Vr3zM1C*90{ zTkXAF4QM{FNmsQ3`nlZf=XP8US=PgWS7jI$XJ62%1_*VQi}P9&P?a>|hw*qIEHDsj z5v9^E{4NXN_OmzN|9d7VzuFUS&lpfp322DI%MF1pqa+sqafG;n=zL8<7d#$`$0zqq z@kO;0X_9-5A7=nhxj&6&zgU*1P(nc4OS@(_7Gz@;$K5u!n2tMVjR-_16$?WMmx{#A zhwMyi7>AQmaRmUzS`@C&0X)%kGkxgGPHB{dC15|Tqg=Tn#_y0oaP*lJ@|Q)h9EyHz@x8_tnm;ALW0kQE*>DY$(x@ zNS_K@b|Tv)8hs0nt_gt!Iz2jnl%$C+5+Z6VTCTtbL;A8;hpmt?8)|y3Un(OgnI0I% zE&J&{zDcCnnjX#=Ns&{>%-?VkNw{Gc>>L=EmnZEa7 zsyarumae7U(-oC5x?Oi+qZdpGfin0%h~Pn#%rPZrq5{>bwkG@Cj=0WY1wuz&ep>?< z8{y_lh<-un0@d5F`3F|WR4GL;@M7S~)y;del$B$c4L6Qmvd;ODI4IQ&K`q8XsvXW} zPQS87#-~Egm!=uNNHKWQbrB+=VOulzEy8EP$h<$JV!Q2HNJxv#4l({EFgN$HGgW0c zrSW#Q^ql$J_*k`&Iwz3AFa<3$w@-p)oWXE)JCnM#4$o<1N-ARgxw8?HnBBZuo9(v^v-Jf~+OXy7P z>dJSh&<9mf`JXB1vu!xgJn4w!oM~30xOuhdDeQE++2eUR7~mtSw|9jaMW8mkc=)p}+7r=7d% z8>Q>!WgaL-Ti9AMAcX6l_SbX!0W<3yAM^dkA`Mv-yKg0GMRm64X>T z9*r7JcUPtTRquQ~6=fmLBEyJzZQtjQrDGqQ{|_Sgy;15OQP%W6JI55Yj*1aHA+`C= z!97-=hBfKGJr=S~rg8eam(D&*+y7WeO)^c7ggIlosAT(CsnP7E(9|PM0aBe@SrudH zrdeqJ3PO_qSXJDmI{PdmftarU&K?EO?6Q*OfbMt7Uu?GzMrrh|Q`Ebtm#;w8BFOz= z#%j(-pt^c$RNu4X!Rms~Fmjh9$1U)2R8?|Ye^^WE_?p9yf0Ikq7k5L1x-h^rv~s@2 z-gWsTFHqg%2>xOC^!O*gs_m*>Fc0C5fN?)6G@~!ju7=X3K}WKp zj?x#mbtlNX(x9i35m-eVCtMV^=aJ+EbqPLHa|jR{QYDx>h>pta37^b+y8_^Q_HG(^ z>T4r3bYNi(Ivn7!J_F;U-2DbBG=VM$Lq4n*Ue5PsxtCR;==<2xHJg0= zQIx-X0x@6$0L@@jvrUA#J{zl{O;w_gy*;Z5p<)4K&qS4jmOYi^z}`}wRHhFT9Vea% zl@x7nY&V)!nhAuE$WVZ!lXXqUVZ2UkT1@oRWYUh?O)JhgUpi%eoC+h`Z5%mkm`;+` z1$2WRt4O8k2JjB+TxOQD8z!gUy_s=V$#C}Wp5NodJU5`HoJyLha*o5R84>^u`rkAL zW51ef4#M5&ai7bK4IJtoIP5rNCm2$%q9zM-N!p}&TKQbQx=TbfU&kPy2HWedEGpE7 z3~TDv83Yg=)J%^Ep>V#Zm`Ly`cx|Pg>UEi^ajit7PCi=W5GAPGaV>^%5Th!#hfwE0 zsWRLDr0TQSq!vuG3%B@C^SGr$xC|)&WJXP;Y39fR_c$M;JUx5auB(ouioC21;dxrs z$lOvV`;Wl?O>@*}bx>6|yavyLz)!i`xv83u-nbL2X;1~ zid%e=r97i_&)*no*AsB6HTtPy`+2x+0Mq?Y;UTo{8I4!POEG4bdv>Wc{Yf3t#UFGM z5@PuB9!;}Ea&n`mmX73A5qGHR)D^9td#8uwyEosUr#vdfgesP`I2xz~5h!)Py1@2_ zy6LOoPi$77l|zvA7lMd&cE)z^cAWg^)_~AR=1v9#5$$(|0*b9OLk3zK0m;@{)e3|U zj}xK0NsWWtxi|Y#qSy;&|6cwDVIEGff+s+Qk+h>lj$!%( z)#csMe3=t~_KwPV<&WdRoNLv|ye$e(w{k0HZbT>eDA9j}7dYbI7j@W&&=3js;qwO!453`k^pJH^-q&m$G zmmV(AEf9gBE7QI1xR1FaEdBz{>&zN)S-z()HdsyBv$kaSBd-j;{C~~%k&ll%Hil?O z`#UW%`vpJF_5>sy7}xr64MP6y!z3Q=UdZnI>n3wR-rg(=@^Rl{7_pH6^LWPw&RC`DcJ5FB=cvNQI zgd^A7Q*S^#RPS;P{B2;2nW+4uWoIm;U<=1{R{de7Ol&1UjzouDVUL!9aG)gxs5-MGU zFSkF}hLVUXPAT@bvm#IgjyMNSvDdRvhdzR^q`LlacP{C3`%Z}|Q{JqM0?*M5l`@NM6 zdLNLScb4}2;Wj6fwtU?Ne}CSeOgzs?9Cf*wWw)Gq%V_x21IGtCoZzAQt%RQm^?`*g zum|~j3-zj^riQ<^e;aN|{cUbHlDJ@|eqK8uApF3y2ZyUQ^}lQk9XhI4bG_l_q|w$c zSl|fh@rK$BzS-yYJ#|?s&6V!Sb`G#{8M>uZ&oKod97@xMHl&o>KJe~dI`1dkWimm9 z`UkfOWFiJ52giry(Zu!~vx+%~f1ODU(7F zTv{EV=2-o*;e{@svuQw6I|dUprA;VT)l8AEU*8obQjp;I`-^u zBivuZ7Ad!;2J#1@UYfCNT1JV#$-9%a$isgfuWjEw`q7~K_mRqv#Y0{WuQYklf%;$I ze(aZGfNJP=Cb_wTXyY#;W9oK{YbkC~**-*!NlDdka|%oK`voPoxzX!bi5X*U8>n?` zLw}Ww_RW9oXaq5uE8H(vQMG9gssZxmnT&3}&dzbQz}!;zI#sC^>wt1)+j52JIu9^> zD8L%(_a+7*Tgn%2b<#J9YVTIq?JrPHa5eXEI0dnjZr6`9-_pzz$~c@BO&Rowk5qp1LY9uaRuu=5zAK5ap^nem z-5Ye4i>d=u-Wy5%Qw=`^mDA8p)gl|ksrT_NW~la()1YR)>o=gdU0Oqb9g|Io%KkaJ zgrX4B=41}U(z!;B;4ogbZ%jY&+TYo%-y@?}wv0vUc~# zsy)g&>-s`R7*&CK`;Do_;iKeNF}gm=m9O3+Ga&Ob#L7BRRLO>m%Yw}QIxr6be8j+m zn)Wk9+j-}W-*1@yh1rG|Grr_u6DRgiEXdl2U~!F9eG#8Jebt|6aN|a8i$|ld( z&?}F}I0)09xYqPDcM_UHCOX{Hf{A)FCwx*c^*0*A557KGP^#@6nXr5;L$@(xHPu9N zTiD!+S-}s;Y~kg{t!f$vW5tGZAoFI8Z#3v@MEaZ)7oMTI^4ty}NTO4-J{_wpdm1F- zH$4S3{msM&)7&H9)`35l9s;1Kcu4{aqyM{~areur5)61RB*077fJ<&v8i|Ap5rghg zxyY6NjU>VLP>uKmI9y~TdxzhaL4%4TQciz;`C(!GPp0T=(0m0^+mk1i#x>XB3q$Xh zf8{Wpm88+B6s&)Lo zOOK5%c3xEiww`xi<%W1TD@lk!yN!-K*%YoPB~$U9|Aq}?ns>K7vuxYCAa+9(BMk8< zy=g6UssTW&!X#qm;9m%xM8#gBEbtH|%}%d=bZb5hfwC%254z?+@M{s9dYL&tF16}m z0!u_m`}rr;O`B6uBQyI;uBpM-OLB@(A)J}yo9^dzz)EGaShi7q1v4! z+&rr~8?DTX{f%hnN^T^8S<{Pg<-&m3_zL9cgYc`g4Qt$8(Vxgm=9nQncDL4|9js~i z7mlT(bM7EeLnDWacMfUGB$P8s-r6OD0&9SHT8-03p^At}S0Q>ao|qY5lh88Ib=I-M zm5MagzLrtqe(3Wxn6D2I_Vsu8H5@n_{itX++Y@Bpe?<;%cI8btdp zT)@*+JI(=eurI|2Nd$3(VN>gmIknTDuk}0}_WC2MbFqqU4m95*P3+{I8=uo-+aH~B zavj1#_0naGwDixfOF`-uc-SPB`nQFp?4IL`hbiw+DVNiigLe@+FjF%?MpqH=hp!w*cli45R=B@8pz9u$PO*rK$7giVheO-EN0HdK| z$h3<120UJOVFXWuL^#p-!r0*Dgph@CQ#iya^HjE8>&%S@5S^xFpn;RSQ-ONbP3v*z z*;jSQgWloE+*QFMN&$|M5f={V)OvZge*l-nk~6~%Y{dDzK0@jA@hGb3b4xw_+= z1id3PLtFd|*BM>%XpqCV(m18QKB<#zNE^0Nq)G^%+L~GV_?~T42O!oZGIEUV+JE;6 z#i~noz52uPGPmE0laQ^+*cy#J0J%P%&_G{t+vhc?gT?0Lv|e-I)9{eTer8VgX5P%H zNR_jpi95!^4(ItYAR6xMUi!@LGK-s9V)|vyhswW9_#QF+u(WmGem#O<1+z=Hsl|hK zNKm+>{Gl%*tNSHUYTDf5VySaeu9bYb-_i8>hU|-mQV&z>CyitIS{8F6joBi=t%eFkc`Gl>HN}x%L>;%rek@Q!Tr4lseYCdz`EHPZLX>A)j?&8$<@17@< z19!uMy`EsFjhvaewW-*C$)4ZmLk3E8)@%NGNvM+U@sLpYzBc7G`CYL(@Pf?f>`Sz$ zkWa{w-03&_|N5={Km-nw;)*Jg;*y>|x=A0gMz~s4tDh5QPga@aUF%Hp|8^tvZP*1% zq{9XgHY5(AX*%mkKQUZp{x0C-V0f5;NCcPKu0I|+DZE(r{XDQ6pt zETh%Wb_#q8WG6zk12Hisj2Dsl2o$}Eu4?xYjKxE<7=TSW1(X%X=ZBojIyC&wmvVkB!l@}$CeBJQy#J&{zvn_HHRRu_NLe!BA7E+mG2 z7zuo?5BS~YL|ss(S-%B;M^!VrryxAL`x4V#=1xIhlv7&nCxfo2Zi)sRpAoymQyV4{ zdpwvMzqH$8eGhH~qo=+es-svA0e$~k2@%eE;}&Eo0j3L#MPyEQm<>IM)C}W(l4O{L zP14=mvRiwnUQ+8by2Q13Ay>vYD4YJ0N5*5_wfO4~9x??;&%pVoCa>CWIWJ zgJuXc<%e=gO}I015?){P4U$qEgU^|n{bY=_O&#LQGy~yzEomzAHuy3CcV2!yp7?#( zMId!VTU0uJjJXtRGb&QQhe`kuA8q#}Utmd=jG7(xm6r9}hzfN1M@19UZGC%rC=>Xp zQk@@#=UIw@&hk*M&F6x&n16>fdGXa57c+a36ZyW2cD{=4tWu(F8EnHOQ8 zzzjj_dxqEbj}<-%)<(Tqz&{t|b{n=q7bOSoN9gbI?2P6=^**bG|w;)VZoa74j0zdpMv9l~3pX~ihcB@DoK~yd&xqEu(%o9prT2P6(`M&h)r?oR| zF~uu5H|A*GkKzk?GhsiDIkg=xH@i8g(HH2>e*Q$S@xo(ywIB4cfy-X%lc;B+S2 zxsj_ex5|Mmz5@1K#eRgiWO>(zV{===MQMD8cg zpUxZs&xKSrqg#0812z_6(;KBuh+`DTWuOwPyE}86&)1^A=LqtdcQN=9N#cSwMwplR zoI;2#=ENptH(bg#M<5!4)5bm^Ng7aRRWLz;!Ro0;ar12dV?k~!&OFNUVM`52%Ggzj zqvO*Bl@{y(6M^2Py50fgc$;JGwg4vD7Ig^ElpE5}4Dr zC(Kx(`zoX3=^gtCO3s-A;r+(Rtn?=mmK|bc=J67Q=z3-nfD%)J80BKzEMj$A7g^G% z5-mSOZlh%S=<6ETdLLa0ixOl-xZk3oEV%h5Q^mKb=!RJTB5z~VNFl2e&@GX>36@!Q zAUK-_9Pk=r~y1QadxAmTKok@L#*Z$4&(I^=M`Fk zd4Hv$o!$NV3Ko)a?LdY$!pX!iM-g32f^HkoDh$mo_x**7sjc!;$*#_4Oht-!WHC2x zD3c}Y&mo&f_$6Kl%ow#6{Y~Gu)|fVcPcO{%D>7o%aKPGh!hPmux~xTHEk;7omcsTr zlp{WjoM{kkyV-XQ%dG-gw2~|KmTX143_CBZ-3Z@8A*1sLp#_rz)S&zhl}t*~0X!N7 zM|503OdEl|;>ghz(AJ5(dK2WJfY?(NbOBdT-q?~~6$1bbs9Wh}jF>mY3c2jjQ~x*H z*^!W;0?@=kv*Qc0_zf6@20O4|v6$jU5|If3`DnI+W3FWZo*Ucsp^QzMLraAg75`P= zWTbO2Wx^y(P&7+;$<}49gj0TXEe_ zQuaWz0@+U@B)2eRh`IWnZ9CA^^5H6F4m)6;@vXV1<^!@gmXT`UaWn_D*^hH!?oUlA z+OlMc4n{{|N#1GJX0|#F04QHdXGf8hTF6^>z#PXCSDcQ8JA=o*--#)Yw-X<@)LH#D z{kbNxv&f8HlB>59^pTL~#e<+2KnlByM(#kN6pk@7?3r0d9kXMitHj-r0e8VseYX_l ztPB(5^$b}^N&zQU%T`(rK$eSZBCG0(R!Y$!>^k-?%sBsw$xmzuH+5|3A$WP4yPe#Le1|$ z%}QKJ=!W_xOtf|&@ZyVOuM4QJTWIt6yJ~2khvhya3=T$wMnM#(5nxanCjnLb-`;L5 zBgOP|6sJyay@Wr(9CMKf^AewoN0k^AqHb8vA|-NQd+ZoF7<8k8`8{E!{F<(y?^j>X z(|f=#@SxW-3#A(74Qv=TD@V4DlF!({8FG_62;n=-v7iud#mDBxMQ-iR&KVZJXP7&4nl)NtQq9b;pcdVNWMCbn2%ptx&|djR$jX_kgn|3_SucQ} zH(SoL8uFCEJQg3wGKb~FRI|EwN`wqmf8a5Em~O8ZIF0W3`D<)R_am;{DMiYQo~Najk3Kpv&$ z7vr|Cpln4;@uMe@{+0k&9ISHFjCrAGdGW@2kd&(LLCGZMxf5kmB6*(f03_R*dl!_H z06d?9R6b(_fho0=^Ue3-MCM$5Z$W7U{fD1fm>@%<_YJ;yM*q+rnf%aY4AAZYgMNX* z4*EyU^jD3qWFShe@5&RD=WAzo%R@B0`pJTKn3B__TM4{?hgfC%9q3P!^0DHCE#}%U zAQtw-Cr>N$q;$78hay(|-3TL_Tqt~or28`}tJxwQW=sWR^CpA)r0+~5bLm%JH@UGy z{Sf>pYeUXZ2Eph!hXg`Tn8c~YR6-z3+ZRf1*kHQ3}e#(NJ5B9cQKLd!whqYu^296!;xVBOR z6u9TN{&$lay>I11MN{MKnf-GAe4UzB;}+kP!cJWq_^oQ5ouLhX+ZWwqP@!n+p+ik$ zDI_DcLm5EL$OhK%mKM%eME8awy?19fNCO)v{FPyu7g#oCs3F!DnYqYdid#J@yF7U! zO^nWHP=a(QFwBhFDA5qU5`dUc~_74|I~tH?vlS}niX8S z!D<|%IExi^re9UZk}Ktkzi&!!%uthHXFI4mbf}1$`2qUSoxY91i78>Wur$&()d!P9GW6pj^RP?HWA%`J;KF zPRod-(hz#BdAuZJJ%^HYKAF|f258I3aHBK+vqL5gwYxof0q+3(zk|&;kkt+sT00j3 zNWCBqf|3A6P(X-Sp2B?|jkduUaCN1#eB?I*`q0!O`nE3^$OglP>M0LHYPmyc(gV^2#iGm66) zgb*AL@o7Sjefu{L731U$MJkdQ$!CFp{d7n&ddpaG`g87p6)V`rV3Su}-CWtFBsCcC zl7B$5RJUiQf{YPl0hK%N-Ohr9Zf}SM5A@l4!GBOU@j0q!^agrB;n-!p#VfPzsm`t} z#U|}9(|T^8`^suz*1-xw$A ze-?jf!*-#{0_zMi*uH1m8qa?CQ^5+lQFuj_1^<=NAvC5=Uo zBKy;??|=V7K&mLk2}dDdfa=$x=N~CZHVE*kR&Q5+=I!=hqf#~g{z|e_;f9#YuK!M? ztF6|5TTb|$xcmJoi6m#F4g>gK8P8{={w9M|&s{GL0)LZ|>7*v{Wj%XQfl>Bm?;^uL z;UOp-2@0ZY`@h_jL$gF668rys!K6UGhO);$Q3sS$;hQ3^l;q1L)tE;Qc+huA2?UGennqTgnJax0Ust3s5|2m0QbrD1YF-_UjmORcWn!hkse>d^LP~$ zTZ-zxcUF}Okx&TghQ(#`FEH8-ow=NzS<(x+XeQ(`bv>cVI79(yLCaoUCe%KxxN;}0 zW_678Ox(>=Zit3`k4O1`xX3pQQkT7%(P$x+NEKR0)=8~0FX6NbL<%ChNT9@|b8z`p zs7Xio-MQkMMwTJ5P(lsCT2N2)>R)QsnG44ts`y*n(jLEfCiuV|6vD1EDE0&%1BzA^ z@CBN>I`~|YMO=yA05hS3%GW?MwcFM%sj(cOxcywyT#xNJsp~DBI{s^Yr7wS^VH~-z z_{&cPI*2KJb^l;wahRx52#AbH6(y{ixn`#qTpdZ6z(O8&^Q6~1aVFGqFXpBw{)qsD zN9Mpfw7rU^mejC<7&FhIu)3$##8i2Zli@aGj?Lg-zSmp%sZK;77{5?US3c(=f@!6V z5rz&wGYUWlxz(J+rhfps9wQxSNopE2$S~`)- zCZOF58ex&e)y5CcshaT>kqq|ys-oCLs1f2mitChMTVwK{{>{&+U#KN?Be^&CywZ++ zDhp9YS3Ek^8HFi#%Z%=$>`ll7Zl68&t=NUK7!?Qu8VRW4la{Yk@t9%hQv4&YG1U4^ zuHsK9nvRXeX{84->se*XR~U4@ZG0)tb?WUzzhq7d@wBqeiW#3HJ*3X+|IMykNc>+7 zgJy44YR>L*ODWSkoOYdY;JP)ubVt){ObI0%P6N^E%bEAbbLE}<7PcBgsxU1%`wa!^ z7WXu4bVIm24Dz?Yi{){$Ms)sj6M()##~PW5cUCN`kzI5%6cHJ@i^chY>*8O^^0W}6 zMjixDd9BH``dHsE5)c2pRwJq*Tcm7!2yozElwRq!=v88fK#a1|j1ennSs6~q-@^3n ze4hC}SjPzwmzh0ik-94DoqW^{$T14?F3UYklauU-BBMd9rn$q$lPnfBTDEos6zhvE zy|4+gbE$fcr}A#B%zc)La3ZQtv$F#gt=}{`gJO~_NcOisa7qUMEG+Iub8PbKQ{^!6 zGaY=V@L6_hjNetspV>i#Lm36)mLYA5S@-WfD2<8UeQq;VX6>GB*|0Joyex2?pUu%B+D zelb2#vm!LtdF#Bl`sk5neD_sF&h-P1*IR!xz9s*sJL>1a`t#(xF74*dRlNy_zJ_z? zuDZn}h=^TpGawoY)KYclQNH-lNoOpHpSY;PA26;j2IQKFy`;eL$hTG6K7t^$Ta_&& ztK4i-Ym4^Q+kVyYGM|eRgXrRFS%cAKCX^&P=nW#!NiugAguT!j9Ez9bz4EacZr?`i z9)-!AKy+8grH_*=l({ zLEg372mrbp*TktCL3zcOUKmOCPzxliKaZR&gX6B!UOGA?<-eB!-}$7OS!tV=MO-^% zZga9@8}R+I5EbUXD4xEN(#CyE6u}rtc;o;c+^NrcCD6+Z zPt3E>+a*x7((H50%&H1|`Sl~K+I)}!ZC|j#0DmsYo8QliO!K|nVPwueaBS#waFd|v z%BAwb7zeJB1I_!0i*CV&+{H-G4;6O+ouhuQVduMs8AI02g63Nnf({AblGL<*%&mT9 zSL63>#K{v(%4U^5h-IS4tmge)h?HZ3}}q zQea3}88#r`nG3WIBhZjwqY1J(VB0fx-etppEHf9*2bWBA93xy0QRqq1o$hJ3wb$A6 zp=4-B_m*Q=vx;5#{@r-^;MnJYz9{jrM-P)!6tFpRZ0scVs78Kj6U_gbdq6cQNS>uw zK92wb=CAiSs{yrKKbPyDH9|xBikLP<812i>_YkqAfaE&snt(`%)62BL|0S+s8K;lEc2~A5@ zZa!mVb(M0q$3x(xZ_k}XfvvT6{oBtbkL*J9&PX59Ixf(6F~|$&za~!Ztz_=WdKEFL z7LEj6;JZ1zG}!5yM<3{FI(C7`C!7KgB7FLN;pc`h4#UvH@U#NSTlrZ3YGAcS3rhW4 zh|Si?t05HcPOv)n@H{FHA|+hw&RH4Nrz&74uw3A@!01@UvCgqzn^#GyHV7Aunwxb(J{Z66H8){Fx(o zI#3dD@wC0h-|31cY-sMtLnlgf5{6)|@N)gCS|fdiC5r<8px3bUMi+H>+p zg+Px~5kp*V=LdlevAg{jUxVXE=)fU>M8-g5qT`kh5-G`IR}dLbKBmSPJuUgkgt(4? z+!4XuNj0%1dbKM450COX5nLL)lPiEL5V-(3Gb}3kxjf7wcd|$KH}z=6O;lYp~$p)w3(HP&grSyQ43&RK(t6ojXXMgzz*09qYzfcdWT(NT&XS;@ zz75hej$8$va|EUIYWO}wnYG^Y(OQiEhyhH#!D0|H%$m1)hpI>xVPd%!s*EwUAOIKK zpw{te(IHN%xv&gNf&nHUyL_{GkMR>Px0iLZXBKc@IS8sFTwwHZk^=Y-h%jbkE+B?! zts^d|`3rF;Jc}zk-_$>L4rs96S8PLCCryS;=Zuv&dHl3j2uk!NJMjq}ixmBF5YTby zn63vu7&wsdMjb||9A%L?H_8n`pu)@jY6FZ~I^I#1lhh_=@sJ#hU`BG}t4$0sw{Yh? zfyN=mlK9i^YM)nc4a}p3m?xiz9Rh4Mbl|>#E ztcU0ejRM~8Gf^X9*6i=P1Xy%B%$=NnBdwmJ9dK5ct_TYTO@`ZVP+^;8Zfp=d~4u1@0F>z;J2G56G3h-gqfa;9+R z)PA4+YIdHP0UFgrpmk0d98O#<#)o+%Qk6lwR@FSr zt{`8aCZWcVOCs4vrIB%_B$&_$9!Rne=_K+darM6cao!Nf`Q41!8>{1Gx1!xhbvq|k z^ zJ&bkd;adZ6Sw-gts4jBXY(nMCvnPfQ|e4e}}A>a6%<|Nc1gbf`(7 z2d?^$cFO^6o{64rt#fb+*>SugB}!Zf3m-%hK6k6PD6}OXxZ^ropYiy5x4mTp+Vb|s zirp%X_-XeRG9k4A_vN`<;D+f!6)2yfS|xvzxR^q~KJ55mF0=@v63i#2q(c4R{<$%8 z3rLa6SPQzeg1y4DA3T6Io%Y6cxxEsiA9?xVzFaqk3fL2`$5>D5&a6Fo%-vr3!^zGV_4w<c1CK`aI@{ z8I@G~+lPtN4)Anf-HvS772M$Qg^vT(J#l4x<+6rj^ljVdI&WC_x{~!sV4*TtPb^zS z(W6mYym@w?K>Ls?A^Es}kE#d@&FE7dvi&H~HW!-g4v42EPB^H4a6I+vMp)m%{Q2Fd z+KHsYjxHniV(vc!ij8v@gWZDNs6c>_a8heJL~KtmuSlP%161=iFsOqXI=a+t`xf5i z1}2zKDF80x+r9h@DUk>Fw`w;m9<+~tTaFVneBH zJ~cW4mMr5k!B@7cIvNu~Bshu@0>lW8aON=_L!esL9~QA;yV}41+Aiato7!o=w)8+# z9;=Q#XB}}6h$$WEsLs4cd)1QfWK6%s!C zs6j@1sfIAhV^s?IiCCPT7|rp^FW8#7VE~yh&ye)+RZrF=&YNiQwjQ2^E-iB@Rwt@v zBfYAYPP)x~o+tN`uy@{OTq~cTkq*>MEgwvb_pYQvIf#8zhi-T*o<1UG;CeGPGO~Cw zBSvC~I71u1plUOxyOUxSG86rQsv7C?pYe3J?ZCxgpMUDiF))7#PHAj)Ha87&%k5OW zZZCs^Z~-%)7Kxu;J*AOT2Q;|~IJ+^`(XdzM#kCz{HKaV2y|%n~PL}7ClFLBtsn%w4 zWJLuZPlbU51W2VUf+M$_2>@L|y=)N%$l`J?99C${@wBuv6BrBK| zt=XI>%yUP2t^^x76Bfx@j-ejg$4qZ4=uWlR%!lFq2URCtD?c;R81r-EnUQaMdQWag z@@T^@PaSf`EGehl$+Eh{F;QeN6|yt`vPkG80ViW|rpHu=C(i;3$J6L$}+<2HloSwzzsh0Da77p*%eVBgRGh0EIN!)JxBuK;f?(pTr{BYt&N6!!E zp1-IuiNB2yDO#-DZqU^_Lq5mI zyWzFRV55<0iVth;-itOq%znd`~bZUsBvo;)#p-8~C zOWPj(>_pR2^@lJT6Kg8hX*ix|8rS}SK$#$Oux?lm1%Cn%w7zTt|HVJX@2#FwRX``$ zPRRlm1i3#6Pw?NyH!uG~h&gxAQLhFZ|HeH&9!{qaFkpgcemP7duKq0DB_Igt=JX8! z!oO(E{p|<`UJ2*~F?Sf84?#Y?Klc206xb)&{^qOp1{^kqU*;dBiybXKBrtsQ{Wrre z`Q2$DK~ZiEetQW2ZGnR!{eHx#TYh$PWLqQ%QX91dazki1xWc8lU;gEQbO845$bCkE zKOG_N?VUYlj!t}1D$oD(^)C{Bq$X?G*GMfMV3ucp{xTv~9&;L?QgLD%;xlH4Z&iK2 z+GnJYz7v-E@aWR-_{XIH*HdrHOm-OVTUtIKW%kYcf3HyEu(PsdVaMrI0BsceKc-*MIwXavG*ZtZLwWz}&31`I-y9rXhPxXWeG9-}LG*Ek=hsJ^wx#=DHm zt?U6@(c?sqnNKBG^4lZZN#rH&0k7~aTauu)1I;KR2 z3c#SR?TRV4bTX)aM=~TE%OMLzxz~8NcZPeRcbflE`)lMnvVektcGhmd0`tDkWp)qE z8Y7lbqvx4CdaEqd<{{9)`bSC$ZF{i2xJDB5B*BN^u-nY;^Rl5O8PYBZQ!x}di^2J| z-|@JG$hsRJdRJ!Tv;`_Y3BVGpWf`|-AdBmW03qBJx;*!FPW`Di+uO%p&OE95m9Qx93@xKo0 zj--iZNRtTk2jLxp$!p=ZV}>N6pNZO+&f*EXa{N>j~NQjbgDsWX%r zb{%&;yb93uu%wC~1e%tF?AU!GA}X7`@u&hJy<(-6Pe*p=epPz{X3`;A0E5S0tpcdmHGfCngTS z)VlalIY@!M?}`_oJ{Mcc*c5~2RCWihoXE^s2mK<%JsTdjZ>LN4Nhod8sr2bEfUkE; zO!_CE2#YIM2nC;wY{!dpu53Bjc#x{3qOC!~~z+Fc!fgUG#sc{i!HgMoc`i%9A%y-&HZ7!f3NQ* z8KYLC^<$w1lMff!DipJV``Ger13D)t%jyA5+m*EU298SQx0cNws-(h>x>+N@a2=%k z16$JcJ?(2W=SW)jjBm10!XvsIVz}su+UoLUlUX{5ihYJ}LP#@QZs|FPPvgoTMoA5; z4v6PtcDdUzUQGu&D8X={RMiR<wK@d{7#h=J0?A@k(RxwzL7yU|a#?Lj|MD(K2-olyVatP#>D+k5QTiz83` zzQ>nAQ*0Yn^fw&AxokUDdSAbGVM4NJDlzJn!?S{8I>{Stqq$pUUB+kBWb-d({v1S8 zH&kt^NZJZ;GfNl3JT84j`NT3W4ijTj_Xxt95Wv>9%Vp+rw)))XJ2uKe=;-{S``Z7+vTkJ_e zg)?e2R%e-lx!WvvoN6F@YH+&tx&YmZX+?Ne4rJ*TxY5J~e{t%4ad`qnxNK|?Tetpk zZ?p2QY~qC7fh44o{|6h?107sqew1`N)~+xeZsst!0zf-1UX9cxC;I~JSf!dhWSzcV z>^Z54$Br)JN^szC1kmwrr%Sl>hin80tozHlynL_A#q2G$K3?J0i8DM$ukxDpxbL6p zZ0ggRf}M=-e+GN6oho(jb{F*czLzZ9gk3%7$StMtv6Nsh>AM`HZBRZ8gv2wYJBBRW zslVWKy2PZ<@B!&VdyUUOXFz6L>%rG$_XB^_0Lc`m=YE;w=_%UvlX{|Q_&eotzpzI} zZsHvTfwMr?hWYjIB^NG5ic$W%I2|-HsxANWk?uS7eNP>L9mV*hM2CEBnoN!C04Q{vQQW^^i84mA>@8=W-n;iYpSVetM;E zVTPAM0hiB-j!&aqG3iTDl5I+DeI#PS6D_`{b5|i+4{;;5h5#3ThgDKemf&;Pu8a)y z+uBfO+ONHe{y4z?6y;YR;ARXkY_Z{$D&mcG;s>aNnkH-=>KDExEmTrlW}Bh}&?u4J zn2LUIA%8ea9Jr%KxtSRbOQ8j)L`R`$7eTHPBU}m+N?Y}{v3)Dd6>mxJrir&%vqOH? zcyZ)6((^1@_~W8|w-`i-B`!y>*r~VD#L|cdwu4EsLIgWH9^Z#f^HN2}nCDqEHpSeK zWcZb}J^|#60Z#9|2s(rzu>?%WQU%o)Bim(DYH81=Woc5XtVx)=?CEP6Dq5ZinMP?q z$k_dwomJVW7T@VEs}$Xk_^abc3gr@S(Y@9cEbPTL^!9V3-rpI*2>pYyHY{VT~4+f;}vv2rg}j&*D9Q3kd_ zg;I|hjcpydS?%wV8qX{7|uJ? zgua3}SIT$58n~VLJpq%0G4yJ>F}3_C=Un=LZvmUbiN2l*FP0p6pVk&b;;?H&ugP~b zu_IJ~4au7p8OUW(4onvMzRIRgNg;w+o|m>8vF{ZAD)^CGDjE~_8TL?-yA~xRweF^L$$1V zZ6LxIG8scL!bCAsDCu~5nY?BPqk;~ojGr~IhynN*sO%4v#C_wKYDKwgrs@~cjrG%_87S^w3HC51BCNnO&e8}Y z&V_B6ce?8JrgjbhM9TY`uz^SttEn^nRl1}`rY>drrZ1~l$G3ySb>96?qVRNyVx?qT zjp7eDTPUU%@xCzpw}YjL>D+1~<+6mFvy9dEbmJ(|c_iMgT}1htHvUB7nUFP)mFJzh zy$@a2*OD33A{Abt2#Wq=Hb@juA>v+B^a@p2CCxq0QaN6;ti;GyG%eC18Qm%aF5K=M z*X#eiMY5m}xOKJhY1zs#fGuk(0`GAnWDy^L^8SaMm?6P6+M+b-bZ~Y&w))5!amI~G z*(~R^{C?VuljPaz+9$=7?#}!tfa;yJcYXPZNH(pd?RR4iv6pQYC2Q4}c6STWGh+*( zylGy7)!`28bTYfc$e=ZFbF;+f##syAX)rOMKL{u&ld?3uK6Mf^#gvlc-PN4~%G`UQ z_$+^_`IaB7@CzbREDAtFd~voAsYAJfYP`Urz#vap`g42dYff1O5{itog>UtC92R|X zFcNbKiWcvnQ}RF=hddvH;$BeBcv=)G$Iox wwAdA&;w54)-z_NFtYgKk*MStxc zhe+$93#_*%St0!*h@->sYQ|x0h2@bn-RG#-NK?85=KTLg)r%y{tWzm<-ip^NH85;C ztTOZ^nw?;}(>jN#ZP1Da=A_(P6LKdr#M_O5(`;nH+}?3Xs1aR&{k9_!rA+V0E(Fs) zIx20Vs`+=W4#u*m7f}93iZ_sezxx*BE`Z=I2JBYhwhE$ab}!Fp9&+JvZg3FaFqVa> zg-$dA$3t~2E#xtwriUcnlRw(*8U6Pa;hmArvE8R+d=42E2dpXky*?yv%ZdId>vb4E zb0Bs6X+?G*5G@Ws%c#Piyg#-8!%{N(O0DlDAa_$uQCy+5QKNIen_{-+#8^R`PNjF| zwxs`IV$e#U{!w3K%GBxPjpHebTS3n)j25G<^vw)rRz9rxd4A0BgASCNUxq+%z4iN5 ze+ky)8-R<1qLFXi#mcBH1b!9C^7PI4kpAIE(#vtTqt6f34o;wBS?CDXzQ7Mgm@MC) z!^JuUNrI0rpGmypr8LRz*0I`wZB#>xrG|0t(Ih~*8AC@(-Cv`AdaRv~3d<;pWpOek zI>aW=OLlG*pvf|%y8JB8rfh_NG`a{{$Uwte85C^b+(j1m8+#mXIl7%ssDWrmz$>vS zJSSiEQ(FEr!u;i}{@V(lxuuuk054+ZM!ZzG*rALJ4CB7^-v+XsFGREieEU>Gp1xM1 z(po_s-|%rk#LzGX4A}}gc-31pr*F5z9w_ZaG^{41Y)47M~oaXf5r)B8{dPCCa?zbuIQz?8b2w)-pe>=nj zGR8AZLXbVn3{)!uh_J-+w5~60MQ=p02;ph8glwAFZo;?WzI&AiF0i3^AYUA6d;{3S zSq^)yo^O^Q83WPxl`m4%-=E9eu9TC#l^?$w^*DiGQGDzJf_>yTiWV+i=B_>t-X|cT zr~PS)VohPFtv+>VV=*Pzz6_|XU!693R1!4@2iQH^4*L~Geb9~CiTd6E?X+j54iqp5 zhm%qVQoSnTd6hPb#{ClMA)xg8>*S5c=?lF$V1^1SyzyhEl-iL#;)>>^-i*GJuZSQ~ zOVUAEr5yElqT}uzM$Y4v51}D-T&xGnt}ghO`cO;eO#JS8SK(`mrpK=&IA|yYEg3q= z@=lP7Am=PsnJc+N%m|c-_DVT3C6oa+WH4LKqqXJd6zi3Ir<$;D)P9AFD`#oYR%R@# zsod(+<=C`bChPfa$$5+l8<67UOV1T$>2@{JlRk!|Xa1I|WY=&SFW=gEleipnk0IY< zrqsX_y1*?zmw!%3+HW|a=D2ofI@!sb}`l%m@Jar|K1dXj26Wo~~x8Po^TQb&` zEa~_^gXO#FV^7l(oKUTdJkuwb+8<|}L+dy*U(JM)o^7kbZwD5iW*oG?OZ$#)vlaZ7 zW}6bP7TIRNVL8C%LJdaL%njEOo37x(-K3>azb8u8$z|BTpMCG2VW8VQYlg;A?!xHo zQx{Uh+9Z*OzE4NBt`gc;3buja@)EB90~()QL`=3Jwgwup`U`KtN4FilmDZskGuECh zX8~2HUQO-&7zWZ`D(7v_E%Ld4HT3~Nk2-3R2GOLU&Ih>z2vj)w?gR1C8`eMQf0q*{ z=w2x9+>@8f5=9&5Sc*|8LeZ1``7kO7;!GZ#JO%lpq5fuQcQeb?S}6$i%;r{J$O_=U zJM)lL+T=S88VK2O?;kHV^SxU=;V$1%dPyG1?p!+TuhiFzdZx}xnX(k!i5P%12I^^U ze0$X5QtEQtZ_#T=-zsc!&u&t6zTA9A`0UwF+qB@%05{%Y2|O;4(Bx;ol5}z#Zy&TA z)Y{^3UtOR7u6GAJ<%U7Zv39w4UJ;y4kCtiE^nxhbi*4fYOU3WQS?sgXg)_j%On|A# z;^`Io-oYFyx@Oz8THNLh)3==m=p=e|E%jp?G^yUC4YDV|3entL#p@U7y|R4)469W<>oj{?hSM4}GETi#2d0TE#E z3IG{V)K``_5^Mz2VNq)c34@^9KU?(I{)lE|Le#4@04@fVdTsl@fkcRI>r}dh(l3=O zPfBmU-MtCQ0?&^NvEddXUkikLakBhh0s!n14u@-?5%A(&TBfP)i(+tC_wgKUH5%~u z@)NBUis{7CI-dd3IY+Op|856o4Hp8xuKyA>i*C;kYsgE0L#2kSMny^V?J@i{BlVT_ zfANpY#&%3EDoUYK5{di|C6_MOdT7QTTsrj4H+vU@8UTrCnT3LeephhhP26WgN)Ww>tpexft5I6BJR{pJ&e(qnq z%w_%Y$i_G4_U^0;&9LCzC&01sAV8CxC($kBM59dq&WK_t=rPKoIc?ywyyLt^!hJWp zWibZV8ztG3zSx4;bE-3Mw088>=B-M)iS<$`s$fa9LptFd-}q(Kec+YLmk;-!EoQH_ zm8MS4#_th_B&+bxif0bAKm-|Stus&0_mqCK&TOux!oLSseR;Vl#@B5QfI+N+$>^Ib z*D*AV&Nq;R&F}HrUJ=59m6z1U$s@Eq`~S7$UfPYKKw&-(4MQLL#^|JOH+y7|$w%J+ zpxua*g~(KHh_e4iyqahpU|kGI+ZORoRY0|m-&dl$!BnX=uM zs=_%6B-X~jnj=NPb?5n(Y@M9Oed%^`eh9}+#gT@fv~l2a;P@4YuJI<**aL7_j1lq0 zW+5yJ4Dy6!yY!BUk7Z40z@EPQR`d z&C9APyf;aq3Us-#AlnT7=Hc}73Ak|ij?6!gv`=2!lxsfLUfp~qJ0t|55m{flM*up^ zgx$b~qHWnlnO;a&w-S?dnwFo<*-iI{HF(Z>g_+%erWHdm*%UZ zsqe;Daaw$2<16o3*2bo2frrkD_^FuMx&;(CHmd(>vXgzA17c#CGS^Y$lTFw127|3+ zzy({>G75B`yPOrS0KNo=*-aP?nH$d0y{}Zketu$(iO*hg#AS2oB^8;dNLw~V^fo#o zbN&C|QDqlBSw1~Cnm4G|D;y5>04upU%lG?Re;R!`Ds7zOS^U;pg3u=(44A8Q^Q1$r-SUd?@3+=_4ZZfRKTRr&O}OxeMw^obMrOs;gx!KD+s-`>$W z^-|f$GSYFc)t)`-!mcj=A18|35be{SIDWhfv^O10Fhw;kr>nwA`WNhN3J|9yCV3%1 z=}17ub4$X$fr5E)_v3xP?4Sq5*Inr=IER-*(m65PfWECTI*py3*c3268NO4aIwr?E zl;-l*7*q@y(=Pu2PNhzf1E)EFk>>V~!yq0$q9brVLeuA6I-aC>H)~%S-0j^N-7oPs z3zFsztTexgO;WlLIMdXl6iPgimxz+x#y&5vU67RjQ4H(LnRkmktsCt5v8>Cq{UJQV z<+Vk$)QZ63<>U{Tzz<_+)_T@ud_`?akifYRR+IXqg6b&idMy5NLuO8Zmbf3F3#i2x z3~#8-tN!9{oL_@H#hSca8Mn@F3wyuv+xqM;eZX>YucR+(^!*Q+>t26Y*MBuSJiSKA z%^JI2^6zHt(nr!+ChAXh>~AYbdViR6{iFtuVnK$VA10k2l6gGDEIBmIF@#qf>Mqt0 znT6GD!#krBlOzKMs5?KiA51LIb&RQXjDbn*txV2~(1o~ZA*b8oB4n;1M2~g!R99j_ zt)y?A=1Bm7UM93&jMuiGtH%sECjq-8T59=ctsQXMo$IdzXmBy*j3&a^xpP@7cISzW z`}S!&VEOj;2K$3b3=!zKIc{PGkC8^@ejSe!g`&Vg)i0mk02XknK`p@zAD}ox3r-Re zF3_s77?Vu~em>I{l*HP_r#>pgR#g%j&-F$Koi{2ouJnI8C{zZy3TpoE)aFKU0%hw- z-U`h6T<3C;{V0W{YTn51*PC9(;+A@<2Hedu0z=Am>|eXoYW9xVCIXK7;cx6ijj0$I z;<3EHmE4JpHVuuy06I0DJm{io><|#}!VG{T!L(4l3So;o_GY(91e&$w-o-Jpwj+JC{Ko(|oEk8?G^~Il8~U zaj(w8_W|pVOmDL!g}ux|{M^|W0p7cvFqwuT1N*?0fcWGfj>1IPw#*Vx2%!n_Q!s^i z(kQNP*|n>dG?}N$=vGBpsZn*_)P!Y`s`{=9-AQ?-;3ga}ha=+;&Up7NC@+(9is`WR zuhjJcQSV}zl=V-o?1S25w9(nek-DkqZ?N5ypF9J56ARrooPD2P? zRV&`%L7pgy-9B|3Zd zlb*?Hi)w{dYGl=u#^(Q@>qV7_g60USEjcK9ob)?Y$|xIt7Oz{Z_c;L8H$qtw9;G5V zJc~Fk(g>EI8`Lu9TJn+k1kQZCw;m#wU%WW~DF8lR<0P=!Yj)oelSbFp>YO$1oWo6C z)Nj1LW40CSTx`?0hnl?~MCajmY-E2D=q>?z6aZgjg@XCc<;3)#-A4xApynuS@p zS%;9kHJwJ!an|w3P0-P#a!Lzs4pl@eUn;-1NR+^Jt7Cll^N4r z@_@E2&Orf8##(inAOI6MycX~;6meBePa1$!Su%0cAW0O%b;c7c;9R2^irmDcq^Ukr zv-82$lv>RS?%vy!C2(5cnFD&6gTXy&otfq*wv#2T0GY zsnuciY*T4t*E0&Poq0#? z+jRowWkP=KOIqT6F`w-2HVAY+$3BZ2^|8`>sMjrT4fC$#Q4X+2aAj+7zz9|z8m!Hy z+-|Saw>ETI&HBvCBwgQy7$pX57;S%VgK91r4Az$myF+>R%uMd8<|fN(6x2 z9KxKriD^aCmkNNK28Y?8)HiXV#kVGe`-lGd*oU=irui;363s1WJc<^nWhmpiJ-nr% z{Cs85tmapFz{4njq!C>g4mL>65`S)?Dp>3CUoc~hB!f@E4!@gbpXk^Coh?p@Z@5g6 z*8()@f#-Kdg&vnl)0I&*n$l>4g=ydE95A$r8rtkxa64p_=cbv4zn9r~)tB5b3JT=m zBD$eeB+h^2vV$_|I^xvl&Obs!*c3L4T^kX2_I$-Zdk2j6bs60b(NA>=%-QmiX*juM z5n@M2xz9D<<&a;x&&Zga6DXdjBjd)?tigZh{pWUd;q3S89YydOv*6o*vdQI0cR29f zcymZMm>7}~O+HK}NUHVpsgylb^)y%qG+^L8m9nm2Aq^q0FDGDgC*G0|@9n>YnZx>&_u+^{^prMq;wU+HUQXNk&)aB8b>w{ndI<-})0> zk&w)zc2iynV3&g0VRoV{^2i0oVNn0Gxk~M_b4Dv+x95%BYqO z+B_iEO2We0{^A+k@|=Cmz|+CqT#{->x9TOfL7#<>#(I%DC2=w`A|tj)%+)!_+>Q|a>pggEIx9d*Go_oZ6b-MATPp81O^OtG|PZExh<_39^f9)Do zz}C5mF9s(81l4Lk?<}6lVJ3yVPGOd5BJZ7lB%k&IaE!*Cfx!R+c%3P=Y+23mEb!(0 zlvt)#6U{{YQv@>29JCXT3qJ?bZV)RXRwsv7UKj~FrfkLP`vU)tIAg^PlwR| zFv!zmhk?Kh9AosT=VSc5^lKxS28CoGkh0VMwZrw8>r@Y6cS9nBEcjzP6^k@(eFM1VE$^xYd@rUCp_YUfeY^3==I7PfIqI;6$D zRmd8Od(vEwa|YyRdgnCrvGIk@L!Mjxp1+n8>+!9V2G1IOg(dv68*@^B5jsZ#lMUo7 zx~li4?dlZO4+kX<3uA4)y^w*8Y?x^Ka@pc(aCzEv|Tz46O|~5E%X$ zwx(m0NBbdk{qDSM{>Yqn8C^7@X2yffw&LvGIZ<~TEc$>K^qMrp_9Z?}mE;B6EeVMo z2bHXJbX7&OD)80meQs9AUB_<&1eliF73CEj$D5(I!qqB-cx-rE;)U3hB6n#!_|OM^ zSL~meBUIFq7Wh!5qf_KMMNY`iTks_SnDAXQYX+4i-XdIM?j!3}WBHMch(m zw6Ry-H$ri>i+aUs{Xq}y;L-iH^$`2tp`Ie|-aEa4+_<05VH8Vs+1iq4Ik|)DIwKej zo?o2$llm>fGv$Blya)>#hTxY&w|NOeO2^c+oH@K5x@AIdsv^RXe#1&&2 zy{@0}wT}Lo?>qxIpA2h>wfPsTbd2khc!PG$qJ z$EpHn1b5f_#P%Dig&Hw`>z@9IJyTm^DS7)058#pm>f=Wpea|JQo#H{LV zSC^KINWY*HA4y!r?5xylsYQG8urM5flolqyUH`7-5s?Uk_?7WR*+ z6-Ii=CDy?e2Ly6%&w^n|hgJLCIKPXr-W-Nz*{5%QC6v}MG9>lHivnVvt4zi`Y@*Cepkg6Ipp z0|T+)dCr8`N5=%Q=Q&%Yt~?<}QE3E4j2H|*to>{g0m9s%y?q+8Ya4NoHR!`;HM6Ui z7=R%3R+6~)dw#2qnLnEqr{JY|8+u5%L268Iv@rH*b#iUE{m*zR0TjS3oVICJkHrsX@s(@ zhDAfDshK4-f>|n1k=!q`Gy(cTuCLWr)6|hq_rmE`A9Y05`y3&D>%TvjA4Arj0Ai{E zvcNWIX*DhUuBzJ3f&elJxzZFm|F0byy0iKhzfv9z;y#xxvH^&1B~_|(Xeq`C`*O8bUr2!^ zdjMwbVz~W!jn{y$87~bhj4~SG)QqFP4V`q2l%>)oJ)p7gO!*I~vL;?5}$tt6Tl+C%;z1O@bdt4*CjMPUou8|dmD5OHvB?(E= z`2Ozizx(%joX0umzF*JR^SQY*>fUs-Tj<1HGAvR(``1>y5$E!LQ{czyNSv0Jf_iM} zK!%+dBxoWX+3WxCr^Qj5%XGgZc~C_B(5s7z&~kNwT%u#+^X-t5TEkD#m6~@l4kfa= zT4*RGayNQpWhC>~$>4|U(L~o}Fu4cR5-;IsR_n%eJ+DTWPBAX;ws)xP$zFXv&qMty zy|m7xJoryUp9Nuu2K+4-*WZXD%;N>2hvp5)Pa&P!-e$Mi20fuA12*kfN&vPR21e;P zltn|XOVFA*$6T3u4V9hKe*Oy^UmE5ur2t~gkNR+$r-9;|kj>DZc;orfVR-4l>DQmj z?!GnXF%OWFJZlxeK#Z1O6mkFG)9{bpey62cd2lkA&`<0gi4sz{@EnlCo6GNFAb_+j zM`Inlh)V{2%-$gz{XFbfZ0cOplSjBnQj$GQ%I}FKeddUCV#&44q)&XN0UCTsE-|;X zI?ci0bILtUm;#_#91}TsV^7%0|^753hzSDuN*Xw{G z(gb`0<>Y+IDUJx->brzoNj4yRJZm=3jHf^e1n%y3dmHAcu=h{mXL#CuGmoPux?j7p z$(<@meQp`^h(Or78s24OyU^JR5O9l?6n_*q&OlvX>WIDBi=UC$-PE6_^3!^9ka^Jk zSNad8+}@G$<7j;6MWaFmP5V;Dc%QUtI<26Wpz9E27phbs0tF0=nBW(lhO~F^cKYd5 zvUnjiATo2p_4`XMq%eJrHdrNoh+@M>RB}sUO>tXBd0b8MxM$_E<57M{`>FHSKjw&d zY^G^nJ^J12Z^PE!33@No4H*EJ9^cK%7ab?w8`lFuT6C?Ze-L4R1QRrzA^Dh}RtgrJ z$_cTQ0nVz7FXzTcP6>p=m4Xfm#E@TKg4lrDKpif{LUYTYaD%skXq*ltEY_j}6(GKu zVwu^KhLl&Guq&&wk~KZPjy+n|6SH=*BJLq$7e$Iz-=7iHd)` z1M~;1iKHY!u|Y=zQEpD?Zdo^6>tDSu3tq%ZiTKg%zLcsRq^m16lb`39Vw3xeCd68^ zhW*w2sA>4udDEcugN9U{XN1BnU&jzQQKcU7I^XElLhE%1g-0AX%K^xMHJO`WB+lv2 zxf!N3nQePYsETVmGL2El@q%kU%hsRp!Ru;P=#~g`XGFOCZvD$v1qO}Q1(%`Ge0REV zvh#)m;64~|J`_xNZGr{4j{&3QvWx6fZu;3;x;oQ5xY>|Cj8wb$XSg(EyP2Z@8DidY zE%RO`Z<<7a)o#y7yMB})@omeP_wT)Y_2}tn1ubOhG^DOgEQLOK^897X^|$OpxFv;qDrS7OV)LR6bAgAB)oeq;7+| zE-}Ebk#PH!Tk_<|kfUU^xhCzs4nbz3F1q`Jg`(9Ea+0W$hMZtHG1>N4R> zb?0-d%Whu;S7a4^_oAjBxY}~gd_Hz>oS`-u>jQ`>`U1KkIkeSF3*Y(f3i4UK901%L z(&P`cySK1WBdq;c!7GaP%&hM2$M)pEhkjy*Z}tgZ<0J;!-@N%Z>$aEMo$IZ{d&#G= zp%X=Vu_1>_>Th`$mHo10-y)jl6O~<$0WMuu-4=~3Fk5vSD(0NJ`|HD_+uVlH zfOUcmR2#e*RK7t*Gk=e?2MuG~JaIcwe#fNrw(7t$izgHm;ooqJHI%lf=E^}z+{xe4 zrx-y4n)k*@LXGYn=`?k-+w_|0SDBp$0KqK@n&@X7$_+o`({>;|HT&9Q7P4SSvWhC4 zKr%tc%EzqJ&pm!{AZ4p8Y5QA&ex|ugk>7A=j;y6dlsJXgqjM8z1r#Ec@+)SSM_)VtDYA<*|l0T}GV-yL+DP^IH90M&)k+*IHb-e+#qN3rqiIVm5E9{qKuJ0tt-xj$!qS@F6eA==BY)0;Ztc6 z%2%r@v~%zbK!ltdbX6@-H*50XEuUY?g^%dp%j+-dOPTINwQwXX6p36^Ln}3n5zeU# zr#$Sd9qI-^G*|%z^rF(3PJ)uYcsEwI7Zl0Z)MTLk3lz{=fw1ZyDQvvS@vdWq2+0=Q zEf%&;?UPPj855KYz~&CqKi1ryzTM__Q!WB3q=n%p|E<5gfr_7JhCL+M<&e0>Ox^c#epEsIE@)J3EuuHKw!4?RT?HJG_g9rc;@wnW+<7{3m#q_rIuix(LV9#vSFTOVMoSOrPZRJdb?ypbJn&|~EWVd3u1d??PAF_WtFpd_cdjPycO74oF?E;UuW83>SFy=xp$p};hfu7@!D$zj(Wz-q4f+hLAQUt|l9+Jv#Jc5<) z9~`0~IY=M^X$Ms-64|V+$jqXK^QcNBc%ANJ!M^4Xo(`j@=?sr$0~+sGRez)hWB3^; z5JVjSqLG(Q0i_1uJ-L*PYsk=edYXS)`+g--z6hM2#{CL7jj0EeVY>BAtPK)(z zj!62Y;i1~pLD>zMmLvTbmDA-m+~^oa_X^L`h`R+~C2U@bNe|%NxBX&1R!RA z=+lu%`OkwuEGm|K%g2olhACsG1?D03JwHHd4cg|M?Z(~eoIO{^0dSBXNOu&Qek6Da zPM;1%lEc8q4)qj_;3h^!0bVN;$O5h*Dc4o@s==Q7_P2a;y+KuheHI?pRgN=+B*rEh=g~D8)m8?J0c*@6;jcBJ?lkxjj z(gpcSdt;fCoZPVpH09=)$Pr8(pCoXf{(Om!4h8k^1C0N%f{17m64erq#D~#Aqjnjs$^%-?lxf>9!${7pUUg!3R{jQpY$8f+dn?v%qb2TU}Hd zZB95dh2n<@5QC6$;Gh6FVpR~-kS~lhXc~oh6^<;Z0g6g&L^(MHYYGMV`(;nc{o-d;_Mz~xp6&zu(HEP*0hG%v=4o7O zUu-t}zm^&M`!-@|y*Pk@K5^UN;AUs~^#2YloDuiBCTnw*hg<{9XoI?2qzZ3(=o|Xm zcB5`TG1DZ`OIsvvUwNTl4i}a`9Y+r-SG#mi0Ee7x2)5~X2??V|>S{u5Jb9D3 zioV*Ak}V4F;Ixc1`j(GJH6xDR_w9D@?3o$0in)F{c27-5tKc+WT6Mm_Fea-= zO)fITKx5@;cO$Z;6EruJ!F2;1ey}l)%}H%&^mgMNv~Jv|-yx$tHd(DF512aS3m>{G ze(Ici!da~h4`Cr>`?qwlVZ&d+)N9=gWg$qxK8TM+N4Kf6 zF}&h$QDWQ3{JiN*#WskYh$JMKmu!v+Ro}%PIE)L1VBDe)-4J;{7~uwdV$8!Q*+|qu z6Unw)BV-z?Evck5E)c=K7M~VDBFmpLeYN1=t8ontkmGa zBWZEh0M!p*h$y{q6G>&<;x@H7`FFR)q-p;#BE3lK0m!n;#w{;E=TXsQ*W!x44ym}a zrvI{q^BDcFc8Iv82q_ibu1 z95tLKA!&@f{TZ421#&5zPQFezf4kW6`;A)|lJ~ek@r1ZyG>UK+yXjtC1dqn%{;es~NEwUDCG!Ch{GWHnk*N!E(UOhN41hpg zq*Mjcpi*X<|49UovWFpiQ&)PuH=O1I_1nPZhNk<8K_y|${zkY z(UmTDUv_hX!HCi;HWlgRA@wE3<>~4#em`~Iu$*w`VX|BA%{kRU>?*PvgjR~x^m+ljxSB8 zqggB5CE&FP{#jq|&Sby<+dRcXnECCW2P?PpeB^H;^Q1)1SAoi9qnS2gpOb{9YlrQg zq*g8*_*9t6?!l!83nauhYs_9a)8D*k&hJMy`^tI zDp)JO_3&d}pyG)Zz6W{@#Jo6E>~%ZKuPYG?FHv#N9G4#@7l}m{16p@pRL;vw#?l{V zmp^=s)M@-7zdYN%*GqEfVn61Vp-29<`-Hw;x+1OeBQ$fz}-%&H34u#UB`c+M;^VHzT{~8 zQ*bj9Rejwip#Hm|>wk79nje1hRQw;q`3I1437y!)D8|Wk3*X8|;f3F>QSKZvhYEa@ z0~0$fdOM}PbEb|9_WxRuU_*ca><5ou^k7E&h5vP3b?12^aa9kosf9Pq5~>1bKUnFr z>X*=i{fCxE(>GDL?5O=SIUgvkH!%@S`|Rq^Po|+p8@vm!@*luJ|DSDA#g{iLD`6G5 z;aXr6IgQK@ZXlc%Xn=L5&9O44Jd}2Sob>&LHqE(HA6n46zAJ*`KWu|!?rY^g4z%1y zwq92TUvyd5CCid;# zQ+eS2G7znlT$Oo54dv=raqDdJ;Qs_b@F=l);P>XvUl@dU?npxK{)^Wuxf0$rv!*PH zqO|@q@Hw;R_jbJ^geYhtIFMsxS5U{YL9DoA*``0Ay37fNzhm`^m zMg)?h1{MK@bd|mY3LF*Ce9&_*YhO)m{SNOcou7};krUwS@VLvab8W`PzbHF&q-uP1 z2ayQzCV_|l0Hri#)|=k1JOAQ(6f*PAJbsfQgoK$=*!FNZWTEj}osn4?wBspJD0~o6 zQ2=@Q;XfSqh&mtS3E^cS7bSv)%@fBz&q@AFqya9>$vQzi0Bjxl@%PYyze0(;vJ{~P zKp)%I~11$u2)4aCppNE4|B|i+(ae}XuziRK6 zm2)q4LWu{n{{ZD23XZRO;CWe`?7`#=Y*(Z9E&oaohMS_?B$EASlQ>pr817}QJv62VRBBUsSEi^0HDN4|Tz zA)d5mvy%X5MzJwEBTUu@nwDO7PJ@Gkj!OZIQ#jau7BQtsOCU9XT7mMfvVY zy{tA59-bC!qDed-hF1=>F16IwuB=8?)w2jF+P4#1pC1Z6-;8^kKPtwOrFevu)Q;|` zN7C#L&m&6xO@|r8$rn;(G!n1Htc@(?ep3-h#L+)v;XyI7prK>-IeYOvn(gzwH0V+M z1^`hQ;GlRr4YYq_W_MsY@fF!3vRNloe8evkZZ$4PLWFiPk0GI^yW2X}FQWKl#4Bba z2sAGTL3YDp5_FTP`BmW*#q+C!u7CF`0|1P}-t^_B;-Tc@HyT#7Rs=H3wKxAtC2rhPpGlpl*F49^pg z!xVqMmV=*Ffe4SlRrHbU1BbiI#?&3zlv9%ojyD%{D3n5%8W$57#0u4_=nntMe zDQ>?j(klCFE87oImDvJ0>d^N+_X*0=F}Gx=%{U^@g9bXX#rd3pyk5#-Ww%738nB7j zcqY!;Sfvz{fK%$kPJ$Y>pas^zTH~X%9~mxlDyK88Zc7{S2v+jLv4jF?0sPR_y4vtK zImun+FYlgNRPRs*Hm6VVv>5u{pG=XQzr@SIz2cytHJ!7i?iGfmB^Lb2>K+WLxpSvH zfkZu#Izg;+IxM4rKXD?^G6a;o10wRC4RmZ1d}mVBYEY>!yHl?ENrz`iEE>~!Z5FmY z3}lHISW{N_e@qGy9^dvnGwhn{Wg(K_X!V-f)<>8SPzJy2jEfDqA5|QTy!p!OBhH&a z>}|gxI7oskWS=3bD!^G`OMs9DT4wpcR1-_=^P3d~cZI))g{p5rQ{P6D`Yu7Ugcpr4 z3ta}hzFiJ%%$vUT4PwjXQ|?i@l%;K=s;Cer4j>HeP;>juZ}?=6IiR~WBw?hp3J?ti zIOCoq@qot5rW?D{OB?*9pJS2%pH-t5%mS0ob*zK0-0o+=PRcb$b`qQ&OdJZJM)F^O z;T5i<3GAOL{4H^nECL)z^i?|E9S=CS)cY^$odtjd>m`+N01Tl`jJ97@GHPO@v<hC*ipSi+|N9QbhEdF{7-5C{q3Fsifuh%TGYVb_j3;koGp|Z;_td1Y{H3o%`8QyoQ z1ze`=rGD+6%a*((W25*WKety~;2^6Q9uVQ&5^K-tIt4aj;##@ZY@wCD68)kZ}c8mn)d7yt`&H!fH1U|j;jCsBo8NF!UoP<*KDWs9 z+o`$VUdA<~Rh8Uh`YRA)$g>|OWa?Z}C58qys2si=>xEOrW}$impQVJtC53qZ({vJ- z;)ceAnSif4A#v!Lh?Wg9YsewWO7cpPpX2q>geSU@k^M4>ZGl-GFxA9&ZtX4&5ADqg z6;jXN5bw2RZXGn&n3c|P@xAheUS9=OczCSwjaKX!il1fv=~)MdPmbQg58C=dDI0I06KDP7hli zZzFCe^hhmr;PLJ`ZPVljqNX;-EuAcD&f5_cf#WlRzrfFZ%c49zB7pfB#^v5Q{16;E z7G$aaL$u_i2>Yu4IxlJU*rf8AnOPBpOW*=ipzwM?rPQ>#!q;q(gNjpO4~|{CjhpJ5 z;CEvvBZ9cSvJMuFlPGI9`IsbF)oG1q-6VN<9uOrMdeVqvDl=1CP!7n89$}m^IT6PB z=1*D79RH9DtrG?7`cgvQzSRm`N$>xHPjRCEXf0>XC!f? zAJ&35PiU|km!g|^e>(%Se?XoG<2=(QBZbUbpvO579p9A-AvYhmd_s@ie!Y?cxL+-D zIP=NpXNE#N!!m1NREupP#M3(-SHJ$!s(x5LDtXN$z!7h7=|R~|?nYq08*!OoRk7oo z682s$;cnx)sp)VuMUJQHfG*c)eRUvIa2r280lK%Ed$_r`Z^&A8rdx#?!d9b9w@3+Q zz`U4q^`r)$vo6evh^-b|pon~o+Ffc z=22p1#q^ERS!4r{oi87G(~`9_wvR4;G|`p6KtLoNvhq0<6a^ethg!uzDw8}?cPrOp zOyt6j^cq}Wav-u5AXTAGqjHC9@q|y4GJT?Y-pGo z{jQxEoaj9-voL$LaqG~=uAN*G$#g5Fl^@@7B@L7~V}{kg8)^;D!lbXcU~xI7yC!Um z%d=?(Yi|A^wcm#UV67m%RKoMJp2S7cSo&#uzv9$gJNT1wl0u4Hhx|to<%FUD=oc(x z89KaPOp%&8?_lESF^B*MErN=l-KeV?xn>oo0$CzJ<^V>=H42u97SlCd;iE`^nNatt z9D`-DqUpw^7qYD?ALB{1r6&NGS;rv74Kzevu*Gjo(LbO-kx(9f1$NYB?&4zmF&nKX_6(EkofPY zoFLix(TRg&nuCTmCK=&j`M0%lr|H3~)_gGo#IN98cWHs$+ zqZrsw)caLpMe(P)U8N2Oqs3NHm)-lX|BBKU8^RA*_mB($K?8+$J2c|xdV-?WiV7e` z5V`PfDSe>I>JQmS12N~)hEPGwKJoq&U^=hkgHpP^#G$}v%o`NO1D>Zok%Rgfm{Ef& zDVJfBk$o!q5Uvih{q;bp42YX=!e6qfA;|LdX>GPV<_U0sGpeH*9{yNI!jOS;n|h2Q zOS)oM2DSwN?tD-k<%OkZ4N)Ztp{fC&4*R>Bm`Q{oc3wD|oar&t0g*zmb^UK+1Pis3 zxp-N!;KgcG;1Cb|eSH!n89o2xfl94UoWdmT@lfe%R3DTh2f3 zM7{r5?>{BlZP_f}g+h*GlZK z&D3l@GlNB{E7HEJN1}geN+9cn%tXDXA3kbc>KG{D->eR0xJ1f+$}nBo&(VT{1a)2- z`*nuOWR82IAb%mp96un8{6yw3GF*#C*7-JNVgAM zc&2uOoT@LcPn464Sp^p4!k!228p-~HGIf;ZF@&Y7r|+qgdM9P8yxhlsfopp%BZJpq z$IalMT2R$~Do>hv%nrAky|A?kKVpnfS-iNs6nB#P;!T}GzaFHDO1xZ1dLX9BXP<7@ z;y*k`>{lnWT>_rHhjg!I96M;~KS`j-soV}@R7DYNf!eAYs!Z^(Mm;eh&SZ*phUIV> z<8x@C&*mjoChK(tMKz#Fj*#jNAWL#_e(xYVQH?n~tumCOMp&4afpBG#B+@ebo9uG> zEZsAk6o?14s*|@3hm#CyYFvJP*H6%Ge4(uBQxLEeR`eNvq-Ske;T`#UrtBdCIcKEC z?)9OMR<#yD%I!O6&mY7qy1bRoQLnm?ZhrFxIWn=KuX(vW`NGa&tEM|Fi&Uzv#^8mQ z-S2biOv(aDmsCfrPMIPao1F9vwwE-53g99}K$dwoW}=92wa zceSMef!$oly0nvo_Phxk&E}diPTw-z`bwOsqnPPIubTg)8y}xk2)f$u z8~#$n=i`Is#JxbRr5o2=U7ICj6WE@sowI`m#cha-E3-ifg1{Q}RPVx+ z?zTiP83#d$iYxo9T@mv^2#OJmbEGO+__BPH)>ko^>__{RwzYW{M$Y@hI? zfc#ZncMmxDSy`?0k((L)R5o1Kbi;RO&<6G-u`dMY>w2$tc&6`83E!5>f%#B#(^Oe* zo7_L!@qkmnf$~=diJPgGbBTNH z)6bTQKaLf1H9o09-(*?_98B|GbNY>BE2(c1JwwvnJ$nr6GqhaqN3GNT5dz}T+{(5C zyPI`i;-M7znO%Ko8^kj9y6+lANoVas*8WiE!$=k15z;Z*XRT&OHIDMhn))kO1}=Zx zK9Ozfec3`?wd~=y=fg^au9}HcA%1QFw!^Oc_&Xa8>SovEB4kY86FN#|`yTl$cP!0K zD6P$2Lfq4?iGrl`7xCwYlV2EF)}8&@CR^iaOyNJ%i;a=9=jiu@n7fzW%`;LOd2Hb= zR7q3qR8#&M6p#)}tRGPw&^qLGm}&Y#NpHuUY_PmOeNNuPh>b{1c$&I67ky?|#(VO+ z;zxgV&yn+HChPAnE!RU!4PQBCx*$UQCOB`~oQ>G~RAt;{nwBp2XF7LplQDJL{3QxQ zm_ze$Z!gI+OomM0g8XTAt%^7o+qSR(pG7D~0kYTz?8ZqCAfo1_wd>y{UKWD=QXr)GK*idOF4t))-|1Qy z2ASKsrb|>~q?%CJ;gy~OoQI;7hTOpN$ef~ybs>KZ4g9>SNfFTM{un^5Hk?gxKWcB_ zWBl1i*X~Y`+nji#!rQ7X1SNFbIW%!wc{Hj)j?mVtO%S_LGtLjgj)LR)`O2D4 z-Fv*W1=uZT&8wC0ndTf_pxB7+99PJJ0H7Daq3la-Q$Q&UU&lL#&vQ54T!IV$+P|b%dBiGZzQd6q7cQ9A z9jP7Ri2k2v0w@P+z(q087~>BzEmp%OyYXh72S5Ez5=22$lg;v9z5BWdl#@fYUb883 zp7G`MHC%!+#n}T;K@M{|0qd=p@}AmVRBpNdk}B3H*k(7sB3R{7$$@zszql&BVJ{C* zSCP1T0M+>@u0eTG5ZZ;FpypXr|gR8c6P|MovopPYg zX*;Wygu~u8!|DH)Z(i&E7hTrWR+nFEZ~p$X7GO?Fspod$U`AdTc5I!p8F|Ru77LFi z__wa}Csr82V+lx`el%p>X{VS?-y^3`tQYy=<-?T)50tVs|ImPX^JiYR>#N(*DjcV^ z7{YTmu~xOKi*m?gS+OO|JD^H+tm&csn9t=uHvcq2Zp^Hu5$h8o^3A+3(yfyBUwG_ znykk2YMu2**i<-V9iS?pq1S({J*pj8nY&)9)VPa;l8U?Z+b-o?S}&VOD%WpmCGtrQ z{L*^OH@HRnQtOFcjDwiFp#*!H$d^>^YI56!wL#7?Hk5d1X;iS%FdA$4ria5SEcD=)lIFvFX)k&1E%&d0rbMLo?(jYmM2`FiM!qb@)60JnZvE z>V1}xZ;1i`JntR2uMAMO6iZ?2Bi(ka1~OpTpb;NvYD!Fektn$#l7L(}4H-!1c?j3L z-5Od8e0O6Ua3Wm7tJgA#Nx^~|yz^5@7Le!?B;Y${0_iw{s7u~2eO=7`Q@|8Y&3IA3 zyUo+OPMwckC!NT;V#Fh?asxNuCc9#W*6hCowRBA51pFxSCZ6a!7YCT#bVDuzEWhA# znH=?_E6jKR^UT!nI=h8xASl~67^^yc6BwA@@cB{EExnv~4?|lDOq#1FCFeX#@&tQev41 z%YRFFVSCczL|K-t{f@3<`*3ASD4n%jphd+EwaPgO*KYhe`IXcxnawqJv=bmT;Ohqu zA5tpp!&nR|^GknMq*=4JiRPos8J5^tNiP&2iiHSGD4sYtJaW?S;WmgUF@CxD+hG{@ z`Do!HRKus*Lb$zIQuK9d8dO@7Ikwck)pu?jL_!>o0qSiQ*~@-DoPm<=0>d^(TPlC3 z3nfO#O)6tp|Fo@_^m^8u&WX1>au6X>^izujlkude%#J>r5-Ln7!)uLIE&bH? z`)8=8UrLk5gf~-*MI1&YOSItDxla2z0><&UO6NQzdq)L#IKJ+-2!y)3XTrhLbrB^I zpB^njKCd$l2jPtAKPt$uKQV$^xmx2hM#g-{79R~i33*Y33=og)@Znp@o>lvH>T|p# z&W>y{C06U&hXZJiWWIAY7i6yOrnl$7Gp6)Cj-&KBZ>sg2B_Ym)JNRlK4+=d#y;DA* zmx)t+^!R>#h7wg=AgE29uCU`mIrS*+B}uSwhV;)l(5)wvr~Q3Bw#(Q4V~F@l@iaZ+ zi%en*9y;bW*%s=na7aX5c6W2lk4rLWvg zMie1)$vpRu-$^OQu!C2vr0dEbJ}Mr!@i41HEo5H}b)-NY39GHiOE9c~beDw9J?7n8 z!7`zooDmoE(tm=&9lGEK0aozwNXf|RQDD)_rFWz-g9YovNPH+#bA?700e*eUnvbp=4hFp|=^a<- zs89%17~H@Db!epH4SMt(a(W0bm^|FM2%r#IElamLeoAt-(lrG|Y~bnI=M)1IOJ6-t z6`g7j*)3rS04?Y&O0>ASB%NAoew5f1=65z&sN zGIO*2(ZZyHC-gdIDdvj6MGih%$mrE&BquVHl_P}9L|2;0c;I0IVU1+-(Y#>?)}I&apvn}W6;jBYq6 z38umRhtARDSr5U^FL>v>%rLtHL;F+bVVVyy1&C*-Nj^v$A{7zr?`bOx4&ivy?_U?T&d@DRfr?T(Q+WoAD)74O8) z?2f=N5eC#a76hW&y3LRq0adLl3i)L!h>RlBH1B6JDv~*}kq1ESt(W7UU9i_a|xk!vY zbGK%{)-Ztt)Akz56Op&`N)-#ZL3az==Qd0qgaK|yF)ozOi9%*?x0Bf-TBZz9M3#QC zJ~LcYi;gB2mHFt5oS4a{e7o(H#YCm^?uWu_>oWB&;=99OJEpVf2Awtl(yEYkBSbx9 z>&I&kD|kk=`=HKqLZD8nPZiSxdUzvSE1Flz763ZXbRZN-y_7N^+-nPh9cY0|?rFPw zg&a7N9idKJ5+;4xH=V-}76PzZ^nxJXt(fWv0|OX9*wqX&0zLD#SmV|xCx^w2?*WF; zG0x~eewoxQChTRgUuKE0KQ6dbiqf6gt$o1f1Y`4)!j}SkL<3;vt;1S%n0;Pu5K_kF6cxJ1@_g4S2{Kr%$yVqL~5(%V_MDlcbfs+Nj}ms!9FbN%*Q8@r!+X6ET9H$ z*r8UjfwhQ6URNw1 z`c%`e$fhG28iRn>BeDhySp;T$&kzViG2I%EFpBAC5)iy(^T;{nc?n68mv_1O`$4`k zFJFX)U&_W+B(M*{1J{E0L2RyM4@meZrJhk=cP$*|?wFT8?PYgZa&z z;>-KokmZItNJa#bHmUenZ-`%AT0k!kUUy(t|FE+stD{M8eyPoX!4w-wJ^k@^<9w<) z!s17Z0P9wMFF#hFk5~y~D9iA^;Zt|_Moc3xG(s+JFyEXfQt%XsvdyqrN11LAajod< z6i_7WBF;$D%8cqlJ!$t1{myYjK?OGW8gP;N zysZ=8a(rDm{nf{e%blsIVL+r^de3Idy=zssT(nxnF>Xl*>SBZ^0m6yf2iV&>kUwA$ zqBm5CQAwWN>;jl+Cqm$*2d&b{sh*UQb~gc_0L3o2rW6oHkBI1)M#wZ6rn|kiX!+nQ zY)Tw?J@t&8t0~E7TRPd23}W0FLGCZ94NBj&S}@1YmgeDXD(7z9#&Ns#|IG3K-54p9 zDQAk6%p+OYX*#R_)YldyH!Az2EZ$~+M()Ll;KIz@wp?i{HdPJ87t$*vy~YConCW7- zfOh?Urdt!}_3gi1c17I-flbc^W!Oi^2IHN{pdmlgY=1*t%n{{pCEMcsxY$}z-RzmX z6W-tcv-z3L=~3A9lG*)qOKwcrMpv+Mu1^Ez?ikJlBS|m#=x&AdM#nLHC~xpru2pTkAl?W8%--BTpIazwqHJ729xM=>h0x*bJRLGB{UZ18_QCbk$ z_*&%XnPWkY4FI5(q4+OYDdRKt z@2Xne)0YP+Pf&eU=?SbM@%nGXYhqW0lpP)#N3UNY;l4M z=1Pih$zgunMuLOy13vHrkp>#IXE$%YFvS?-W0WifcvP{>;5EP9XgVXDC$I+FG-a~M zMteREY!uQ%hJNcRr3ER-jl=lKWo%aY)l>H+BxBC69;N!Hc%4_oiPAKL`wH@y!HM0w zP&Owbg{P2|?cnXH0=t5mtY@{`bLTI=OUDBs8wq+oJvQ#A%=kP#2^?{G-37)WThARd z!=M*~6q=xtDysnBNP72?$(x#pv8?lWVV0@z5o#8DK0=QaPSisvB)dCKeLYD1#Cy;p zw=p1NL~MLXdhnlikFTGy;4NWXozufdySce7)tJhI0mJ`g4dd-p=IyI$dH~x>hMt@1M%p?K5gX$+@tc=Dy6yYEmm*{ z5_e5vEEdA2@?1ox50$rM`ZzPrM6gRy0zqQvrLtSY4>c7P`LqRh0A#D8GizqLA(Dsm zeNg{OMGD|z|4M^{=n`XW;Iu|oL^P6d9ZY%y2HqkBNu*7(sz(4t&2weAPZ}`Ez%%&) zum2u|{b5zWhKdR$$=N3%_2QaIWzXv~vpk9H{J#5i$>3YX1?j8P2^j6mI0^z#c`^9G z{PU`x_}LdX^^#RL&t=^o#j2W#>-(aDwqJdUYgC>9*j**TXt5HClU|>T)Ap0eS4eFE ziqu-R4TjWy@3DbCdPQd6W6##Sk@DEAzD=z7MFFe^C+mChb9~MPv1h@;SYfTpsE%Z@ zl?ykDzg^Ir6t$JelIK@wiB652XX1d9Z6@jDt4KLP zK@?9fDggNL3vz)}C#TfKU#zyDl}tKlBbwdXEl+I#jA?ZI6W(*G8Wb>nD1>+F$v)+K zFXB7>E(d2*C)zTzZ}Wo6{$Y+6AL!6ktxA%48ds^R<>~l3bF3OO_%e4nbz<=KM(Z^{ZI8U@<=3^|Eg-o?UgSbE808cL`eNMt!rb9d7k2zRK|43PvhF<_`SI1*_jQ;S15 z*YTf!sMLbVxsqsbYwPDdWo--=xb&jt6FAr?XIDtdxo0uYqMS@79~0I-@}v-f0c(Yp z6koXn3056rL`^K1Fs{|7dxz&;D=E<%&@S{J<>ZCSU9mxB&g!A^KnOoK5~w&- z%;00XrQ`G>Mpe&|eM{MaU`u2Q1CYk?!b|7W-xPDPd=TE+_J*T^$aO@lN?z3Fj?Ql(Xdi+#s8|dl#-v>6=h|=# z682VO%8P%m<6oQ!=)@w4Vg8h#=3f0dFLc#D=4m)M@1-7lkned*R({tKB<=RmtC<6$ z881}DQQhn@-_cJyeOut6A%^(Q@7X6G&ag;`4g~FZ`TNgfBn;|z)CcR|c@0|jH~>N! zgQhgJd#Px}A7pDy#+N%J%$0FkAph>j^UmJlj<8aj;*5hhaOj=q!SL7zpa|o>u5E7; z1Xz*Ei6inSCP8WJ2)PHAT(4u2GZ|kucX?DFWd^3sr8fEHGkO^G5(T1XK=5T#8Bf; z7${r{KTU6&h(A}`HUb$EkG-liJC)Ry4hH|Y<46TT0 zQV23<$CIEQ24y9iD?Uifq5fy{HHp=gjEy0A?W!v-^A%aHnw~5Sa<{<3z?_lXbnQqV z--R#0pu0B?;(EjZpMC%PMsThy|FIVuGeV#KkD@d2XZrsG_~)~Y&0KTl+-9yh8#(4| z<{BY{q~kktOC?F}K67nzUkOQbZuRcaDT4NhSIA{q6TJd>)^DKA*kb z&)4%AZvDPk$ZYqAaY2gbm$W6p)`c>q#14S(xB7?+<~1u5#Qu9c*`?*WdP{QtWWWX4 zWZU_PbU7aE7=`wmJnHuMg9)WiP@$MgKXk&p%V7@5+f0O}Rp2lEZG}k#3Q-`F68FAk zyePx?`t7CCJ+E~OiWv1YM< zV&`9SWS@QYmMr{lFI^$Gw(qvYyDBI1j;VJ*;#NRu&v&;mzh2vQ6qB>OYSbS5+FL^` z$W7JBEO@;Ls=rmrBQ)ZC#m+fG7&xz7%0Yc5z6rAn%gzfjFMw{Ex!g(0=XipA|MDAk zGq6vCb~-Bt39|J(+kFv6`a{A)b|u1I7^91-g(^Z!5*~iMglg0z@~~(5$?2x;$pgN3 z^0|bpA=g%);|7G|Pm0@=33q}bS1?>lpOjKpMh=o6^_wkR)PyCm{MHN;RDj=N8 z*HoP;x$;wl!+$A8rq@?Z{pCHyc>Y`FLT*#HN=RhUSZAx+1w%2xlzr(@k-MgU)q7q% z=2^B<#J#RjNnMyi;u_|+K~Kh3S*VijVrNwSGNK>wBqN!y%Dp2QqoF0bMZ-&5d+hI> zlju)-Gm)-eG!Z=3TXKNls&>N9zbFT~wku|g;E44Vdqwb5aD~{?Fr=@Wq?3LMKtx{- zTDb6#kX$@A@#dY{vk zmV38~4AA0bW9i3Ae#@%G7b(1u`e2lu1a^4K>tFDFTY)j*=&xI+^pXG?q<0PcRjIhk z6i=N9$tlR&YQm_kxC%0NPG@cEo}|mur;XNZa@83c&s_tej`rORm&>g!Q7YVb!~nE^ z_T2C5x0}FO2_5a3pY~M5^i%p87T#x2K(fe^Dn~GqlG$}X!#Ehu$%Ii=he(tD6o@J% zN6qyh;idD2?-S-5$CPdDr%$`jcag#e!J^U`I}h<3=hqVzYJFn=i7c*$jbfEsHf*;bO+D6ZP4GVWoSR(vm%?G&{%Is^k*fc}U0sUY3!1J;@! zP7WY+0nIlT?By4RVsQi60AIH;e`}B0(q8)jGd*6I`WqZInd|bhfG=%Pmy09DPzKx_ z`Xl|D(ApXH096=t=J_tSn)I#}ra47LTH|Uquj*u*%!%RH*4S(nClP-JALAonWoG$U z9^t5a6If@0b!~8>3le%jObZpOr$DaxValE(5URZloqm1nx|@r~whL>+9PkuF{gBdR z;TeN54>M%O9VQorPM%kPi4$p63m1SRrvQf$fVxu#cRdk0VW_)kleyp;9O{kM zJ<^&dlp~L?S$A|+O69>qa&G1Dgkg>^fe zp>>hcI|$w9kk%y6 z7S1zE9GhVTy>!yhZR=f+bZl^qEFTIwB~mk?(mUD5C29a@y^L&pWcksKmXY+}!g`8< zK-!C_w$#3-<xv0QMTLGGux=timbt^h>&gLF{Iywy;uh;WzKdB^;!s3_^(#rTx|%~ZqitjvWbJ$VYa z=(H@M1rKlU-waz!B-<0sG#nh^NB-(8H@@&BM#B|aW_i*P5p(fV;D$S0g}E^~QPQo9Qw^bkgG=*pW?;t>EV%;XN^9a`wlel9ObIUVYt3e8-|$*R(xs z!l1qKMExmc(;d~C_y6bK93l~PD!fe>25Y6-@AGKf2)3IJq$>$1A1!-^DZvep_j{?2 zzjGo759fI-K8Xpx$Guj@pC=l)?6s2Xu|LycroC#e)j|!$n}59J)~rY3tlNavgWeHG zxk@nOD*7OPQSTFpHC|?a(k@HPelWVjLFw4iyz{l8>~B6d7nMnodk+U8{tx~J@>BxH z+PlVuc*lewV>n<~P!~>fI0+jn$JV9Af{)J7C13`+-t|i6{cbqTzWXCLEHl?^^9cn7 z?QZ$DK5Jt({i_|cR2%AC)U)DW-<<|DMqQ)oy1LP}47lpJ*u<{E#I4nVi<4ji%Bx$MnB>+7f6WLj`t9$$a)hsuKma%gNy* z-4k3?=^atQ;y075U7g$vJ&hgC90YdvHMRGdD`$M4(JN9x&v|C16Z5P_0 z>8x>oxcQJrVP37Lz9gkx zvn0?+PM+VE&`(-|vAqq-YIooexvwR@GJl~x{mAq1Z2Ibo@zr2&M}iUFHl6JxdlW{djL6uD^A8%yV4SfoHW=e?irX?Y4X&l=-7woWY4B$_zEfIH5W^bnI2z)X1FK1Ug7!i*h zVQ#ua=OfP#A>avCISM8&QMl|ZRg+UTf*p_XAvQz|)$eP!du3sFr*U?k|30jD| z@Lqp@T2qfrYk69y!LXC;whO*gZl96M@EFN`C>J@icR{o$>!Hv*BB)8>RQqJnyzhmK z36eMDf^hpOTAy(zpbY$z14zIMbQ3T$2HDf9Q~&LGLUfLSwbuiM8R!m#V>I)dIq}!u z>4>bxc!NhrXzP66c`u1v?0LS5C7~3nHXfiJTzK)z$+aqz#zNdKcD}lOP|)$#mk&ae zj$3Os+U^g$PIb@Q-EBZ9&1g`H3)9XUh@b3NI?R~E-dg2&NwcZR?vP?M$KRc(6oKqA z=&LtM7ku%zlzd!9_qlBdwJAjC>gc2NGNV}I;ZBhi5+V9dpR!46D>)}u1v^Rze@~TL zeqgQeHMml?+5+rT{ka1KRdy+_R{mJcXGN_;=9y^A(842d*Zscnc`#bmN}8?%v=`3x z91T8t7dXX;vI%P|O<#LC=XZW#R9^k0QHVczs42+$ZsbLhgWYevg^`=lk)+5W$4}u! zJ&C$?7_Gk6l%btp`Yjqm*Bu>1qS9x6sm}ov1?D*`W~grARr>DU6(eNFNcwas>eNG6 zW6xo>m-KZhD3eBu0>gl^yy zRd8Ab96a6E(}@=tF)2rBM<|Mm_nIu3nbHIsglQ&QMXi6g5Ndrc4Qs!d;oQgAn68!X zkCd!Fn8EnC@qFmHPx&CsHfJ}`)DgT%ANfAfQ(Jn0nl&<|;?k(n$uq$8n_)S+<-Hpk zjHF7dI}4dmCKtO;_ld)RKc)9e>Ooom#(1s2cYu4=HVsp$#|_QqbJI_{T(8+e;H}|D zqgD5(n$wH{#55;s%`5KC35ia-+Q%6EalchIwROp5e)dAXn^*r2pw>^*(PNTFz&po+ zhS8yEX%k5j=8!@YBGh|!_AEevaY+YOH&i=sG$6YQnj#$tX;@+@_@dUVp!-rpPt}~C z<#G8N>0%y3mRyHyLVWPCYhol?o4ERnY0k&!%r}Rqt>bA=9{tgBaKqy$1Qu|G z{Uem3m-lqeHRz>o#-XT_W;o3Oa9;S$qIP&%IdQS+4?M}vdA4K13-G&h|bhyayoZOq(-bD?;2anLG{QQSq z1o?C2iOI`*!Yfh}CX~DoM|3>X*R?9_3~$}eKmnq^I`k9|9td|Pn^{IU%SE(0J{o>h z78P|#ZrAhat7`VFCaHAs*Lr&#&!&0SMav@%OLIA4ve7UP!|uVTl82 zUK1v%Xe0mu66f|XH-DdJ&OLqgcJ0WPUghmT0>RihL-7(A$j79eqdSoyDhdPgGHpR9yLfd5FwUzTjy zx(wOjd48=36asdvAnek1hR_()nBYkQxBr~I^RA@ls{EM9Gmwb46xm7Dk?cS*)pk>z zQf-NPvZ)%ZuRH00_Bf0Qw8o?2s~a!T{?kIyQQ5m$vpbg{Itc^EwJNUn;wc#EWny?@ zMoq&P#*yT17wNbZ3Mw9vaz*=*#%CyW_SUIA+PC@f)%bWN;jG>!dKQ2Y*&b+G7u67| zZvDEIc$pWDfz?d*Z)RN?JM;slMmN@vuXe7Oyp#3>{RTlPNIR0_|A#H~0|VtIl8hO!_v6>k@-U!W+wscBi1%^0kBcHeI&VV13}h88#gDS;bnA?t zRbn#j#__Slyc2&V7Zcn>uo&tt+FC6Bkv3?j?YbKs-Stz}wYK$!YS}FhyC|_GPnzx~W39-aR16I!I z6f}w1JGRX_%6^F{9F*Rd`}H$E%0IW$TS}CrR1eZk`|vj!U?Q|_^%FMN6uOl%a%BkE z0a+L~+%a_q%pNA%TV(4Mq5N`D=bJdS3`U=j#?rqLiTdCw)^Mqf&eN7q$r&a$ktAqxOYaX za~m=LngNUU=Rzo2k_#8b7@JBd^%X}^(14wW0R{3y-F`Ah@~d0lmUwPmO`%8{1U<-? zB;jGmodEZ`ofKWoV32pf#O(<_Rk~;=9x_&Evocyoi_sydQ7&lz;sP}P0HzSJ3)I%M zki-iLR9{cy;5}#aU-?;$5Hf*PvXDy68c$$QJpljrCM2_D`Ep_x3~)deseN*-y0cvT zK_f*c!!0&<t__D;WtWcE2XlyBMw_Q0M<_lsELRWQIl+FX&CVb zmHVOS{n2!EFJ+S?aN3o9q*llme!~uzV!BR`Svp6if@>0~k_WOmJYzeO2VUU%uZ}%* zVINjgkXQV03>MWtU8VgCj;R=LbKdxskf}ch?1RBar2eRhRtD%mi2Vh|zriktR)DHu zQz~s4_WXVM#W76w(Ywt+BRj7EuSR#zIIDWrckb3a;$Qbe`JiK|aDn3w0h;{NoRyqa zz%VzhyHsNw+p%>~4xl`fqTOY=7ZK~GAIrMDB_am^5WvD;E_6Et6EBsJ#QLE_FR&T+ z`Nad727xM;MD^~t0<~M_PFv=}%br;pO3ue$1>LnJPR(BKi?APxo=_?qIW0qx_=f`N z3PBZVG@-ae4sC}cqyW}Go9jWw%fNcRX3fs7LC&v3qQbR`Xrk}uq*f$@?YF>cyj*Iq zNbAua-&xbS;%DsBig#j+e%NYGQ}?@^@TSY-iHh=dBU{LGgZQh(m)xu?4()c&0;&$k zReNfGEdyd`D5D@B2s!adwSTInpx+tCsnvJZ<-`H1rwyJM7hLir{lOH{gn9j6ROWdJ zg^|hWFa0svbx+C!iyVlGZ?|w_)`;L;cVZzMAgBhu`0oYIG92%|~Muqgl9!m;=DvK6l3lj3;E!1)9S zgN}yCDE+VRtyl^2@57Ojl1?2jJP!@{XpARGcCK+-j+A3BYfBfC2>b=4K9(m|DfYF& z6gZ?W%$-nlfSK7$nTddqLDS#HWoKO}+gLXFk#@Gf8_H7%&P|ql4JnbG*596nzw0Je zNy9WxsIAVg(V*|Y{a9%Sn?`ugqywL8?lW+<)l~H3%6Bwm_lN5tn=YFzIK!r973~a@ zw^m>jCZM@bb6jS;%lSPw5-oD{+O4C~=5cl@fi8}Z8CQ>fEbFAnz`9zquNLGqY&PVC5&5D>`TvzciuARt*gRS$5cvhUcv9q@ide2#Y9%_EugSEJnVUm&?~@V zm^g3O)-#HC7rUBt>_@%*%*MxBF|Zg@uAmkQrM=IlCnL+-HA--@7Fx)79!Z@7+?EB1 zu}J*sDxxrw6pQqa%<4JW<|ztwpqUgIP-=p^QPSG`f&KO;OP5g|-Pp}E)@E<$PRvzH z0ocOxro9R}bZ(L2t!B?`)acr62qjw%7xoVk4#q+EFlb7OKspFDf4SZBOnC`uxBd4` z_;w!Xc3DIMFn-*+o?2gsR9%l{(c(mEyzYuV&Q|}>m$V|hGzrke%Xr9ABPr$h4AE$W z{&SjKQ!3Zxoouf+uupT(Z6a_;i&dBpwV)KXu8TRSN*%BlVTM8h28D@wmwQqbWICxT z@SJc&>$9!)a5&)k%F06K!cwtZo4x&>_RCL97%tS{Q3n5 zM|9T9)NO>JV&SYpI69e<X>@d4g3DnlDm)fe* zp8wZ~umC~-0^}OAK$ywb(muAhVs?3(_bHLvWys@9R*5Q_o^q$C9MVmCu$5M5G=LoQ zlAU2TPOxCHto-ztt;MWA|Y|SX~%_?yU$HBs+KNnpe>rZD~gfc4>9bH8vOMC6hNr{je z)QImrwaTYo^D_8&*#MQu~Hh)YxRI;#lGuUmS$hg+?B zXQSETs6;uUB)iRd;@o4rWX>pbjg!@iLUR%_!~&k!jBJ%A9?qZshOE?N6@O6>krjE3 zWViYZpij)c68+PZ?6cYMg%24(5sxlR!L%3Cg0#b5x6?a=%I0B1bu+ zIkIn^#QhHl0dD9$Y+2^dYMpmw@mKdn440@00Lt9UJsFBUnVi!_w>kh$IsEdC`yyjv z6TgZoUZ2Y)rXq9dpQTwL6P19^Yk&ZY)qz@h1qJah+DYHC@ghKk zm+Xr8Fz^Kkcu)}@FMlA=qQXs1O7;Q$Qnkgq*5`+=*Wa?5Z7(EVl5S2zvJ)nXg(f_gpDBBrpfHMUt2UT+W#qotD#J=vtN$9Aj1aaOg{@png&?cd!x=7Org^_+2J{Z>?@7FXLQL^Qu38z%MFccV^diTZ zH-*CY%)V8f%#g%X>5y6CZYc)5PhymzDs@R~a?gXqM}Vf+r5*K`B5N?^G0!H>uqa|` zb+>`BlAZ)=A+H;{hUIpgLgHinP+}7CNJVu0m^3K~60Dtc4kaDa(AAO$^|IdHtb7b$XsazI`&%AKXkeJP zw~Bg>cf7%5p-STKiWG@>)}XrWE7mjieRa4y^2};|Q)1*t*#s&JiV)^T2zMN3@)Vi5 z50nJqR<=CTWoDQ0lIUzXee7eg$g90)`?ZR5K?Mx-`5TJPs(kUK$;C~QlprkVsy}iB zF&KdV50tsB+VM?Cu>=rs;qhl>QL}9@$HMNtvKF_|DrptXc)50qq`Yx3!KUD zycgUeb`JsxokKD&UtFq^z;EuRq01R5NQ;8pXv78DV=B2!s<40W#CU1KVGcbPy(gs0 z_e|;iByrk+i+daT(2c9l?9guC08OTH%$;4P3Aw*(cTI!PF&qc$!#bV%a3$%MeqWKv zEt&BD(3lIp{!G`3S|mT_?oBI@B&*gV3C!vtR}_$;%2`}xkgEjpl$qQU!V@Qo>E{$u zq%q})20b6naxFG+9t)+HfS0bw!~r=pNn*T8&n3)Jv{+t%nb9^@N~XU1he&)?@YaT+ z{~aVvbnN?%dc{$Z>GS!cN_Q3YU(~qC8gD5sS65r+=N=v}OFW)$@O^~_=C`$@u;x$p zJP(OMTy2)h!GGbr{jaeGU`?!(=FYKxS4FJXu-|rcNP3IH-%=35fE{yfLP)SV0C{=o z$~-f8o+?F8GvLE=qu~;6xG#^{9nFZ($=WYU2;!tm&AL7qsC8e0O)jTKz4Gt{)WEIV zEGQtU-10x!3L+3)TDb?N1jb>ahQ);yT-gJa0~AU2DFN=ezXRPW%LAr-F=*EbUXm|w zq==k~jIjZdrnPUs>$XcNKJ-!ze+Ajp1^A0p5qbg71lRIG$ifX*twg&%KonS7BHR?Al7WI3lJ zdX{vCz3B9cy{se-3dr#J4G!0O16tRM2TTJJSdP>hPI7ZS4E}+Vc@Cht$D~YD$JU-&UglLs+FX!t?gQfo#FTL5n9o9@9XVpby+Wjjs36y8Q z@4Wj4RZFSZrbvN<7o{8tH@4-!z_W)YwfTug<+pB3fC|R;tlyHXDKXa3`hcP{M?6KD zg$m5rg@^H{S)@4D-wnVQgygKsSkI<6p3S<$+m23U4f(Lx*>cOGVh6)HivA4~1-G>* z*FAq@AHz$>2mS9@yp9*F2BC{(%8*$aXhI7sLTg6K3b_5u^>pk7yih>m1s}VQ>I2;; zb-H`vfsQ4v1cYq$E_<4sc3~pU9Mkxf4B5Q*xM-QQZcx;JZT*h7R^?IfvU2T}k=jsz z4Fc|$07KCo%fsn@;De?Or|O=MZ~Z|1#t|(M7@s69q&j^1 zjSvXv8Yf)|Tiy`{_%6$;SKIW2WIBGK8jk0eUyg976J(~gSRL8jqLb7B3% zb;k3!Vt?UbDjH2_)ENVS{44pNZkj@k+t$h2yWzC+gwt#>g#Pd&!WnLJ=e8Ie=$aff z;E}}=tHbI{5=nR~BGMMJjJ#hL<@K+zkQ!i_Sf|~*o`m(8-ADx_rqTCzN1h4Cz-JMg z$yFa+UKT<+Y|K2aEvNiBZsn8gJ@#Ey4}BXG`bvVElXS|Tg}?dp$C17b{4 z53zW{*|j_cIKD|&AOoE}wXO9J_LHpy3>TN)41l~u%M@(X*x#DaC(Eodk9t&NqA^{&6SM0L_mEzg8F;-8m3i4+wNuTCE;gx=C70y)uF7KCdM6T_1Om@ z?CAVLMP1`Y{xWXJr9Au%a)OFU?^QK8{7mA(?;b8kau{?J0A}7P7d| z8Z-3wCtaNb4RMZndmfqv*;W9rUw8~GXLo+%L%n3dXpJJoPrekUI4+t7aSc&mtI?#@ zFqeN)5NBpOw!mEZzhYY*<$$u2*6-Ep{8$qRok5HZvIh^xhbT)5Ks@JWL4`634Pvlv zk6t&b)!k2$q-r^OjlR=v_dj1+wDB2|LWA1jB?fzFbQks})_!DAow0d_g8vb$&Tmx1 z%m1QX>NUt-c<~@p*M&m+b!?QET*4RYmLHWTd(<#w&$4%X1sTIH)=33Yn;?ZP53h@g z$YlG=$V$l7=oirWPH?rt6Qd<W-$Fa`g)qY=BMez3OdYkIQq*eh$Np@=sGk^ zSy8QzmIV1Go+EEeuhWS+fTOJSsN#Qw3?3}s>#6&r9yxFs%#=4?T!f5l&mD*_Dj7I# znE#q;s41nP?zQ7~(xq3=nGss_I{5lg#Rta?eU)85Y#x^TgbXFkzLnaOepVsiC73>@ zrfakf_c1ob-O&A1a>&w3yep0nL&|Fde>x0Ts(E4*<;r3=ZOadz0n}%JibL<@b9ev@ zu*F`Eojo@U%&Ih1iR^-ek3Tzf&pGI|vedWcu-w~JBMnEBQpS`Q^7RqzkflfEB^i4U z^oXR_k96PumL~~WoQ)$*Cu8b6PK}vXs|PI;y1d^MjxHgZf~W5*$(CJm;eNX5BqnrO zM%tP4`j&HKbT2gG2AA9t_T-$FnkboC2cj`BJtHsPRcjXOn@*s!QC9ivcikg*)D3-w z<4Vcp@&1QC8PkpbU5c4{NbC&@CQN3kQhWx9?B0U z9v==*kqq3thrF=`1Kg0%vyo@{h&{d%;g3pq3V{-&|BU)y8%R>L5R|ht>~W*%+mli7 zL$sZ}9}8pidLNii5`~3;La92Tlig3IMUp;Pwx~}!IsBs&|5pwb=bd?)nuiC1)Mplf z6tZn|&O9M&0&o(Ugh7X9w9_l<#Cv(<8d)}+UYTM*SE zGS*Y2+9b|$x>v%yj2ilX$o|Etc-4H%q`Qoe7OndCDeZz%1hCLD;4IJ|YZ*z&gc+{o z8+q);toF(D?wC7GyoU=^@}TVg*l!jw$tNOl`dNe#2Emk-)O@{4P@Jz>JPtor{PY-y zxs$$-*veD#S;Pj{&e7NLfMW+XaD!rRdy=sNY8jv7O5n1803EPl?I^o8i4%h(U;8mW zj2S}zfa>fFmieZAUMY`)hVv-!a5peW);n#1Oh~kA&vwx98ULtXZdm0JG;l;{G9)D2 zmXB_3k%7TvZ$*uT+RGXnM4Pc=wML_j(o9%$EB^f$tvb&$f;JLQ40N*OARicke>f~l z|16K5t1VzA*9V-zy2rs_-Iu^M9IcSrvFagwl5h<>gh<5IPw!cX!ZE8Ad#exE%rWp* z!aSv?1Y5A~0Rh|;0?fd^YFsqHaiYRt^#4ntmJq54?1X0P{{2w_&10{bOa2at!&))4 zwhb+cK$o-$>x663p;Ch4~ul1^t1+f8W-$~Rcn0_Lb6V+CedMx zmV!;Ih>Rev3KyLEtA(ZLl%>^2u5pUP@#%s|oo?^?e&!Q_-3m*jpNzQIjNAgpCp2?) zV6d(|Y2g=zIzY3}4>y$kw%@!A=yC0X(SV?0Qci~U%AQ4h;l zp^;(To$ZTDO_SWA43w5P}S}y3e}>z%fJ?>$>7A0R(oo3u52K z!&Pc^R9w)iQO!>xbDcz3qpwt|x%4>oixt~D;KIiKDjK(+FDK6HW4qW{2)}^Yb!_w4 zFO7-ac*M4tFnLbHaJ~{SApgFh(Jr{(A~mqiPRgHjFoQ7IRTFq|EvQGu!sc)xo5|Nu zfZBjc;Kbj(FX4C+4Dy)?t8U4Na$$H|G%~QYV;<@H_C(lHsNXBDQg386ENu#)s;Ihi z!M18}g%n>RMUI|{WK}-mjE#RIHNXuI7Uf!No4xyt6ipu>iUbo0$tMPxI@fOPzFuk4 z?{FNDFkQ*O1{LER%N>Ie^yMSNTxn|h5wO-=dHjsgr|e(ORQm;5V8@J+x~mmkj(D6A zs&mB3_~#rMr#$R=&?syVaIP)&7Ke2^6rKK!h0F z?!9W@m@-(eNOwTcX|JGNwyRVH@5|=il}!oWlXEr4PyF2O`J~R)XRZUU26Zp{n~sRhZ)>JH`Z=k zRc)G%SAw}avF4{vl)!Kf8N&tCvr_NXsF97{rEcHy$svtWc(hgUOhvYYdG8JmE`4qx zf6vW$`X?!nj;ie)S3X7l%e@1n2MAHz)aYW}f*wf1XUlHbX3&Cg9d8BF@1kknI=AsW31Rr0oCV#?ex?0%%%YtXGQT8HAnGu79=fsN z6f;i^lxhn}U2WrVFMkfAW^lE%)z;!k)dp#y+_|i(7W#A3dnFAXFMGF&W*00W1pIki zm2>6ubf*)!$95m+Gb7e&rENV%J}57pBc|^Nde$1Du>{6kA1t(5=b|=a-w zGD2%SmT*y2bjV5D(wvdo}Pl;M^tH;f{*Hhx+yedlkq@LXZ`Xnngfw>*$@>+ z_Gltb;7jVL51w%M4`#Iy%ssWoUe;k9(x&#op`Wz!d3F7h!828Lv|pxW$ETQotus`a z^-9c+V1B4D-p5c7X&KBq1a>J0_BnjFq-0t)z}f-_#Rz$ub_%kMQ$GS7(ui5Rz^f-O z!mMNAv>nlQO)ce&NG03He}c|w`8Q6u1?44DfU(+p6Z6cBt2BeUg+`YE-7&y|#$xY+ z!Iu6q3=TJPhyjs*2ZF1vUr1@-61)ErahERrqaI9lt|Tq`+q@er$_y*qp2=K-IcOUC z|BPnxmA^&8ctjY*1HpChZ;i_lGRXe)3?|8&2t9cw>w%@-)uep5;X-v!oy)E~vE#L0 z4nGqE=0{ZJm#_#eFzUVSKsJciy3+3E1CPEQlKscNX*ERFLulw?#$ra0F}A;n2?$qY zlwBr}Grtaf6I@$HBCe)yK-+G=-Fq*MZY(3ra6-eVMW7jzhFk372+L;;Ja+ESUFjgi z$cP%hQrWjZirSc_8Jy@vh$Sj63JR~%>#=desi6Kj(?z!a$BFhflPX$hMIcR3yZ7W_ zh}nMH?0bZBx6eA2-*+(6Y7LT!oD4~j&7g(Jl!T}R3f#u`QhT4YK|1)fn4AoZeh1!? zx34*L3VzD^0CP<>kdJM1+KqUpGHhveQW|*4f8J(u31NefY|o0?^|{2c+C{y& zoFd6YqpRPm84uxuEv8M?gp=VbS&KA#1)ax}`u1=1D1Z{PU0La(x1RjiIjynS=X;2$ zCh7K`wUd47;o9r~6}{BGd}%X=yf<~gG}Mn@^9Fo8<#B=kQ5%d?Ij5%Q6RpjdYSQ+x zHsNd6R$=Gwx&he!z&G7mV{p77EJ{rEd&V0)4Akg|RTd(dmYLijUA7DnZ6j-H2!*Ym zi*krLz+6(c>r%GkDfjYV6cR$B5Kh+u?RNm4s^n)FP~dpWNr}NlsE)0TMa5n4M*Rcp zHZTyBf*EJ!&OG=~Y~-qi`@j5*h{!pj!W>f3V_X4erlMTqwc4@SRClprNBj73yU8{k z?--b~98UvIH--mJsDgbY^z*P2d|x54Kn<6xsPZ-)A2ZIyeSD3l)ca=Qo6X>Y`TFGf z28rh-O2?)>jo>S3<5+(o9+)2I95|Qb{pmUk-ym!9&>=u|ZU7d7zca{-(>Zn`OM(=u zpk8mRx)iTTu*;}(6YNKLC^rZ8F~&DmZ<%b4)oX#-X(!JF-zdbNf>g8B$CT${Y_+lu z-a!9#I#*v;-Xv|yzi&;GaOGitC5c-fdujSB@9F1in6oSPcvI4~d$+j6bG@$s zVjLKMnlSZQd)^a}9q>|HG0=IT{ZZGguNzk?4PFzq6;`&F@2#a;D9On07#QKh!4^Nyw@0D ziT?9FX!~HkE#ZWj9sih0gG#4T5oOPe{hqh>O&VN$VnJd{I>*I(+IbPXb~^W>x~El( zgxm5X+it;Q!1i{>8|~bSM{=ySA=vD$ zn_tk%>2tbeS_kuj7bDWL041F}DW6s69vaq84TT;AOi$vt)-ay-OhBp%^cR7}#xftI z3Rd&E{wfDY$g|%YXiA6e7Gqqh!yN4UU1EkPK<=ELe5Nx7J!z58IDa*_F>@+&nVmZt zN3dS!pDupx+iYp?`6l;3=_|O#F7CSbAzN9kNihTu0v6`MWk8{Q=upI^1tK1}nEq~kCk+H7`525a z2m)%5Cs_f#bN(Uj=>#AKfO$}mz}Ffpi~#K^B%b<)|5ow?^)B){0G|-K8*PG>ShiMu zGCaR_NU;|8xcEpaC>|Mg-XPmz=fxGby5PHzz<`Rvg>|m{Arl2tMxEn<8!1cKEJ|@L@rprJXaYzHSIRQ@_%z^=C3T=|#aH2;H1~iie4$#jS|)o}0iXy7(z{%drz891_LpCk7LVJE zfBg~gfqC?Sx9ef#WP|nxRa@0e`Hg8%QWF__3*gEl&=4XyXgnWqFgrz2fUAD|5GcsM z!^B*F!qUg%B?KH;)?0Zj-fczFeCQCx^&ik)K;OZ|kkjkGtndONbl%c-W>sweb#O>3 zXd3j!i@V#8yv4)34~xvI#?-AY${=LlKW##vt6MMX?sHxCifGGoylh+Wsw$30**cic zPt5jm&;mS#W79XBaJOYsho5`+27NESUGku&A}vRsqS^t$8oaplf3+6FiwYsYaya~} z^1AP*LDL5|j0`gH^>jdCnLnJ@p@slr#fZ!`8)Vbgg@LoKH8P8EjHT?J$%HZKt+B2W z{=fSKkFT3&Y){pK2X`OutSTJf{&^p%ao%~zq_~fC7{zeYpz8}mOAzR4{9olDP#`&5 zZz?<{hog)uq!m~0&t|r1EK?fFi#LOv>p1#+jckAc?PWmUSQ01EEUxp1h#dwG>soB`kG6W zpt{QVcKr?y-wueNfZiob2uhKeZU`vkk=a+xq5o2`hfZAS{8RJK;VP{V*<0ks${N;& z3jva|mHeCVr-=LAwf(z3(7nA^mi|LKbM|}z7v=+ykubWh&s9&87$RwsI!B*T(fCz?5k?1tBLgvQ*C^`$brrQ6HpR+pKs1YJLMvo9j zh$9`Lgo=R37ZH^Z2@z>WdPZ&3NRbjoNh@F>7$c-C#CQ;SaFh&01Vu$epWl9ez;^9A zJLkIZ^SR&e*Xz8{1R8v-3lL2PQ=sFk8g-Oar5?P%_J=l}S1Y;pTXla8Dq-awTqkr)_(!K=upotQjt2}!ie?H%>pZEMq zyWk@{dG-Eh7;B+ODUthDpaz`N7&Kc8^cxW{7%-#&!}T=>=Y+D(+-TW&tfYv=AA z){5nkqZZ3!i>j&g!XoP_+he8);RD%E3!Kr2(F(KLuk-{xt7R%vhVREsAb>nUMbYm< z9FH9Ps;@xJ=0|Y4G+->D(CzCBpTKwY=+C>)J$&`wnPA2RJ%1&40taDc=kdiPQtk2c zR4n3lm%?P^GxVOw4vm?AJ3zJ8>}R(xn8YkRbK{Eebx;Ww>BH~k7r2*_^IUNe*bRBV zs0(o4CzR_y$K%t`38ndXj6M_9`{Bi{MCgA`_Uhm?g8;YTE(KI2?6Y6XpZfSPZO#jNJe zjv-i8!y!m9={v{aV~U=BAC83ACI$3VKsNs#wglG7So|bo48G09h?|cPfc*(a`#*&4>~eILytS@mt9?`iB1Z!1X@Fd%`om+BNWW=0RnP-2xJpzt<;BLrkjH)xx8 zpSXB6=x?Kgg-98*Jk|)3bjB6<0yF1;%qI_BtAyT%H(2@PZdF?yWwU&_bz!mOMnO9W z3pEP*HgQtkaiu+}-HpXW(5rnC5aOV+yDkZ5e1OeL>sjfOrjC3VfHAPgbCUSUZfiH}tMy$hv#xm^nPn8j|8CnsfNn|IarR-DARc2T-I^1UKNh|dJA(zu}cM z*Fg0|Ro&MOlXo_N) zA-F^oUK8KB8LLK3FC0Ta_A#|#mzWbGz%X8RIPr?vZrU(dz(wOmf->SrLX^+_oEY`~ za~9!?y2oGCRkyPz?V!%#YVHu((G-TStCgU3%3Q1-PAED~f%0;DIFpy(M-*#$vD*Ja zPdgyzXeL7*GZzY)c8KPonHdxzEgGK6W$MoWR@zLh>(@x4S2#i~R;K0i8bUQd>%<)u zVLd5pf2dZ3RiR#N)g%<&hc_^&@IZ*oKC5V2lxWO=DIa&KWU=xGawihHtl!=+<9o6epR zFKqm4I=}?zorNqkQ=wO$H(MU-oHZc=^F@?lj4JjcRJZA1ow&P$r~IC3mREF(!ZMXf zAE$6^S%n$--+Sb$0ExyU84GPCXjcb3)b;K*t+e!=AyY~j>XHOWV#YHIFtFtksgnKf z?6V9@u}_>lzc969BHd+kq7&@aLS3oNT0kXU$@-X%)sG5CvK9Y9AwSWYzA2pL1qVi# z+&ZE`zyo=7@$#ntLmbxW1hU%uRNPFx!X@%Gl=A+~kaH?bNSBh`d*AiIkpe1!$b%jH zBpe30?)M?f;AcV_l8yM%zJ4?u!Q1t+#FzuBS!t7I*o z9jkOOp-j%;pe&gO8%31Qx#_g5NE93qI``#Bwmvp&F{djFTB?UVMX*|yW!^*LoP^F1<@akl+-6jnm829;}!+heCRAaO z*=*V2+S}lRamPf9s7IIe7nuF;jhhd{Nt|Rnv7M7vyorIT-#`q4xLhRGz6@@J?#LiC-nB6^-@%mSDw|-T>Yq6A z`3Bk@0wP@19+6%HH?Ku>d&u6{$O59M5WmnUVk?9EmlRBD;mzI$EupWZ8i~Y)iL&e1 zQtH*s4hs>i_xn;e#f)%Asm?uw%{Y5%Tmcy^Lf?Tsxssk2kj+UDYDew1&cI7fec1Tg zK&!@+E)DZ99heHm)%LaUUSw#?P@BA1!zH65l04I*mx>2$mzZrO0hq9W^svD67GH+x zZFoy2uT)G*?p?mBO?K9MIk@oZh6@{esbfA=mQ*83jvLiC2Anr5Dqz4(A9ir;XF<8UJb9_Dd_k$;Eqf}M^&vCJG+)7h%;ga7Y3+BgDyAf{`MCo??BoYvp|-6tt9Zjg3@C-Wr?`FOINpDn6KWS_>I?n z_fVxGx~yj!qT&W$eVz!8s2BWSE|yTw$9oSdPc^4Me&0}MbC6n6rpefzbx_N4<_L#N z9DCx?hU(Q~KN_VMc0PizZAd$8IB$Gt6(@c10hpZMvUg>;z(O9lGao=e8Kc}?^ zIgQV-YZow^VNiIMIZJ48QmfSY{rg>q>&IdtDjm9&WoB{|M^6NJSU51UY%IEXLi`#z zzo;~5uraN`w;$VHE|@knSVb+T%sRlJ9sPnFKN@%$-_V8ri z5agQ|r}E$4B6Y)5VPIH9ksoqT_BxYV3m|U8yz*mf(HRw4!o4E+#%@;ap^w0N>#vbP zEnDTll?k=THZoGfK29dXBiQ_FsQ`?cJUK*8WR^ttk}tu|_{K(n*%&3lzj8Srh2O-m z>_O&HsKTS5b-Jm?c@#&u0mnoY#Q$^1y+Hf8PwqxU{SqeN&3|6O`%W_?v{|uj2wQ+2 z2c1oZ0wX~{9K_`wa#z98v$26a3goVku=|>|p^91ym&s}D=hz9ODr(B$y_DV}E6vv5 z{|M26bbe_1nvjS@-jnvX*)^1FGZ%!e9*u`!z`h8Q#+_6rt-}t zIO9`sRzLN7|7%l!sPzrN!M6ne#AV-_Q)$!N@({|)xlVk<@xJ5m{f3HtC=?rbXEqC< ze7U#Bv2yH@sL!HPMmjtu;OGm*C3-m&^yN*%i?IRt8poroD_Qqy#Z?R*-8%_Q#P=FM zZCd#Gp)7qw&@ClpH!c0aF4@Qt?wGt?drMAx5{PFbRGGo2cfj{f=$nzksuVns2Bjl+ zCYbK>6&WT!MgQJ^oBvk|hiuhWh^KVXW;{g3q7M-wAzBoCZ|d3-5vW4kciX|@)hr4c z+%xI-U6n>?sbeRD$d6vvja|_-Cg|ZBbXQ6#Yj5RomkQfV@?=GF$WfRzZYyOc!&^#f z09o->Q4EF*{ja>Kej)c(sK{P5+< zlNCrb72tO8089x0Sbh-W2q$M_;vP)DSp2pjLM^c5U1*w54uufMW^;f3ULE^$Y2RaT z?bGEkzVA)X8elWfTv6nqX3Ui}0fICcezP1cv}#iD@No@y=Z5>#R{lH;?|r>$Rd@}J z0NVE}PJWGjefk(hS7cjY;W>Sy;iJhKde%jNn%;4KVwG+zziaE&CQ%%l%HVNNdrJsm z7||7ZJJMEvCcK2d*wuDn5z}83R~G~2eNo+ylyX~3#8!S^n*Pe7qH>!#vTF&%MjKxg z+;EQ{S98NJE{S9>yV(qLWB>+Cmi>#W{kT35+1fDXCW%}vQOPoZcw*9RnlJhE%D_e- z>4vCE1d0K5jy5y6VRF|1oteKC@RQirkrhKPR}x4(G7*OmxQWp4i)!u#d7iTzCbgPm z?^iOYUlt$-@J&UPf@U@ot4MjeLJVGs@hAYBY|)2vx=8nxxLRAWATLn#l`3<#Zw)4) zt|OG(OzGe2XcA+?Rf`KURm}n0!tsJGWDPEv6SRF%aWR9R*kZTzBk>8Ruo)*Pm_OMM z)4C{l;;r@Z$g4*@fHVf42Yjz?E~~lpKcL_J*->mid#&YyF!^uQXmej`<#uBtJOeaKqCmbS)sUaj9~&@K+pc z$1}jfc1=GJL`^OR&4o+k5Q>^XyoAc39(N4L@oU8GdK=eyUumU~g;0Uw&iW_AB^uIc zy}{?D;i2%^cxCTEQ!G4`F@3Ro(Q5LR_3fMd-)%zu>`TviX0GvrnZEKmH4WdiZ^MgC z%dz`8R$r3@=@PQo4FG&0NDA_Fu^?+?j-o;{C1>SG0^})b zhUWNCX=F__=Bk~iC^$;W#wWaCzV<}4u+FjQmH=5yF*?lOIkxgfp1Av7PY?9JyR%%w zx?#J==2xp4oh4$fHbl0gsjzO@4VZQ&3hqP~o#MtR1B3xa^;DOr$EqVwhQMgo zGle`>WKwj4NG|ILxRHz|2n$XMhJeI=Z_(5&2PBCno(R;1{G8A#$W`Y7d2>#{tMIbj zwG~n9IyZDqWCK&bWG&y8^7A=YG}>G1WaX9DM_{Y&W3?+Bcy3AZRoGuDo(uw!8?~b| ze{vR;rH5U&>?c!W%hK)V;DYR-f7TJ_{pTwSGej-L^6k7_6%rN0q>czBj}*S-%~cnX z_t9kcdC}C3Z@k>FgDD8@1&=Q~`p3+NZ*5qnr6Oe!cJe}2K4yXZSG*Q<#zV}s-hqCe3UHtcFLHP2q1p;WE*`6TQu8jiz|GJ%Y&+T1ww<9bo z^3>4cKU_T}Z=NV<@y?c(GfI3DxMgp991Hl~IRb6Ugwl*v*mkdvK;Kd;nmgoo6sjE+ z5s3x>;Y&B1@l8Wb-eB6N%Jes4MA28<8!v{MMdym_s;8(_#}}pOhm+rJsF*qlToLo(CM2g@j?(u$F~gA8_hZ?Io`Xt?`|Tbg3lOe@pSsd?Y}(;KWcG=l4fyJa=iH#E7+ z?A&Yg?ivE<mvsTaMR}gp{4SK$fqYt(1B`z1f!UM40|1OoYe4n68@$ED0!?p)J|Oi z212U1rd}Y&oJFiVm+i$`ZjA&Wb%G2yIKfl!n{Tb2XSm+L$<|EM8+A|OMv~I{RLA* z5GfBnh`G$P*g1dJA{~-Ov>!h8Cgk`7v&p&Z%7oJ|{V$Rro8$XfK z9w4IJx#`@60?X}F9nh>`yXj`)T17Rm-_igaL5fwPtMv5AWoA5&E zS<$6=-G53RIEF3`{m9PuoI7#*7t}F7In?=3+j69LUmV_*TooZ4aOj`=r8K=Z4<*?D;;#tSjSQ&KrX_L>fx6Z}DsCY1C{iSXAmwi>gXMw}TamrD_nat1Moj=3z z993nqBQis`_U$#rp_&BfLeqDZ<)GOu)gWC1+h)+$*t@1%pmT15rTndvmTEZuex|Oo zvpTALDhF@Em{m|7Py~#SByH!QHGh9DaVQu(`0;;@GU2ecAm4x(p8fT>lf=Qh_*029 z%O*NRD)SWUny$9L$AFEmnhF~js!)8AsgXKJsYcSd7nG-)o%sanv}kR|7qO< z=HGtmt3jxGx%E!QABJNc*-CS8d(GS6`p013mXW`9`LOHh{sL?3q+QlhRo#5dvqR*(J^3?y+D<5wFEV=Z6w+L@tBfsR*YlatGTd?+gG9EI$i=ZoM(wllYvNLtoX>t}b)6aP%L3joEj1A5? zE4GmI06ZdW+uNEFTE9YsrGZbK1{v)Z!T5ht)B6|HZXIHG%=t!gFmAn5*SxjkNQ8$z zPj##%><$-1S#5siDEwUL-0k0`SbayH@h}`9Ap>MIJ}m>j)P(siOPc6>Ex*>B5!Sn%ysXEZw#+fLYF@eKj{(5dvFZV)?e)ECZ`BO=yVTvZLo&(f6&|zWe`+Gq zN5Y7`A0H9`Uk(D`$uxko7{C=pvkwJJWP8gLst4s)ClTa4;>s#GKc3mXEw9`z$389R z;DJb?Z6l0BYU(1F3|xGED+W)vYwMEEXF97pYl^kjsXUGHTVZkJ>U86baL$TZUyPt& zJzN!eW_er46%=#z{8UCwRa0uYhii4xL~xWuXB7?j0tWv;nuLHrslZQCP>TXd&S=4E z%aNdKtP*EN6?(@oq*G|F3c{N#>r*WIxbjrWHBgs-YE0vB%|ie}2tvjnS3*&FToGeT zWNixaMj(ul>ur~>MJf79gQ^7NIRK2h7IA)Z!&?o>mvUK;*7c15vH&n^{0vP-$xyqI zunmIzkBn|X&PnC`EE+SI?Cic+>za~sRIEm-D}}8z;0Y`mk=Z8FK}Nt?TM%8dvXZ%_ z#a0IP98{id>OZ>MMx(@EyD&I7dLf%yGrce33ljHkS7ua^W9OO0nEmywx3Ts){PD`g zQ(Ae10>*#TYd-+UHhk{yXEZ;K@^%|s?a54d^jK6*xlT?nNe7HlxN@2f?Oyyc-N)OS z8KV~dz<~yHkNiPWgVSbB?*7@WU9;5o7B5vK>Ab(TZZzva=Im~y_T2nAJKIz{`!Ln> zuEYY8nh{Ik`A*`svx?w54HYq;EXuR9ZW;qXL+x*w3@@F`xn0Q*m5$)AH#pgk_W2*} zjMMQ7yJp#{nPN6Rf6w}AfTj~-Q38=`4W`^t0G~eed8^1dg(f+ve#9Cu^5m?pg#x-r zfP%CVB$RKvx8QXUc=9J}0Ua>jrmrYJdtZ$-=-zzVI=j(2%yWQF)Dk^k#B6DFvO(KUy?YUVRfyEKC$7~q+d-gt>3W1<)F z+}}6Bte@R9NQ%>b6L}=kS2U zrY+#CrIPYs>x%=3_C*@7Se8_HpWEx{4i)b zpyx!_dRNp?_5uF#XQQ7+vz!T;i?))bOrYk{r=$LV+X5BRW*VWXqW^ zR}UCxfU}Q$D=YKFEWl0T%tt?&n2_GDN<29e!nKyY|JB8j}UF*fIja) zjlj}3vvM0O#Yo~D##1GDPVd|Olf%Cb0_OT>24wn#QG)m~B12@h6|kiff0ijOx`XH` zuqIJag<_l?qb#jpq}7xxku;mYTwrewjUyDh#@ctN!tE^|giX=!eJRjP&*dhjvnX*=#K>@ynjb^YBed z81Z>K_|koI&%j<>1yy;Y!C@O1)sa`-8V&~cCUKsL%OnzBVnfA@= zHamkm=GY;Eg}d(k&SQHWt;Pxj4;^3{11suUJ*pRMsAz%|^$CB*w7cLL_EROPzx&pxSzDXEmy6N;)w!WL`5sE-K7q$1;GXQo~ZMR2s&Hs)Vw+mk3(M--z{cgYO zNrwR=O&yX}MXBCE`r)8P!`7?C2fD7+lTXj3hR(Svi4c{~B-!u0r2;NsU!Epxq$|vH z$@@HNR?#>yGk2I|SmAA+!dOY_<*V|L<^{23udbgDHX@$6zT5sowh+N`b+n097Cw$Q z!fO|4N!x?V-}+C1I*koa?!_k?h0bj1^_ky0`@>wYpueOm?4b~oeUafS2;aef2AaY8 z$D*^ZHH|BGsk)yJczAs`Q+hQ?dsaC~wG`79c0OPu-+*rkV^%%2CwR&rM|!W??lk53 zmw+_VTLBb%PP7_5SD9pgX4>&E0-+wL5ZtFfWN$gAK&P&DPb?F?p6dL?HxN` z-7YtC3lgXcb;kFeSXOx)L!5a|1Q2_^p9OrD746Tq0kYizN33Qy-JgX62le$1{M8iw z>61LAxh%1-cDQ%P|LSNa!`)FQs=0dUf4$Q@QIXRWfU58)-f8BB3!6e5rnXDQ?Ek{m zYJ%V4CFU%%P3^kR|nZ7&F$E7 z;>T!b9Ef#I=)skFPAn_d&{bwx{(c7nZ&)rMfUTr`slJ3Y5<%cMIxY6U+INCsC)36U zwkONXM3`0y{Ph3^0xYK)BsvL&Mhdj`R|;SL5XPqU17nge*M7%Xz@k^=&-2%!ACba_ z#)7rg#FqHpuo=#M_U z`1$#@k*p9F**lT7G`tukpql~$-s#84?&=pb|1-AgQV%}t{^vyXfHW?J8-1d78!Lo+ z^x+Ffm#rtN#sACZ?``Hq21Uu0v4I{FF*J0&wY3h z2nS%2`YoXw3DNM4yYGME|3i*;D=touB%p3!&qIQe^7=Zs0dvF5=EzX$&nl0#bH$gG z0%kT)07vy2px%^4>{WzhM`Mu6Sa&qQTtg))wv9^MrKfAoe|0WsVD4Xgt4Lf@O z(k{Sk8mJEF-C_VYI;YbsSGzEi-Fk&}zwSAU|LrpY3`53^H75rbsyKlP|FwqNG|yK; z;XE{W-d^tF)uAw{%a-2a3u5pm8nAeiBb4{*PMezj?W*Tx1Y|P@T!|-UlTo*AnX^wD z0XM1t#2)GhX0ScH6U2EqplK!c86cy81siTf#8r_T-2}~ykuMa0>quZJMfQG_MhT*6 zSa49kA`k^{?o%g1rSoe*K={Xa6wK3$SK^3|M_>IEzCE?~VAEFjzMS9o@12iSNE9<9 zhD}A0>;&Y#wtzPU&9Gg^Y8)-HcRB7I>pSX_%@3NG6GQVcDVAsl%e6CT&T_>{yFN9< z&}fD)<<-T1pSP=QTW%qlK5PAF&kS>N<+c)sf<<)Q^_h>Y^bY9+_C5*2v#Lb1@u)`T zm;xFYDm=xwx8dlKI2jN=8~gBv_2krXlIq1X0C&$&p~>eH564Vb^Z(uj0_J`-^zZ=T znW3C1`$bib@Ka7a$(&s*M$|&=h}q zL4HU^0?m+e_U#f*D?)k+^oW1lEAQ!u_{;B=fYR40j z=jZ9YW=h_h$=-RI{a1%#C+OOtC3uLzb3`Rn1vIT8KhR3FgL5(+M<#YDHspFsaV(Yq9oG}ddRG~v$a?;(%`y-hxN6gVvD8VM)mdVEo-gO$` z6tcx=#}|t^PPFLdWeX^9MX?Qw6lh2APw6;$RsXv=j5|0hvKodvAt%-+V`k^fKRfp_ z5gx;{-mfFhs8=A0JANQ(9zwg?St$5yn1$Ecrh;>$C!+2Yq;KKaI5&;#CV5*wz>=>0G20ljsz_-KRJIedKCD7w^F|U+iFgO48ey+h& zApP|v>-A~0e51IaNgii`!tC?0B?0rc@g-J&{Ty&AhK-8DhTlR$-_}0OI{W$)+3>!_ z)Eb)BnhF&3ZXOf3LqWrm_}trs6ExF#{n1@UBq=2BL$`9C*6=6dWkQJ8I`ZAM()pc9YE1aq+t#b?UnCt3tJQ` ze6$6JNFU@=HWJu3H&Awy^PwN7qku4kC6n_9^cLVpZjHfXn;+!n%qOozEQfOOZD6KX z0=Zqpk^Glz#6%H}pg~BH&HXHCB^TmBSs?2DLo-&eaR-rf-G|G<5C$LpDww z|ESyNs40A_t9)%8{y!4x4xIePdT25Mh#b3Qp|%Vhn_W_xj}5%+mkD2;#RRnbXt7^T znx+4e^8^C#_t11-4ULAHE$T8#Ut33Hx$XpZkBk<#ua76D-`gmy>CG2@-a_P^?B zj>eD0U;YIvJElW!qK9`JjjDutb~pyr|B?ozs)lC26LEV!gPt1ZC+(+o03-2a?*mlK z=A47yJb|%hZaTd-D648F22fn_pv<%aGJ7-k%BZ^#RRHktj!}<(?hbgU>~4UQ^h_Gg zNXa72`q!PR8t-%sb%H5tjQ#NUG4m&3V7TA>a~M`bbE^YE)%IvntFQIXmapz=%TCPe z_;H#x@#Vr1Yi*cI81he!S68WX#od~J91xUNt}&5+d;Z!5mzn6ZI%&h=YakZTl5iW~ zaoPE!-i!%Thy*|MLyesjRZ;S=^V)bSS$TTgYs1t@I93A&ifKp7E!A{c9k6gzmX9*| z^06#y$+zK7R--|y=ZUwz7pFaMdfWGTb5uWr1Li0{F&^wnWM^k*KriDEf-!uq-v**` zLM)o2ya%><#1xb8p^ciykpx{#wo@@NKTZU`2A>>P?wVo#BSu!4+CR$WEA*EPHgkz5 zkLE}D)&8rKt2!8(bGz|0ZCBc}k7;*bW~>waR=&#=F@ST^4q&C+=9t3 z+Z4~RFVLujtN_C}F+^|RlcR12roR6byGVNeqs{h6#&8mQX43o=`I{DSeiz`XU~yPg z1(>jfIu%RiJ^Fm-pSlpsFE>nh(ShpqTNiD^Ur2LZqVFu+vjs2|5Er;vpd?b1dl9hOvN%G6ZkOY>Y)JYF1#7D$o0U7TReuq5FgAf>ILKJZ zFrXFO)eAVhv_TV}@yoM9#IX$x6Hjy0JGB=TB?*33RrIO8*R zEJB$7zR)8{SjQ2db}&bdT!GO*IC+o2!r&cUBsd54xvEKt+uc5`$E}g{`L#1}^p*)y zDA-NX8(CBHjiV*M+elVQ=ctuWN!`K0Li!Y;y+;i9h3S3q79*_C7gh1qsYrs*dR#)0 z5~)B#fihz7L^wo^s-WxExz7}2$x04a&W$`@&|X5KRZsKW3tKAV%+*Cp_)%BZX* zq_2ghe-+cPhZq8}wRJ2ch)ozKLM1yvXUQwHcmq~=wOOG`N1~8TPi{vw&Lt7>j>HEF zOs^4Q?Z_@xynrMMVg<}pA=PEo2mhbU6Bi~|GHHr?y!bnA2CV(nlcuNCylbb=%rY2XL11`5i33Uf+~}4NKas{i3_Nr znc-^+YdaW#sNga}$Jy+IU0Jvd=F5Z33EV!HG-hy@((zo_Ly|=aVFKY)R)XsBB)Qnk z9dg%;U=+Lid)e4?n9##q`V4b!b_CXFF-Tf)b6NYP3IS3Pd-0A{R)$A$P8WihuLA`g zu2%y!%Xca@u2q|aRrbX6*MO z4pfD`DEsm-Y;v%}?6lKCbEqq}ahZ@oXu-0Qc8))Ox~^jF*Hc9QTqJI5*EL_j0mbwW zlzD!6I`gS5@Ok|&TVl1^9{nH_!$QZ1cQX8VNze!1^a7f=3>Zo~s)iJK(u?8@VN)IJ zS19onA((LkYHwoZZKzD#xwh`l&e%gDua)@iV#1>kR|I}FmgV_kV1;24REpp57i68` zMwFctCCfSfiY%hy9Z?p`DD&Q^sm|135Qo-2h{tK=t9-fTG1|HjmepYj%fuOJM;X(n zi}^xI3>Vl{;_>kp&~Tq-*rh?%EVLP~8W@kw`y}Z}V2+LAJF>;(`b+L*XPwB=3>y_& zA|K@>>is&W^m0#uTdrBylw)VS{da?-n`~HyZm*`Ho2&ynUo@Eb(&&u`@)w|qsLqK{ z2rG#1h{1dUi}DY2tI>Hae{@|!n7m%nwLH8QFFCVaG=TyFv0W4Noh`w8QX+>kdYHWE z@+Y@p`cSd=r5ySzRmu`{+&5=bt1SMz^Hym-Wjf3A7j^F86BQqEht?8aMNW52Wyum; z_Ogb1iJ4{qts&rol7mV(%K`E6Gc_rB`(vW5(t!Pzbb}#>{4W=3c9YZMi0Btz!?_` zr;FcKhZ<+AE?-rgNV2EkRFq>2M=DFrf3mF`3`wDaJY4?rZiZAhye0y)Ut^w_%cf!h zdM|WTlzlH-uRXd7KmjZ9p#);+=bEd@fX4s;OM%WiK!Csig3}v=F(hA%z^jfG$2*J3-;=`yE#64TRsiO9v*y9r%6(6kl@H49hyo&CtlD<5PhnkczK>U}`O)$%ue-+$!eKaQj-C!Q> z$ssB(3}jEmQ>l>{Mi!TLwGFeZk-O(Egw|(1SSZ;_)7?m zhE85765m_fD|DkXn51uedq<%-zeTL^-~Um*5NurZNK^LLBxPVgNH&9WTtavKnSel( z)ojaJ`!`ehS+~ar9dh*l<4d_aK$?Wmv%5-%^TpwB;{4@u{e3f&l6RLcss_@<92mJ{ z9~=uq3O7^hH+$G7S5<%KIDWEMX8nP*Ed>NqOrsQNsRr;wFcjZ(&ogkC?8)P7X6rtt zxr0>yudFJ^J-?7dU#%Q4JvQTCG%#KY{?DmvSEIwo5)RS z1&5*1guUd_>+v4X#Z`QD{*+(s>KxDa zECu`py^cTr3^{0p0?R=-Gkh#sGH!a{cIu@8vUCa1eP zC%Cw{n479NmfQt=`ZX!>1VVyX>4B1Go6~SlQy!%I>y$GiQS9w|iSmn*OGfI}zOJq} z;70ttrmdaGD3Sh)*Jp;M{S(KxoG$s~m{i8gSy9A^2>qLm@w@U^JJycRxxjwA$c zJ`{8(AfHPQO87!nh(+HQ!=;9L=Q^_rJ~A2R(%8l7HNt~HJcJE{$U*5{=ixTDgN-7Z zvYWsdy>eZhS>u}1GJaS9Z7hjp`n-X$aTTS9EAqN-w$JBw2$|kvR1{q|IBo-uqJ-#y#}r!pr$r_@kPEZ`f+1i$PCm z;cClCvJobun%;~xdq^}dse~6Rlki$o&h8`SQ+>F2mRSq*(~nuGe(ipM=phm2$vr>^ zARCA{NEb@yhGYIaSR#X3?pnO@(wuqw!gZ^S7vWh9FEiMMU{j~@zUHdW|78N7Mix^1}>Nd7E8MsGgapZ&XKIdDlf zrR2t4KPFq!zS~@ghPkc95ou<=GewOrn*c2bWy;-iZwJNj?plUnWjG&aGHi1)YprF5 z^q+j!3^>|6w&XD)Br+{iZnVhJ-&gN|3M_jg*7#k@#ughSTewv(VgBO6aE4KTHbLBJ zueA!P|9tzpkx25ZwKk4VMgriIKNJz~l+io*-}|zN9n~3$o@;#RDv!1cr`gA!98N>u z`1(61Z)30J&o--OlWwQ1sEhvO_lIV-LQFNddB08D;e8**H0RcTpb!kDFaNy%zWEoK z3?7*XlM==xT71}jcaD!jBj685@)VA5qd))vWKL`fW0A-{E0{{aZp2%hesPye5g}!D zPamORu~;DlFnz@C>MlMC1#)>NlFMx(b+BL{swf3|LP)C@vHkyU{AN62(8dCtRRjT~ z(>wxlWNI~G_}|q<7~>+1ctDN}+$0fxRqR_ol0`EoilCFN#P+tlRrrkpd@uhrtbb>g zkS=(iF@Lc7BmPl6tV5HL5xV?{_o6vZ{V%{c_Q83{TMDgIHTC1j5MNL2?NXG1!tfB{lk#)|F(3i6TCYvPAONoHEWPr% z@-{x%JJaJ*H&=Egf!NmluvY&d2e_m?)cyApylYZ4%g)gr#jIXj2>~9GRIdZ7tT@a& zQn1!q;sK^$Om>$Wrhw6g#nm@l>19c0vM7+d3wT#Y8h)W*}>Sx`&HHetmH*{C-6)`$;Bb% znBK1Q<-K92q*3sinR_qUVKV0Gx(o)xfPJ)iv4m^Xn zH0$71>RT5usJBE4B4b$a&{uqNRWpl_O#EaRcFB)~_Q5$`UsJhTV)`ZH2dy9G?j*LyHf_g@$%s2c0r=hYaI63I% z+Nwk=YKFgkfd**@QsIC{X4&u*@_O1$`m-}>LjfzRU#s}%+<+SUGSi}keAR+WY8?I5 zQHHl~zr#eptfZ#t5Mw&V=|env3xi58uiMZvHb5)Ki%N04?Nsy?C2eEmqq@9(-J3pxj{lCDqY~9 zYQ7Dj0dUE9A@IZf9qE?rHHc)h`6@Sj+_Xqyl4vs!hoIPFpUFraNv%WRI}T{DXeiYj z-jzG;QVq;fMFErUlJd)WYrxfZzin$l-W6>Nm0=9Rn}!pzqVML>2q;b}0e++L)hX6k z*^V?%MOIp7(2z=MGOu#2Jx=0l@(&WYXxU;lU%?6yCyKz?sn%GJBMxP$Eno<)y3_2D zN2UX})eZV?rQvKd0bP1CU|6tkzMJV!Q$tsHOCUvl8!9dNJioPr2u#cV13XbCi7F46 z;Jv>S)rEHmvUAGz{SEQzQrr2;8xceAMtiQ2adx*rp&eQn+#%bW?G(A*s* z(jlmsLPiOOZwhm?b0Xt(3;2yJ$gveN^I669Vr7H8ZC6TTHY4z0X1&eE{VG@Y{bTu2 zF)3je*sjkl;War#|3Z_!TXM-W+D}uzl1Nd;T6Ql%85t#;)g>jD{V(N@K9~CG^1uNL zw{J0kw+sXZNu33NAIdm&9<1KnQV^zu`AS5ojR1G+TxXZC!2Y}h zvGMHpA|0ZU&C&NY+$#3DtN}`DB;?My*|S$WG(nQJZe4Bh)#v$A>?4N~3Xe;zIe4k5 za7po6^Qj3=U)wd2FU4Wp#|Y?mK4=?(2lkF3hNl!eF*LMVGUg@gwzeATjpqLgZy?hs z13*n2;d~HX;CZpGorR+%^PN5>JdOG(mDSTRW(sLxECDst z+E($v@th;yO)ZbVY>wO|^F{7!(vg?cb-!aP!cV2|n2`|v6`ktFc_|4ehXU~cSN*>o z|J1Z*oH^=#(K`x&5BLQcs}v(HJ)2EFc0Zxlq z>$%0a%j8_2uNFUNB72{?-Kw}E$a|`ck~owRL>LV^u<=MJGQQh*A41NG%%Qt)-kXNLS{G}3-GUUsa9CCIPeJ0>^ z<}a_Em!6LAuQ0L_m6fjDGCZVkB;PjW?g>c;88WJ2?xiH*NSc+K(I>U^)opQxi~ZYK z58$irXF$^EiP<;DeWcft{f!mFjNU*)wq#(w`yuK|W7p@v*3TA}-p88d{ecGe`au;6 znRR?P=IeMu*WZ3Qi%0=$RY$eoe)Ok}him_>kw2gReKgAa#Yt5}u7=|+lL)4yz1hXI zJiwb@O4=Y2W$MP1)m2BU$@{KH@Lk%-r9JL zmPNsDj?f-Gw`oxw>1wv_^ij+uIX7%ne>-^>X}ihy@%%ySx3COT zKC{R@8Ag>fUAD(2cPd!@gSYtw=59g6UWlU&HIDJ_H zR14CrWlI--wP*S{EzE#b1YkZ+M_mxpNKmQi0z&x)s?PAa_6k}Jw%#m3<*<_7T{xYf z$B_lOvPW}6u2*%d(G(L>7P=SeDjd=Kqr4k$WjXj!UpaPbR+(Y#8@zklRVg9B+$o5w z1@oErSxCXy*Qzq~agOW%<#xZljJaKvw3MS|k`-V|TvvtHcn7TCLETf6SRzfrAHw|n zTq(BUHH77~3}VydWzmlSI=(uwuX@I*VTm{yqraytUAyqs+h+M>66cDXlxl3U$(KeBv6M`#Lsx(jQLbFeD&4u6yttaLB69~z~mc1Xj9ob z#>n;&SbZL=-RhjCa%rTgaj0G#lG06;)m$Ep_UpLyIpD9V0>Wa{RWV}~oQQO?laxyt ze%NCerwHL>OPQTVlNabO4ui|<>S=CTWI`8Q6cYvq`M>Ei&~VG7l8w=L5&;2(VV?JN za7$cYKy>!HCZ6|~y@y`PhSuO1=yg=JD#Ti~;84$!iqG}}RN%+5pA3IvsUD(PrKz~OY~jLBVtKth_b!$2PwuJBhep!&rzRaib7*wZuS_Mu_5Dks!J_NGHtC&O=8(J648rFTf0@$3VI%6?_5UjiXyU;K`aT8C{| z4TcMWT){(i&n0hLm@s!YB~7kM1?<>}_T8<|#wXw#4m@XF)Et1wiFXwOXD$atPws!q^6`*7M8D zE_ZF@wN!{I(Lr_AS`i%@N+^j#VH9(cpkh@BKt3sevsR@d6>Hm_Y&wdR^CeO&uSmK@ zfx8%Z5jKY41nxkT0ag5t61089OR?6$ZK$cU!$y0mcMN;E931To4AZZ5cZNO{ccz4D zG*AgRMZG=`%SH3EBLpR|TcKybiz-#bWl4;~X;nw3dV9fo4NPBqpv_=(Xi5hq zgr`$6=f#FqnuT7#a!as@jg7vzaoFp_#jE=vz11LpB%#m!jVDMo_%I zdU@(S-T}Y!xQQr}KBorZR@0^r_P4!O=W4Vgrak*Q%ur5Wwa5P3CgOu5{54!Xs?olV z54@#CB>V@v9%FwG`mnQG<#x{aButPR+*3y+OY4A6ANb}PV* zRMR0<-@2d5zJ_)|e5I@^-4ezj53iiqY*?D|tz%UWV4m_6(_)HRTfQ861%~8`oD;p^ z`@*!b-8Q!01d(V-Y*KA3&-K{~qbl-d=h>+Qu=dpcaFqX5V_f92NvLDCb*R(q+6xzS z>yc*tIgJOG%gh`FJI^$=qB?h=8eqQsXG8{+S%vG_O8CC{iKSn$`Bv^Msj*5Cdu*KW zG$hEEdF8SqKIClq1=_oPyT+@b5k=%b@H$ohytJC@(Nz?@oUs`ftzo@^^?7eyMF9P} z!N8xMLt8(q9y#9G?p`q77_^?SUM}{PZc)pX-M>@!MeA39XC^^@Dl=8Gny1IbrLBCx z6f4OE@5WY*9kq|qS2k=HzU5K%Ft0CuFtl@iX}u1P5UQM^(Q(jtqulXcCA;k-$vl|m zFMYC9_3WBbLX>_w`G`FI@m$MuUvG^$zkxSe`pN4UWs<2~2gZm7s*NbJ`2h@jB#?v{ zTKWv;$$;gbW!vvYi;Jgxq z#zx10z0y}iekw3y3*u-%BNRtx`gB~$LK;rD?hAPMp74$N|c{t~!;Lf2T zKbiPF_heO^zD+;s*F0(DdLH`{%r!H__va75!p*p-?yq^QXC~~Fauo&MnAM2lCvY9I z*{Q74G8HL*e*do~_v8{yzZl*@@x3OPm*?G8eLP90avZX*3&VByP;xS7oc49+FvxGu zgjWuD<1Qo(28`LJ7AFS8Xr%5wuZxY5*>L74-ZZ2;XYP98e;y&a3=^oQ($o8S0-33@ z9aTpz5zbpYbNO|c6PC<9_eFb~c07z{+>Rzt2pa^BB#qZKvAi44!SHm1=(j9X>A)GE ziPe=TnBKC5!(n5nfwx#v-RFiCpg#9)(IDu$gw9IzI^Tq->9*$!Lq1@9-LRUkV#B;` zQ_$vy=bzgOst`u)1H(M7&@RGGsV9HRwArKaDP8rhzS~@Hj_+Y#3!~L@7(J_P^ekC& zOmM4;y3bdUQ0`IGD>5uWHh*SH=fs9u$O;PqJ%GcR#!1mj zbZ!Lmy1wr3Qot{F(WY@m9(CD=?670^Yv-cnM{0=hr?u^Z$Fun}c3FJoDAdDQ_mln< z0*9=q_0er_ek2?qvm-P=t^5m(`$#SR{^bEASe`ECQjow70>a+@Nk@w#E$>tniEp$fUl+b!-R6&2XUTb1ufCj5Z8aJ^ zGraI!5Dw+;9hVhH2^{!vo7`Z55*36_zcPhiwecN(T%l7xBrfn^w^Gz+Em|>9*Gvq? zSQkayU>qNZt1S8~04emS@=N86WNxD3py{iaK5hv~DBX&FA{{^+e|27dq34lEDw$&} z0y$g#ngF;$J3vj~i_JtVg^Gfbarmu-3T>3eIGt-EG6INA29*%WWXv)U)Z_tT)%t>V zyBw^>qHD#1_~iDO>LTxN zo8(ZKOd=M!v0tkGd6pyu3~HI2RY?CVDZn=iP-O+Ee;>E5A8p%6ya&+yfP)$xZFnGO zmY0fg%HQm4VHBe;C=JH)DO5659HzfG8Ut01Q$+ZXT_i72n_VCXrf`|)Hq2t&hgbpt z$?`kE4oBRMCn^K%#pSYSPE_%{k6P4c;pghks`{&My^Hx<%rQv zfVyuZ1^$n$&u(H0`@EeNRy|CRS;6cZ&US3^S$(fZR#`ya$a{J?sT#o(2aFJJx9$Gk;uR_^;g zDsbx>YMI~P84F{UpOHnvlF5dNi9`_|Ev>d;5?ePo_%H=%xHY2Lr0uzTT_oQZTN4Ww z_pHA>HT*Aj9w#7gx8qYxMi|y4_wvi#3Poa3I%^SgJ@ZMh0z_tQzenee%`Ep?Y7Dcffs1mHPUL z!OyC0EBjxck(%2c9E$AG29T3xU1j&PVg-WNZea=q;7Pt3)2j9T!#!kCzo&$}q%6gX ztGb9iWS?i4g(6rpzeYnQ-W%h~IiCy8n}1A}uuQ{&1uxw=1-k!Y+13^10pEM?U_6#nn>eyIgUiA| z{rfWXC&`1aCG9Hxt`Lg~#N83^W%PZYEm#(gKy=3p4?lW?#6(i~Ok~*piK#AmugZNw zss`>Gt;4y~Gkh6|5ZKohCq_%#4o>J$mE68=wis~0MgI&Dwk=rZp^5S0z%SCpqjSL( zbEG;Rt93Vm6jx#~+O?vY-wipm;{I}YC|Ei}|bn*_SVtQdy~&jeMKd>f)C3Y#nt)?sjN zo_OugkdF6FE)^$4l_%c|Y=)gpe7y3RYc~Fj9O`Xq$8UqWrNmk9gS^Jj=yx z5n@yfJeMXC?~tJjJstleW@K58=!Sq=00i#6${oD_N~te4Toh-9AiuwtNllXgXFdQy zjxeBlJmoRu?&`8UtXgMRZI}|_`kWQgQ*&HPf{7YJJNAQprN%j)Bc{W_$FZCa8K^YC zQbbQXE%?ocy#6w99oPcM#EdS-e^k_F#e8h$FXT$_1jr>~Pv@Qr(s9NJpzjE_KdSdzt|GsbjiS}X=1v(cj0vr)AD^0;qy{e@T&kapL)Om60r<_*?VOu1P-Vjnu~Z9 zXK9ENDVEKHTQ;8T$ZE2}%Aj{Ied-|`5t>_{qkdl(A?!;EZ+f@bmckSD%ww2iFf*~ zvezseB{CZ;mZ0g;q&4;Y)vVgYeMI$^nd8amH|GmyKHk-L7S}Pg$WQlZEd06JvPa79 z5Lf1vTIDy%NRV8md0F3Z?AvaDPEfh#7Qb+pwpF7K*alF;`v?s z(|`J7>3j$4C&}aP!&R#Nu^(SlrC3+T2`A;rPS699cjPSgC`Tw>RP0%>M4mpt{{VLt zFI_$Ex~Y5!Ug;-xj-~XqYs-bB_p-t6p%tMJCiCY zvb92O)g3TzXzfyw=jy^ny!ld>tW6i#ESUQWvsS_yJukpQ9=pxXr$3ARQnM z{mY*XBY;Vf1J`l87Hk5sCtl|6a7r=((f{7mGY`-ZHEhG~_u4E7IZ`h4CI^|`D9g>C zxI*`culEA-Tkp!W>oPg_s!8uj>gRIT7jlQ5UOisL?8?7^8>HLh2sK;~ecc8ym$P^& zjAgqHW)k02ch%+*c_vr*j(3K-o3O_-=80v7jr0EF6wX^UI<7CvJcmva%mfk{B?4I| ztfdnQuo-DMHXQINqVc$TZ<3H=~lvkadt&WEc5sqiXJ}R zAkJEteitv^&X}2?d-5&XcMua9Dx8jeLG?{DFlA&(S-+g&ctwE_r7I3uzQ*Jg4WmjaVsVgKj%@pA@UQ4_%(OI800AkDO9J-@Z_BwENo1?7NYMbU@?r6c-b(L zpzMRWBaSjBMex;e$yCW?$S!>*l0iYxZJyD^J`wu%6G=y*KETRQ_`1`5=f}U<%#T2Si?++Tu zl|&I369*fewljkgwYfR)(V0;ms;b*N$Rwqr|o&0-CYTEBQen@zCzhCiul&o;|z6Ada1;vBURdJ5t;exf^@$8n0|p# z5|Yk7vyUXozez1lRNU~)7LQFkV0I*b=!UsQMz-YD0&&>8pJQlT!CvoaQK45tLBDUm zNW9^lD3{$2$O^vm$JBsbeB7MQ6hV8(@7FyiDJxLgfCOYOAsQG;tRMKGX<>0LDB`s2@@Qtlo`+6zsE-?h)wtWqc(m= zcpJ{3oI^z85FWxnYc=be1WtH&*yb4OYHVx38DgL(+3_h6|4XNrCa!AzvG`ZVMJy_UU721u>K$2V17Dh7Z46)P|h;MqxrWmuq{UC;RLtC5x@t!a0+lg#vn;b z8&A9Mb*ntt57CFt6whSEHYg+KiW`?d$VFo(xUABT)3HVE)Jy5Rs+z5ruPkL5uU}2} zkV@9nVK5{2hE+V)d<=Y0qrctGm^m-V2^0L2^e%+g{P4aoSsVmJ*{{(5fad?uGcuz8 zJkY)5U44~Ko*v3BlWv;@NJt?{qNMVBS5$(;YMhMTxo#5{;?Em~$%P`>tkUGm4#{2o zMFVOMF$(OGVMf%d#B7f|RVu&Oy{Xho>fk=omDneMO)uIz!3uAFCv-$qn$+~>sOopu zQ$U7|ZeNy@TP`kov`2t)HVmDYTwic5hgSI!MG@Axm67lO$qUaRk6#@lc(2DJm={sixyAdNSME={cUe5-hFF^imA&tIl?KE(RgVlzWcK3NY}8hMb@g> zh`um7cGk(-sH7Ai-KG~w*i%bbO$S-`zsQGu_$2gFaw#F0^aP-kT2&DWNe?>+hPSN~68;!+W%@u+Bnj`2n`X#;S4fM}F);;`vkzi_-`k~G`-S(E0jBETf> z1{26YLdV1fb@-tXN-TfiZlraKVkBQ(+OrOhapHjzVdbTI1~P`x+D&Ix z(M@8+xl*m$m53j8t!FW!(n!O+dTG<8<7UJPiC-$eLYHGSXy1-D^zRN#vjFv8-*_$KbHSfBqCt_R!f&f0G1=4RIz-heQCugOfD{=&BWu z!nMAPpF7Dx!jmB1J zm?VA3*550eP_%uiOMS3D{{#KzFGfDAn0!fMJHE)IzfI_is-E^Kyh+KVB<_Xs6-q3l zmTPdoRruGP8GvE?>4eh0Nx8C0z=g}D&(WnT*;=^H{;l)f#7w%86i|ExqW zRF9M7W?%VtNr7=IqCPL~CN)Ng*%&Sxm8>g9=P$L*0i;Q;Q3fJI>Oi&Edj=4NI2Z}^ zh%e|~V6dY{@+0;PRopm~(Zs!roat2L41c_~!Gkw-&Hj-!JH6NVrOXQK^bH9EX8h~2 zHOtu#K;Fly*kU22snCZSm8~cdKp>Ngpy%-w-LZ_|Gm=yRAmki^KFMfwRJ;2fDbBK9 z5~QD-Lc|KPV|jp|rRH^cfDS7))jFoGRlIPkwk$<`y)Dzeb<0QR;inDZh9}OZXG9!{ zIp#SJk}1fZRQIK!(#lB2kVHxQ6~K6-uD4OdSdBgujR=Zsl!`(XTTJ=?s~1$XM>E8Y zlf_u6+_<*O3clMjBA9J=SXR94;i1V9EzH**^V_+N82D#^5Oj)nD8%c+{?<0M6WGNA zW?g<~v}WHxWeES{wOahDZu=LLl4Hg{skVJeskvAB&X#{lWA>XOhhTd_CFSF;;t4Ib z1LyDEKZRpMEbbrCkfMJC%dpRUV(Hv3f4`q5xBpA(1|l{M*9%2FlhE0-v(B#As8bC! z8ECOvjn77%p^vf>Yhn$V$9}$@tX$52-Fxt`bEYv13H$jQcIh#PP1RCC2wXZidwY5v zE+}xh@3h#}E`c3D0P3MKt2d1Qy=d9PTPdKSt%a-+Q|*BO=g;%^lnid|)l_m3;?C=@$+5|Fy3>w6UhL9A`h{N#Tfrs|$v3y(nxM{!HYNkp zdEO*ZIMn^Y?KfiAr9yYAY4m5=10c_31 zH%$OuGhRNuVrg6C3x-XX7v%4K#3tbbmqb7PQy-x(3^5|-`GWF|Ed*w;ap^Z*Yh4(u z*jLyO-dw9X`Mdc{yC{EY@<`u7wJBl|IGE3i-(emkdQ(9GbL~Kn*VH zart27O7a8dn>Y8^Y`FYI?085&RM*}mIo|7`2uG!G+RGrvz^0lcJVkxCzWkZ2I7F&{ zgSxg~BY!Qi{5e|mQ#~2qdPV`ze}_(+m8V{MkWtlivDX!c`b-Ms$!1pQos5Uo3Gq(r zYXnW&ztU^dh-j+0Nfq*HUe90cOlGi_lFAXKOMUdw6P92y-RgIY={KH*0NY_C2?V(( zPB82mraBWbi%(hwlG*14fro)rfh=sRep3dJ z_2$*E<#LruUjv{x5qG^_?*$$T(a(6?!h!y?q)*~EcdCTq-#S=0@SGmg>5~6tVut@H zmSG&YB1r)G_}cmF;-5YUfa(#T+mp$-5dn)H6I;=8L>xCrL2w;YnARg}S{tPHOZ@Wm zQw>2t_eI}d!MZCCb)PG{{ys7A8qq7rJ|=f?ufX%>t(>v_pShSyVrnV^&iak zi*a9S$Q-hgWU^|qaW4MN0YvNyCUrakB0C{pRITGKXI(9uP;8|0U;hJNOG{9+!rvev zp#B{jzh9QZ3USA)dUK2Qwhm|G7uB1(;);z+0=Xtz7)^GxsOLD+V@4iE4I0SZsIknH zII8_j{fUg1t-Gi&1&b5ulRlINi26xug}B!8JI>)i@-;u-FW)tJtqqJ(TU>*xO|MtX zjI-xHz^$^$IH35*Q!vm0ZgsYFgIJ33%FM7=X%btAhy3su(9W+}@>qN4V6U@!%}nVv z+#WnK*ok1(V4K|U81V1y#bCO)BtQC}Ak{=-x~|P*ZcgYtOe4bEj587{BNW6h{LH?`0)hqkR&DOD7vv8q00F zpC+?O0wUgvu5L@n-q*~7&&2rvun9Z|e6&9o*h8R7A8nCbb*q&K(p~6&GU;^Kbx&MR z{o#g((pS()hqk{f^>tjp2z-dEp6vkw3|kB4EPP(idLI|aiV>}xdP(=d!`OcDx!@}( z^Ro-!fjN{bu_i!n*c0B`oY=OvAQ+&CK7R5;uabz12GqT++FD#NDkpNnv7S=FE51_cpr^2hTt>@BW2S&QzsU*~q)u+!)Q|K2aWL^zVV7fUx3hFo-y$*jXbHtxpNo%}JMehJDKk7qQrYIGx@@T7AYP0(-?};nYi#!Ev=XK#--zg_}c++fukNdMBO4>`|3ZpLlW3=KZ2UbAq% zR%PNso{H0<9$uwrJ^=hq>D%0F~i5 zpGTL}^;xoZrQ0@_5eQK#c2r)KqFT^V9Wq)sxJlnv^y*nrl0at)aw;e|3a@2-+0R3x zw){a~F))a}98zxT5Kwa4_)vd5)@sF?a&+TMfrYh%00E~r&&SI)LG_u3h`OYGO(aKn zMv$ceLFHcoGA`gGnU@-r|v4Jdg` zDQt--ps$95bba$8`^qqOpzFl9v9W<4Int_o@;nTTReQ5s{%R1 zVk+m^ET(0zpn8*sQDwU#I1Z6*GoY&(L%wUAtxT+h0a#0MDF1ZK_O1P%q=JNaE` zPSvZpUgE!l|6o%Foa?$l)SG)LuP*xgb)hWuM!5XFaUE6Qe$Og)nK|&afvJi-SYfDzS6`Bgq%in5og~Txk@npFTz_#h0vD+!VAnU!!b|+V61|`}rSCdP>L; z+sD%*7;)-6A)?aBi#B4SQCDP26*ux3SN!&&Tfg`r2j@e!hLbJq)XzJ#qmJCJGR#C8 ze_?uio{WvyqV;u>tqGvc*8iJ)mFJ;`lu-Nzp8}EZX;-N15o{DWUiA)O+uo+RfoUzA zrG=;Kio|-J{!sBgT89pE!FT2Q>XYjw*_&Cg&=h3KeP|3zqZF#8duEdH4t_fL))=25 z#mb5EPp+$7z9v0hbx8e%rex6nwX9w>O39BD@q@6Il7gy7P6(p!V!;3PoXVpqbtP7z zOwBpV_plh%#YgtMveS+805L^V0;Q2^$XZm>yLn#q3A&M2s_J_(713Z)xr?#8s>sIS zeYTaG-AwRfieP&NAa2i=al(Jt#}?I#idRbw&C6daNpoT@X??C`&diddvMR?#Cbk1F-ds#R_u9`^Q6 z#Z=~IwGu*u9U9V*7RCc5QT{GKp0HY7N*>`9Ug%Bs*9N1NfI_t@9bN_qGd9v7HV$-y zHYT*br(()!`pTnV%0L{gw=1CJukQ~vD}VW~7`7C8ID=zJ1@2a$nMk!SYjKZkcH zWz`dyk%v1Ps0I&%WJ{(<*|rvGD8Vb~(0=WHmC}{YIE1BI!y=wHv66QhW&-*fA#|4gUYyLwnL$({ zfJ1{l3yoZJYQ{b_4=>Cx60Gc1!oOCU9ktSW;K2){sI+U)dQAu_gzA82Hdud|sm3wM zso8n=*%hshEL(~dg(hpFEWgZx@Qnrs7CU;jS}iw%z!seTMvSH4BkifKWN<~+Crd7E z38o^cwCHr3s{zN^!x>?RsyJgANF&W~3X5F9l6>zobPn9DA&cq;ZX6NqFmsHWeFAUv z4JZ;%P=fjS@Gj`pIsE0Km|%NCf4o7LBl4 zJHvUhe_M6MoU>P&ftWZi0f1si7gU&iq)66)s3bTt&fe$43H1F-zC$|7@mj906no3Z zV58@1iZNNIAX$SbpLY}0ofx(WM8!OH9Kj@yj|4_)%AVfixp8uROuixT-{^@kHwKd81az5R>B4q8(yRSu#{&;qr1{lr>0KarPv&`jQ;MCjODIS5@!SI% z4d>YN3-cr`aJs~(-bUaoRPUj63?Z@UWAuvE&~ zI=t}ji@s0jq1IlZr;b=R9HjM6&E=a8@zr#P1@OOUJ$$~o_kvJTUxQ)44XLiWg#hcs z_>*;TNR8%&B8jA#G=Yqm%arGtMd_oU!}3*V!{~A%X_*LWpT|VTA?#1se$_F{?9f^` z8RTJKZx2^bfzz(=9<0w@@%^s3MD`4@uONh^5K4foRpMg03yY>h%Jf5{Re!AOkVa_z zd)4Pp9I^ddUzxLskpDn;WkP9|DF^1K^S7YMI2c=je5~er zt;tdi?!k|ap4_V7R5+$u%pzsLf8~Kj7+D({&?n$j9G!?uCR=I04hw20)wy|+#l5Z8 zOz)Cg-AbPItLQ%=oPwF9J}K9?4y@ztZd%*6GGBF#E^JFZO7O@?A;eG#BM`_#`G#XwPFDehL`N0fZ|<_*LUUr3 zc;l0Dr#lw^o|v~>(S6D#!|3K{WtXD4QQjNBnY1CNTblrYgV?&qd)Aba-ziZ}8V{)8 zZ0ZsC1>KP1!pyS$BP0gLOxadJx))_SyADpYWe=aywOUtFVYRS?%p7*L6bVT~hu`p; z^0LQ&Lyl_JC7|AzwP42eQey%oB`W-0P5#*I?ArM!+@3jwAhxm?&I67!<}>SxJ#Q#| z)*w{(!NvH9SmJ(P(U{pP`O5YSe4>GJ7Q-e$fFg`*2|FViO_+W(9&}I>X+YcxvOb$S zCSuncF}+z97}$6rg*qRQdk#8VZ&P3)kQSNJYRd*i{h6swhmFSZ9U~vb_G2)WA3`p; z0e(cx*$j}4Z-b2jVVhc468&}#r&M)<8?W}y1w_pLit*_;q#|LqD|+V&)RMP~7KgO# z2%v3=cFO5n)gqAw&6hp3yqml|?EZ5W@$i2TqRQI_E1&aUnH2Dy20=~&Y;S=>E6*!? zL!T~haIgNB!rkuu&m`^BGBD|(aKQ3xb6M+EFMtxGWYzWjVT9_tIO!o}SI5gUI1i}6 zRIPHywLwDOfv7!HLR@irE4HCVDN*(-U+W#)|Cer{&Bdqby_$y1zx2JC3oe`|W7Yw; z3Y+Da_e9ry)-f5{7?X){w+H@QRkAb*uVqUN>5f#3oFqhM&@!FrB4m5r zMCk9!>CgIVesSJz{S2}Q49YMem{&EVYuFoJR1RIT&+}8c!14LKS2C)t+c;@n33P8ns9O}7Xa z7XZPYS=_~DU?aBsRBqr6Hgfgc!(=iY$2XYXrT5_S3_X8aKky_=IlH|6*Qm~S_4(lB zs*r8saQHP3;taIQdQ3dV5j`kumNZ&d82qFx=0EVmEtz9Kh*JXjk3M!d=?HYbj|7NS zxb3JHen~$9xPXVQ%nksSf8~%whfNu6+X+g`;!r|&{kABwvVL9kQaNCP%*AqXxSN>z z()qp$4nMHY|2vZ6Flu`cP(_E<;F!V4sqpIz5-PRXVO+2cAoE*_s@3}*@#-4d*30NP z4MPStgAi0R$kr^nWD+=$lYtFZTu@3`Qc&$UVWI#Vx^giPqyAGg&>s$awR)NzQ z--aR;xJ*Sj#BTw*R?UTLm1)-Vtl`P*2uwUiEs_&{9j7Y_t8@6)aaJK2N#+;Hm-t|S z_HUar>MjLSyt=i?&bfx+X2T0N7>+YrE;z}wyV$3a=alX)6HGP;nTLq4>g!jB$}5J( zCE*}h?+3p8+e7SWx`^3l&s)W^5}~?_%d467$nPOYK38Q3tE^w<#$w!k{)B=$=<*D0 zx&+@Mz{sCZ1Oaah9B}9>0YIF$%pfonb9+y-D^*4St2Qc_Siv?yKWMr2r_>mX(UrOK zkP1tmouGuwHZy1(v$hCgjL{x~W< zCX(SkLPFRnWi5YI)6*iV<>0s{BS58kpO+a&x!}}!rNuYnD2UyF7632YUl2+m^M}kz zgFS2U-H6VpHc|$m14;#k^zN4jMoye-`SpMqd*{RxOzSPLw#~(TU!gQscOkzc9ndoK z_jwFBEiF}azu1gzP}})B%hMP{9}1S@ zN)p_|58xHUxK!hIJ|%0+dDV-ODf$LTLz4z=!ZuA?4rD`8-~F5^HK8^-xRPn|^F;hz zb9X6`DGf*P zzr3^l$=`i9c;D=3@D8tGW8=rrw^5p#E(}Os`^)@<%&D$%mTK8Oct{k+FmQ zvl~=pe9U16DXILzN=?~uIly-F#@_y4u9C-7Px{X1SVJ?7Pkqi{MLs3#^?eg?;QXg2 zVvm};V=Hnfr{qm;a}T1P~|n)mf0$SJ6CdIdNLUkXf1<~ zq-nW!_l;m*Ny(7VJsFmo&rjX}3=$8jv7Acge{9M`DePr-ZGnKU0Pa&-0q*SkzUd=3CC-DYv5D6UH&47N9nJRhx?f^<-Ll;9FP-$P3-_u8 zYYzX8HUqqcK`-rm6y>+U)D$W?f@JZw`vAtC0&4MGNx9ns;N??$b5kfMr!K0Srv8ki zA2LfH%-iIL_Js=z-uNg6fr@k2V{%Q{0--M&jclh1bBkhf@*q=l-`xeVLy#}fDg~)2 zg3|bR9sy~f$x=*uU9?Et)A&AYI`e|c;UrTBla)|5MLLB_ao`B49+n~1)D$HsR)%yY z*yH_xC`&g{nhD@{LcPT9U44;+0~m_r(kcCoGKvVt%dGX*+4YA@@)zT`!xk&8`)|`W zhbiB;Z;K7(j5>3%Fsj|CI<&++Vh)2u%FB(?0ARXnQ)%xzQIMlsBr{dw;rcGoX@Ihn z`$no5{ouc2eML!yd`SULF-am+vB3HGUtYqxiC6BR+yrOdDk{IYzPD#Lfp6Z0(N8Ui zSxwp@d_3WFrWn9$?Hhb3e<6LqQ;g2%3!q)P$dl#hNK4hSP_g#Jt@|+xCj$y9 z7T-NG*1Q$&feMu7t5a$aN1{M36otC;TExD|7rSM)~n)F?Nlh~S}4y~mk#Dl1=*U`wi6UBO0Q1}kugmLQE>180yfhw2c`DssWdId-FcvfV%n1qqAOuX2RIV%xRa$Dv?^YLT8W&=wmkt$VnZT>b zuL}uz$VxR$kL7&pm$!9)#h6#L&s*w6$!iR~7p)~Y*ZgI~i1G($C)?0g#f*?|i{wt16i9zTA zfb;5J@;M+vkRER!p4vjdWeB&ya>%R2vhB?OQFJE$O#goX|LkBJ!`yT2a?L%rB+WfX zB}qaxXGlVlD{Zd1k2ykO?pusvmW<^4`8mC|O<+5ncTOb3w+v+`MMH6*&+Dm% z^1^))h*sD1?KgzQ*}S6WRBDB=n+C6;Sh7t>%V==%!Q(VJ%su#KstF;F&{2N)Xl;FC ze^76OiMwdaSH1={NlLY8(E`796;0Wn=BLKHXJuYgc4Q>YijuBOf$-1UB?U3>pzc{c zN-OkCP~G?~>3nd@d4N-Ej)tGPt%s29>?r=5H| zodRp8EILfTE}c5_bLXQlNS$zk+0DYvC_$0 zNncSJG+YKpcbe=B!_8$OX6Gfwwiry77V$G6B!t*1PCn?!?+s}ky{WX^ zmTHgSh&JIrz;OFd)e;(_@Rih4@TB``^}SVwaY7ib}s~W)fWUKolW^A^90dUeYH$Bq7EAbD7W$B1i$z z8B@+FnoZu}|FM%!gerc6@*^)7ziH<8El&#gcPp!+o^#dVVmRVMpx_;2I4nu&=+W8M zl!Kw6xxIoSnTD2$l#?UaAFhC48;kZuM&xO6c~?c$^`o=wCNwh7_8cQJ=HV})d^Qhl zl0Q5As&u3%3*Ke0+^Z?L{XF>waP=e1Kc>QCM-%t5^%wj^@?&z=bvq(hb&^+}1MOu+ zF$z){!@re9NJ5+pdSNGe5{7B0ON;tNbH8YaIC{IH^x^M=QBu1Q;@%{|9ym0>V3I)2 zVjy}Euwe~Ci-ORXxeG4+KM|gVu<#Aw?(|JI(`A}`ftLxEMAB1dKX(5fM{2XiRkTMN zt~H%>&nTFM7fG7*ij*BvLDgmfgmfV4y|vIjY{Mq;AgtU#giaLFx0ZRDW^B|SlD(0S ztrRX7i9wX*3`PoyOP;egZBudg6JEbvMg4%QKbtgt!zr~s^P$1LjiF3@CKkP3dY{Vc zT=~Esl|J1ln(Csq;9pPdIx?owP1;~gF4hl!lAaeGxknTwm0^hwGXBWrfK(8q3|>}K z(lePee!9GZmj&4=jM*j>mi;AAM(S_==~5mP1gF7z+oVhajqqI(S17Rk93^8k@$C}zdi|M&{O_c*$ovL^D?cf6us z=DT-}MXF5Clbe+^SF3-Wp)w)FJl5WOJXM=Tq?MC~*YghM+D1gA%bW)_V*%IF!v1sR zOV5}FuhYNDy>TfyThKLfFX3#mHtWByX0QP%dniU!sm)fDi7wCs$ryn^opG82&RY+EN5H%PzP+(s%fQU@Two z7g@n)x2+S=Qh2`KhCIaOf?ntPMj^au$dpYi;p;f>S#Pw?#VXp%Ap^#Vf;IueTFdaR z22<2dsvJonWL@H}y=;<)%$R*rm~=*3R$YwS-q4OZ(_lsBtJq|uMSb9sVJ6)56w|3`oF zs)GY@2Vk_{y%euZ3gH~*Z0q^s($vN?Ks!my zl{EWMEo-92&Zs^mXgTW&_jb@?7LraB27dJ)ZfRu}=G(D5g|y$dkOwk#bO)n~GHj^= z#o|fBpR1HKU^{eU1Rya&IH45G+)m};GU8`C8)+RYE`Qv;SS6e{kiGd+c(Vg}mG22X zHIw@F7`fkWu|1#7odet~Np|M(49zO;O5Qk$X3z4r@?oWaRoR?*OL~t-j4Fm#3kuye z4FG52fJPQFVB=1{|XGTRfD_sH3R+!K{)A@k=t|-Rpk7L=6flz^AayA zrVN(}TSs$Dw+U<)E|-q-cyS(8jIdtB5&CObnOCs^IBPNz2=36+isKQLOZ82FB{g>; zNJ6oW`N0f4fKb00C*)TOqo(#Gut9KCXVzEP`EJJ9Gqv`J4>{gGi$kyXgwtt5hd!00 zqFOUXOqL2|`HQ@gg_uv~bOGFKgOnGpp%uIS;WQ-dE~QYwT@guSinDI;biz}Yh#Ar( zG1puPB`>~RC0xrIqBi@kbALCEA&7<)SNT2@R7MmD^Wr{s;wKe{2a@~lB0$P#g=29B z}G!DNpzqGQFBgY)fslMfAsUo){$c)gK{W^g@Ri1`?E9-}0?YQtyWiodX zl~Io}HqTW~*Hsxl9`Uw6ybXwx!&z_q;Ew;qyiki}Q4HFB0{1-Ab&JPZ{?>LXz%;2` zsY@rq(93EI&iz#$V$Tl-G78dlpT(S0;$svbRbObd=r1?KE1STM%?3+vC_>7eR43l1MVU?8<3?`da4NJw_iWvlDi7I~RG7 zSwQ9PMGQ52a3jFSB@DVwbPKXtQI_ZkiKo>LegNRSb8>P5R@=uj7a(dO0}s}5ei&Re zaT(m!*{Hr{|A2Isk461t{Cnx5;i=R) zKc#69ueAgJT+YrcKW&y@h4_dNxPu5vV6Efhpv z?U!IjKI&64{PAIZmqCXIX&CE^SHbEAjMnYah*a3=1{$!C7;?Ekw7 zV0R|bJSX*Hj$$WCI+3Vv5a2zNf)XPC0MT(|d+qmoKe8<4g(&OX$7JiCU{ACdpoRW{ zo>Whq|YXgyK`deMvdf89j-JM(0m&%=2?%O>mPqU z^G$mtw{v~r{4tpryB(n{$bY-vt3V!PN)i%{fcCt*!WdAfa{?wBPf}*#(g?_-x6kcS zC>~hV@du%c3S!sP2S+a~(uiW;qsH0nuZrt1i&Hmkt4|)ktPPR{-guG^r$(?>zaHWu z1f%Vhg+ME-*E(K|EPsW?gV;d^1g})W=nJiBfP~oZ(m9qgP^H4QG0d#yF@Ua>!s_UTjnGH2qSeP}JBL^aiN4w%~9d{r_f zVo7iIo1Wwb(XKj0W0P%W*qY;`F2zmO_5P_Nja@BiB}08#^g1F_Z<_eb;dlxF8!sqS z9aHJr1b7^nU~C9agO2jhffzUa^O*8`&1Yy~zLKHBkJ2)WP<9yzE^$z!I<&jI4j}#Z z+S{|sdxliWypA`XQqb`H(tCnGIeAj$=Qd-)lV~mw%@;4(6H`%1rbG#FbSqMHQdG12dAzUrT>wiEL0BakINN0tob zN5^B~?(2U6_N*2UeKASO8nEUerGjx;^0l%4b+cEcJ2Y28FO|mX(;ud2sYNTO(7+I# zTVozs7sUIccjcZrDZi6fZS}}iCxgBv*H}H=&!piFFIOtrEB(5RVMB_z=zzz3bP1!v zM6!*sMLwto95?jd0TdA^jo*;kZN)Owy7^%!3-$MWTA1UzVg_O?1wvjVano7ndJ{gV zQ+XohRk-Y{u^;B!dm?zKysyJw-w|0*RUdCD*r6Gj-jEvH8L9*00VDn|!J^&o$`QSL zQI!(Mk1AABvlI}Ditj_N-__<1xnJM$R^TOF7zudHBop=GLvv(uB+YH?f$(wmcwShz z1Fyq9(6Pq8BB4l&TP<+;rzU>@*`J`H+FguyBN%HYeRNcrfJKOG=V>vo@)ml?HhOF3 zkhy;hjro$0-Zi(hC6A(i-E{HUi_fIb9=3{H!z9##RY_u1Z1_GVZa^rOOxa<~E=W}b z3CGgx)Gb(z`fN#%nx*N_W7K`CCRUk}!d_8+(*6mmL5XDVw&U>RUo3Jf@8Pyc`cO)j z%(z#qs#f=x3j7;VML`I^qYv0MobOEhz|HzB_$wIc9mk+55^Ha2XX_8U`bn*bxpGiD z?)ye6F5w7`WysC$JBL~M0lB@%bA_z35rIrV)2aoC-mJfBmbjFT53}Xzgi?2^uDgcj zUYPa$GVA(nnAA(7w~I=tt_r`w#NhWJp?k-%nrWk%Yhgw+bqVPSbqR%`zirMsUeI(qvV(t`1dYRupFSvjtSs$zz-&E|s!z%-m)nZ0uU?(V^OJn8Z9V zO{XAfMZ!kE8d{*ZylRJ-Svt(VD>p_UPWoE*1{{-=bQ9kq?&v-z zZKKEKBC=~*l;-=V(zBBrXu-?TJh-qQ^zI7Fp-ZdgWUW{t*Hp77T0zb#T;jRhZ*uvM z3T#|(tSAo2aQTRSxhP-(r>LuNSrB4z5?@#P+yS-i9b>UvCUzU zoVjXPVU(_YbQ};7+dXOzjq{bhNflXhV!RMPR53?;GA-xEsDFE&O)R=&BYBi;*heH0 zvn*RRY{_VDYk(LofS+|rFK@*9q`37jdqCL*qOzQ?$$xz$XQ*Ho1N#m2c{6Lvx_nB} zV5YfXFl1z`@1)k#;fHxq2R9h8#W&;6T8Ics=6>zf*5=k>>VuUnp05r7j_aupX{uaR zsUVHGOEFtHaZ&e|W)?T~_1-C&MG@%Kw?sFdbuPuz&RwED;geQDTc>eS zhbpK3rrRJ#Y{vkotgz6E==Lwn`zx1AcMd+#%m%R*?7o*3>g4p^dO7R1yr$C}#|Rk# zbm~Nr+Xf!OmdfNR9kT?^sPwd;_y|w z?S1tykMMiBJXZI6!s~aZo}XuWT!J-}fNDHX34=?F=_njW7A*4zqwfccM1t8A zq^{ZGa0x`>_K6*l4E{UJLPQ|dL5XDY#UMv7uK(EPL!x{bS9InJ=Odel-=PDijM}Os*qsPn%S<4XoCWuo4W$8i4hS#3YNSF0UEzNv- zFA1_KA0=3-$F9wIEa!r$N2??+^pRdI9h{8A)GQlmWOB1nA)3Sc`5xXd@b9cxElkte z2o9xysB{DesI>f5_bR|LY~nn5-cab!0mp8Zv`pEwj8}P4Vh`37mF^L5tkOqaHVitE z6zc7)I^h2k5IU7IDvu0WG#$O{w+YDZf}z!z;{%3u@kh)4z70~q#u^ctCM*;A86K#i zSQ40np~z#*71J!Ks1*0LDLdwT7gK#)p{2HmW$>H zWkh4-C*m1SW7Q6-C-n%X55OLif6VMb7Q=G#3!mbY4c5?Y1getSu%hhW_%Ckv%$0R% zq#K)#iD0TppvjUD{JwPWGL|I?JSRSVK0vCf1xR?Q z0k8^u|Co8Ky&ulJ&kZzKec9X)GoUcHye3zgpg2u|6hfa^||!*$!&X(S)`qLA3%HoFvyz*1gVILI#hb;S8ZTN)fNu-NxdxTwg|MDw2(rWMO)`p4wtaP)Uk(@83R zvby_R_#+Bg;jraK=&P5LD{!#bwrncd*M({;y9|J5Zr!`aU!HRQHB!Y>B6@<@6A+8_ zXapF+SP-Z4zW3YC!_Mc6m@K=}CwwsozE^s&Hk=o9982VD?LH=!a(-an ztj+GCC)K8(N~)fbyJVv-+p_$0H$Se^^wO+dtF?1MC(iP>kIXWtKGW?j@Ons@l!#Lq_fO3O1OQa(aAE_*VVt7xXg_* zUas|0^QB?Ye-*sWA^3R$%R{bs@hgb?PC(xf2MO+dmP&+e1+&O(`QvKH6E3gnuP!}3 z-i!mw?vde(npF6+J~=Wv#J$gL89sPJ_2+S0l7g&{sRvgSr1pyYk8928-dy~c>JU5d z>FO&*{XTL!2BMtf=N{3UYydsp9pdEmo@%UKRB*j^P!TS$stOP}~PFxgh_ zAq_~dv`;Diy>?I;c9M&HYSai!aA z`BPPhqRDncN^yg@%mw$iQYM{Ji|4t4vwmkhFb)5p9y;&jX0Ca#iN{r$qw5zgnLG?t zaHh&Q)SN>|AWOP@G+DT#8Vb@ucP&^)1iO-rLLr1PzT)*0ZWh(QZCr-%zx@odoRpQN z%fH9?giD&#OGVU!`e&iUp&p7cVWZ?)xi>SUZ{hit0vQ<`2LQ8vzOh=0<&i*iq&&># zg!;rNkuqp8d?9J~m)WqDnapAHlJx6xm(A+*OMh7+)F3vODVOxHuu+)@gG4Ke`>jJSy#?r`+j4?Y-3}WX{#fOTsBzu zmp(~_mTdVD`>^Alz86ki8Ln$I^6;lv7}zxXT;wJ+dLNaG*JF7azqNm5z}2UIc9s0z z+!{bhRZJ-L{`~*^Nefvz^z{f;8VVRj^Sw{5xWv2l^Yt4q8CkYJ8OI#H7nWd9y=-tE zS)oy-uE^l=+DeN&mJy@9{>R)&`T1Y$G)jdf0ycYV3;NvOH~rvabn~){eY2N*U0}-q z4jWII%R0c={oIu26S%Wz#^rPEl2EdTKg(KDhPaOf4sjo$yzP(+tlhif{XE74t!#$7 zM&*a%Od*~w7!D@m!X^gBn;8WoPiM-m!e@{L`2H!5_ z-ZKFNaI-xNakAvY$-!pUX^!vH!J)?~H-pV=7Aa8cwUFMslk$5C3W08bX-R^A`|X4d zW38Z>lqQ9r4wtpxs$ZHdHdn@MJ`bko86S_K>QLkMx-EPM+u{Z^m3>s}CnC=b4=T86 zmP13wf90W$335qODr-IEOauOS>X3=5_xBbQC?phg^GRvuA{>cC zA)qDC&*Z#Z|H=iX)7ZYoP$0&N4WQsSBv;JPJD~!!G)@q1{O-!FsE6}kiel-wAPPxj zKjH|RmPG{f{E9YyHyxy_w)g7>na$}lD~rLvAZ+H(88q-KW|*e=eG$cLmTi3gOBR3@ z;O6YGo(Ojq{O1sVw1#~B*SDX4yXfVMGy~B;#|ln)eyJJTfNB4#VEq zD52WRYv4J0JdP1`48sQfyxBz4wu=Dl{7u2i7Y|Tebe`bd1Kfw5&$$(Ve?I8Whlu4i zthFz07_fgKR!s*eLN!>bjx*Bo;+u@SD$ki_+&Eu}h3n>m2gWGKqG`~7AhLnDs1!_M zIT}+FE(hhXrx-Z)3$IoLR%?;Fm87_|*V&{(vHg*<=E&<$C!YYWtxT`eK!ir zOX2TTqM8N8=)pGjzG1H*dE%b3O!<2>?wgipl807&Q|YNVXhex(Wd0pG+k+6PPm_8h zLsMaaZx}0n_0!Z~^IVey2}HGlXf?gN(fZ?;eeRYnvWUDVVD%o+WI(5{VBA({7K#@Z z7J)v<>HYi!;8ocy0P=2!RI2EXg@Y6nKl#vcfg`^w-;C}2%`9!UdFTcx9s2vnQF;2{ zrWMsDsFjx4`-#tvjW*zqyNWmnlc~A759t|+r?xs#Ma#=IcfTeF07K85Dr=~=9S}TE z==O~#&Yj5jE%sh5HCU^?$>8NwV$kq#@;Z)nI&ZNy=3J0@T;OS_qBvI*3+e|C1 zMZ7-^8lxFK40FaZdSn1LU+>o&cQ5fUACbb8e>82{q|Yp{ZaHZ|L5sI*V?McUVNH9o zsr)PJu&P)5kR`K7C?C=cof1n0(Uz^pvFD5ZyiJe5Yt&Qt81 ze@ml66KGUbZeWrRq+m2Fir;nOMAoTaymmn>5?5K4FtrvP!$KjudFxK%E$p5cl=J*S zAY8CXJ0^O|Mg>WdO{$GvH{_Qo?YI;gF*?u4~Gc=Xgc? zHUn&B<2CAMqibr$0YKskxxOmksAYnnc-=$gjqq4ve`{do?J8U<{H}39t>+}-hMO|$ zTgB6sqwf&bV5$-4L_iKQ)bazn5+1^T>gUz5+228Yjjj4xKaVEiLvfokt5&klamhTO z6IBEEfEG!JC>$L4jLV*h<33J1>z?+3m?*X)s)!I=!&}IkkcAUnXCDqY$S&+uEg}mT zBZoj%1H*vDwDr*Pb*wrPbX%8lZA35w7&GD`3T{_g%{yb)&>f`mQBVe66N^LS9QAfN zUa`F;BU>4fskzBbo|Vwc7Rf3I2?IYD{uD{YtE*1!&62I>yenQ_k$^%IvlnjMuq|j3 ze_#L=TAs!uYKIC;nK5bQPxTdutV4w64CMW0+tm$M0pH806Mnr%FH_=A%>HbA(F#4J zm|&p|K<}T>QU%HGm7~liKQrdmQx(SVR;}0_Nt*lbmSWw$-HQpUdZ|4B!6l6otB}Kd zy(HPywVO@f2t^3iHg#n{FcxPt0Gr(R-w}x|rYZbjtn&kLFB>XiDWDCPPUSC!KlO9C zPCKUGE=&k`r(r0WX5IJ0dSx<|c74HmsxCz*K`3+rjEYEKJ!Cs-(eQE`TK>ViC8=WX zTE^7!AuIF;jkqlY2t|OKz%iPZnsv<{?@lLuEUjxo*Ni@7#o;&nu8oer0{VzXi@2{D zWDy=ZP3s>U&MBa0-7!7g!aDQ#fu0XKUPFGZk%#m{H!ZZ>rl^Hgbm;MoG`qJns7Tj{ zuh6+xc=mCn{AjEe62&paZ5l{St(cKbgMrC#&38#2n? z$IqQXEOv3xdV#RrcmYi%%p#|k`?I*fYC0i78I@H@0XxX86J-Pk z-Xv;HQr`=g-z}GsW|maqUeX%$3}C2r-9h3F5Do`vw#S302CyUaSsHL;7);o9Q5w9NnIet>mg(ITjXqUr0j2YXZ%g$@2VpCkFYt$pf>|eSfiABe;huaWP~brc^fxiLvrMPUJuYUo5 zdVSt$W@!J@u*?sKcFw8GMxB1_FJFqTs9cWZ-RMx>k*NdvOI^acn7B?i5^A@y7QWT7XGn8!#hhtz5&iJbKSU)YQh-52z6(7bBIMSYA_5Q z!n&$VWAh}-=_uF6!^oiw@>R}xKR{*54}&|hqWLzw)DOC7K)Bg@@!d!*IPR_CZ-pa~ z%Z;+ud@HU+zN{1jfY%h7J`4wZzo$^*3KxGV@5%}AG%9Io$W!By)+X}3HppNjSPQ(H z9l+!Pw}zw=WOC|sq$6&^*sp*PX{>`U4<#m_&4E^^ywq2@ zojv7B3(|$Z#J3;HGIO$%8qp)YG-7clx>D+DYf9E?oz}Xzt$3?_J<8yY5hX6;?2WXu zMn+jYKsZc)`7*p9O3+;%HCwDjz6SFR6F9ss9O<10G9pCfN>>J>+$oj7u&xV`i>gEz zaAkok@swW{wL?;y^|{XRnOeFX6+a9_P>!7yz&D6;CZo#vutnD;3 zRKGGD)f+k-^(f6gTD)a9udP3Q7(uJ$l?WDLG+YIO6En4YW^<0MQV@ZL=?Z3Z>QY2X+!d*-&mS<43i@&(yG~*6H}KQwb~~OJfEPxM z#5&)k*#zO0+)E1XSs2;cYC_T%ud(VH0cQsA@Nf<)fw$zG`w-@xf+RPo(XWdm)mE_4{0-8<;gBu7rAeS0jHr$s? zmyul`kQAz}D4SwT8<_tNREF!)pR!hx^c zhi^FH7X2zYeCS9{_H%R+t&^A5C;)`?PN?!pI)vfik%hhc)4t#MfU-BR&naQ8%aU1TCwg78s7rQJH3G!dVc*Org>^|nS2()RLf=&h zowGJ>sft;d54r-UhPP8pB6#utig8bnEgPwzxBRvAoVtY`mqOlgPr*p9%%Ew?Hl1H^ z=&9iw1J#SAEp@4=I#U*`EvTU5hgi+%UEA5{j+|4ltC`6o#_5HAuUi{n+r_C$+%U(R z&FD}dS^590Z8p>bKAW_)Q?va%?f1^SoLAZJod{B|?AdyVvhNh94qFOd!-=)%v<~aw}28MJCJ!_I;)X;y>0~b2BKk+ZAn2um! zA;OfX`6SA>hfdwO zqR4E^R8r-etY-Y^1!yfIR4zd>AFY;~k8+6V$GgM-XSq);G7in@@a)=x;U*qGz&K6z-pO@{&w4?|)5#(~55;nH0ll?N}Oj(M~Ze z&$(3c;?b-j$;k>z`2OL^24tBFFF7T1+z0+bGJO|nv$%jMWa^hCWgN0Z0o*{!N-}w+ z&>u86T#>#A;BZm1I0PQWFWrjhaNkXsbmNNp%i|xy>~qN9=1%tjy{SVpckwjdxKW1& zdEATS(Q`uI?j#$;B>L!bI^B$GdxIuMLg7hFGzwH80ZM6*j06p8YD?qdY6DDQ9Kob? z#Rci&4n#{&y|PJs@uc8YO?(gSkk6y8hV0In?z6)3?0%R&QVLkX`TEu z8iF=5g`?!mR~zO05PR~T--@)K-@B0=w4i)VT6@PqMpIj$Wq{xLr(Iu;Z4!WI9}t4- zth*rELO`zUm&UZ#qS>ut$?9AOWnPdrpoMR;|Cg`ap_f7urReFY*qkM^F>5|#eS{ZZ^}CcJe6G{?8Ikvdt|Rjp&F>nyvt zCIa8)pZvtnniov|m%SY6c=)VHGv529`z^|%K%lybFvPK&FRPb|o&7iV#|0^2z&jgL zh&$lxd%E;uKB+cb=@1}P@TlzT`|{z&ww!}pUf$HXvckzHYONtJ?wy(=!p^^WlnSCS zMuSnDT;ptD;^bxSZ(l)Z5xRl!Mjgb46owoQ=Rtp}G1dvNslEdTnf-o-q*Xq;EuSe^ z!x#6B2&oY$$YSi=U2!(ooA(%m@^?b|K2t$QD5!s_6BwSc~k4ayw_^V>Xb zYSEO2_4BPi3_07iG;EMnmx0>H&wbiBY+c`VjPW#5;Jt1UE3P+i=MBCNTQ&#}!VxS$PLw9&kExMb#BKCd7qbsyBQU)o-ORWIU z>i7`V#w50&+!>r@Ppx4CAd4N@xJh*gI)k1M`Flc|dn6+a?=)Nd_23|r)R>CFi+9V2 z^&M^_&l|o`d`24TsUv`jXUrSt9kU(e+@bU3}_ zZJPy#XL|VgrKR?y`Aef=kNx&c>Jnc}j1RkO@*6~kX4NVk6@WW@7C!tuQ^P*V>8|Hy z$1R)F?LbWXp&8hlaUl2sE$CY7_+Hv2A%=Z0t?1kt)B>`gK|pZsTHS31>n5O$Lxx9p zMu^cQZT&zdC$RS7K>#h3f8|I1Rtd)i1>;@5lWIRHB7m!l2^4qKaph%|8pNedM(FNE z4@X>)KNxy@%B=eyh+p#uzkK=$|KaKje6YbQHD6mZ`6BJ*Jo#El-#)t1Jn&5|u}T2s zzp-AKsc-iuKZy0tOCyip(yT)sekd=aT>QzD^?BVKEG^>6i=ZbuF1iK76}d^pv|~R@W4j_< zK*d0+eD7h{gd@NV#-SrVB6Ltbj|C8xF8>7|@r%q1N&bxMyq4=(&?J@;d-QJSK}r@g ztL6+Aoh>%K_GIy^=qWaTOFQ7%i6e(6arQmAxHv8Np%;5#&Q9dwl|{&392iUo*eD|B z6*T5Z$roQ~M<_J@F`JAM{;~fz#=MM5vKK+V4eXTWzi5y~#_)21PkcB4pb+3Bpuu>v zF2uvdIcwLCn_Gj>L4XL+_1oXyF-I@7;I!Xw{{T&T3!>0`e=b4ky*j*ZEx@0fz;b(` zG#`68q~rGI!z4QbzaZRYi|aapjoRt2sQB2%HdlL`3GI8s$m;jKwRQmEcy-4#(SB>)h5JSw zPAD;^9H&*AsAhdw2ZFVF_?cBYNzh@{;s9_`JC3(KS>lh%Vu3$7?sly4p_HdL#tON0@zfylz(c0hOvpX zMIBO1i3kTz#XLJZ&lg8+!F*R~xLv|5gs%)#?Y*d-MS%o=E)wd|fffp+tjeA!t!w$;nZNd52Ec$(`%Ak@1m zb`gu=cTx-ga)GFqV?NSSrq^%$$1%ox71mqtanzbIUR)fR!TL%Qo8ll0Eka>3OX^Wv z*T`0*>ti;74<|y4KjHVPK~}%v*JWyAgF+MVWV;#Q!`YdzI+~eVIXMqXN-sTKUb04; zSNjbv(J^$siLokM54f!`Da1u5FItK<(7>vY`^|If*Us05I3(Avk4`6H*J}}Q%${U% z(lVo~E9Tvz3+l#m+j^}r042r~GneY(dcm-95;gm#MJ)6g@a@n(R1;&5%D~#Cw#B?v zta_?UoBiE-^ECUEN6gF)Pr>GkphSuH&65*0BljnY*TAv!f^C7frxU$rRWf?EIIbid zcV%h9e`+NPwKlwTTMOh!p8f*^&U|h&u<}eu)I8QQ2T=;bNx%d+;c3=XiPFY!x?=Ty zbw*Kv8C3O|P@M9a^oZ*~wQfrb*XA=G>u}{XL0Criv>}`Z5L!IMD$Bick<&jN5*^>) zj$Iyf*zMs2dRFB;nvbRnegqP9&*;!sph-Cf0SsMUWj&%X+2k03EpktQv3H)*=GG$UHDAc0( zfs8#uea*y8Hj5R-+AX@n$#v*eS1$3dFrBTI6y#w=4g&qt#_Sex@aJsvjNN%K#U{$I zp1vpH)CQ86{H>uicSWF;+s1C^ec;A8MBr*zH|+jRkk_4K&7MB?V<&~w{f^wIhqSnO zjtGS*iGlFd0Z?{}CSc2eb$f$gc{{cpssWs(hrE)v$&Andi*5hiMI-5c zzUHp=uxDumB_J*DD%CmTho1$N6eWOPp|Jg)xYk7=1bDsnXC$2T@$4ZpJ%={AI4=B)ys zIDbyH5_C~Vn7(b~13TC-@Vq4;(jwuND!mn+5IoA7b#fWge0s=R;bTwPW*gc4@hLG$ zF91?*%yhhQD(4Y?ywJi(M)Fj_C#3;{1{MbcYL^+&l!Me2jy-A7avY zYmWO_7_Yl4(-_^x$HJlVZSPOs`LS1>w$lu>93tv>hX?Q%ZekM)pk=xHMJYUIZ!dz8 zR?D#;-49Ph^?y$7nn7GiIxA^=(*Be5UhA0@$e8hS!Fnr5E|5<I~N%@SuZm;qh$6+RiKz|J!rPK3SWheN{qRAX@tOK<;}3K;5;Q$<9JxnqyLC@1o&Q zz^wd!j`h(x0b|A-hR8y{1LpRRObTAtYTk*?Qa&ejJn*#qGiL7*@75z?N&6F3D+F}n z;KjB=*WLh4gv8$cIN|*JS89$o_z~Pn#_xq!%RN4;9KJLPaCA11Dd(a^q&cB#rH-MZ z%xp?>@Ju+;ONGKthzc2<6G9wf2^&gioxGdT-SOs|S%Jvu{%2(2L-AX#Vy6_u65%VY zvGHol>V!90{{{Ti-0X(l1+9i<3XW3!)4Frn{Ip7*3AKpDvFx2KD=~_&_R8+kf^(uh zd`%Vm?AcR34k6WxmWAS|ymTS?PxaB)STJI;oX=;b&5o-|d`p6&7SwI-mHK>C{)^(@ z_7;z1l><&^J>gg8fs+>{iO1gW0V;K;M87#Y$>AGCZ&Xx_uKzw%m76ryf;7U#U30x` z@Yql6=EpR7zQNba>O?d1h|Mf{pL!x2?8HAPA7A7jM|ef3S4m$WT8188Aq2z{k8i{- zn6_i9gfM0SAU|bHMX3B5224d?*szz8ZO1~<+J0Gw>3>}>t<|K}A96o%5g^Ip;NQFm z9LIt7hO{=a6rr&tj}jSvAI_<|%eZ$+(YrHQ;V^OliPLNa&B*vuPxWulrq&YWy;Nc+ z?#pefE1eI#``Hocj45Y=Rsy1ibyWI`9>|f@A!(rmx&OSkodY6k#xcN*2{}7ppODp?H7p+XzwG?-Yf}|5-r)2u#2&_103Uw4g@fQ zu=T#ixv>ax7tKhva`hku)kcePjQcWmX}N%^&hdxYaPwmj`R49hcs9HQC+Wgf8yLF| z2q+39O&boh12jDdfMLUD0^(voWuwyc0qLb#Ohq)9xO*oS9>R!KS`@;TE#MXRu(9)> zxQs@d^KYKuR$iS^Ppk(f(#mS>%oIY08ErPz!x=T7A4Tji2}M0)gwj zEe8HBZLwk7f$P}EVdKYG$tN-~#u|)Jk!W%rG0a5zSSZ+EQ-=M@CkrW?r+d_s9457x01?=f&ZC zp7-Pn{m529zY%#hdIDF!zWkN)Y|Rf+wY&roO2ib9F}>L z+8(AJq{Py7qnQ6`@lr+Hh;~`ib0o#GZ~S zHEU(0l%t~kwj;YVo+ICALZ&z&UpvRyIJ&8E2=;SdPj(x?nqP869^x_P76wR*W9uyE zGE=RIh6p`M{$uAbqrZ4E$K073Ya0dgoYOGn@~|8DV}JUdB8j@|I$w(Et4o&0ZmC^) z?O#Od7;Lp3MeMXD_V#ZC5Y$Od_ic#UCYp(X_TQD_$Xf$6%QjLL4C#KnQ(MzoEyvgu zVWPQjg_gZ(&QgSOnsLYT{P<&O`L@Jn^YpzVeZg=seK$#PC3Z%qU#FOz^Wfmu*trs`S_NKd;QlrF^)rP`B2Ge+vv74)y%njR@V2O{_ zz-2G0(SIOD&&Uy^Y}6Dzh#2rH?wU@R;6eVufee^O;j~9Of7D+*chljw;sg3^qGcv>TU}>HpSV`ssI2Ue2;Lz z)a4IayY7|JPO?f$#XAFFjF_d&4Il*b>)2B~Y!>(;ZsGFaT(+?T{1!_<{)Mb(!3}J5 zoD}xPYET2!gaS2P-ow<#4Czm`Semfd`9yo}OLo$`<{eX>XqNp~-wnw4<9`$?;qnW` zLj$W@p{_*N@RVF_WXnKYWVB9pu{&JLY;N@cM=JAxqPdo1(FqzQ?+g56h-nGAYoL2A zH__ZFgzoHTuD0!ls1JL_7W5KAHV5{E8LKUxo(CPdA&G41}buczqC+ z@Nkd;cIoUMnAQ%x)a=f8=_!5n{5(o%FkF1&7E9UVP~(a!t!|;YnWAyD%AT)M6J6<$@$eVgs(*{` zo*Y4(w;?`cY#2BY5sps05)?hzemT11r62zj#Ld0u^fKziKY_5!1{&sM$Oy@2BFND> zH8cNE{}U0uIGkVv8$K*cEXB)Kngb$b-B*pn$RsRIuh~3=aoBo%o;)m$JAX{FhHWs3 z)ILG3^4!LAbej8jv@QJG;pVsOd6iy9`r%Ji1RO{EkPV~quPL<3lc5_Y{8UG)YKT+2 z=MQQGZKpwQ|c$)%;yZ-An^gmbFLtL41e73&CskS1I%hN{HSF$l$%&t)D^$DVSv- z_w#AV2$WQ*Yp9JS)px4wN1k@sX@~AEr}j)IWLzg?Cq9K|{%Or~Ye&VVIUQ*UUcm)_ z#i@R)=R=kYHyk@lNzHosp(7UI+nJ}1l3N0km-%M^9LTNBf(epbQTouwM<%B z<)}0?E7EVk#Pv{=XrXy^yz1LyUGt}92p&X5m=z8WjwsFb=uj;0EDfcN0mPrp4y4#W zb32wAtEV??HSE`MrewTZY3?FxtoBUiNk#Itx*!zgN5>gd9V5bxIB)0v}|R2sqly-(0CEt=s8mhx%vseivZ+lv{4)>{Ax4q0@BI=)_HZ7^G{$G4}4IvOYjq2Pn3 z_JhjyPZ1pIKYvF~xX;=FcBs~_7j|Hb_(P#!t+9rR=!m@KVZQWKA;n`nib>X2$Gfgw9O`2pDc12-0%(YiKm8H7Ysjdx#jAf z{W`z>@F^a4tv}HT-a18=mYWGJ%pb+FcGrXa+ov+y6a~p9G0l6Yb<2%i>*Rkb~vm1#4u5YWB zc_D9P_57z@>#D{*ygQN#=jWO5fAYouqEh98^q6Ih`Txpm;(}N4{R1H)Pw^Z(eOIrb zDY9`Jth`ZvjG1mGf^dlEsr|;?2;IUrtl%(mpya#h(u^~rOI?@W>uUm+CU*BcX5qMf z=DA^d=Q7lo*6n2QGd0z`ok8(+}429W}ywKac9T zUFmRGSuw~SA!a%hJ7!x&$vqc38j{1tZx!lB?bdUN9oMhQBTl7qft?J_hkb3o|G-cJ zRFuY!nfv-9&F200L%q|8|G;cIi-pD_z9w7u6KF=@&dxaqqInxhZvH+CPzV+P60uV< zqDC+RFn&7??ht@AQkQf?KoCG76GR0``sk87k+S@aRBpc!XaCR5Kef=&le-{siQu#J zV=uko%g3~Vy=@bD73+aurQIUn!bfucWB?E)h62-Ezjz3gIP>H^?>EaXv)`!7eq;Tr z0A`&Kl7anKKdWiTCdi13qq5aGM+~xo#rVF)YteDIX++kThQHem7AcH)gqMgnI&LE9 zfL|QfQk&fTS2&ydTq~_h#1$TmH)IU_{I?bK=bU1RJYM|SZ%3z;>P>^kg*<*fzx_<^ zY-)pD8Vw?$!B!XU(poRS;p;8n)342Q;CQv*`I(3DJHY01lX7a$r#@sAy=cEJP|sM~ zdf56&cqqR9>;F(((l(TFt>h0GsC(|vcn&1cv>PWT`Bc%NLXZ1QEU0>)R$*Gn=2sas~R_Z;8`Zmp6ruGru9WlA}_vuW0R34P^(W=GG?Dn5$p35SYAbJI0_^8IcB zG2k|wPOy#&Ye{4)BI&16R#R~iESxaRJ#4UWMr&?5xo(7l{0O2JaL?-r{#c~5*5~B{ za{y!V@3Vbr!VYz2qu(L{$g~R374#OAkJ4lba6N*&=()Q5FQT;?C#*iuNQ@u2ENc$< z=d88SeEKR{$Ii33C}0{8loHGy61Ic{pIkqD5=Lk)!WXo(Q*y z_1!1Qiuhs+I2#{qYlW7zcSa^&$8TLx$7GM3@5U<60Gb@#=qkf~Dh2tZN=v`AzP`GP zt@n)!sFSK_N5>xPHm-EGLF;H*O_pk>|WdbM3iT*NkFJ! zRO8CO$0cPCK>orCtC#Q`raCH`CT0%%khC^ex$2Q1o;6T;!bx}H$#8sMPfE#qo{z0b(?&mX5i@{Z@F01ZyrA6FJVpncg+VxLe=|Sh zs@hu*ueDoti!DO8VA1;vLKmFim#xKDP5(ft(}cG4#>z(9K;^jYKp}#Vte^z%k_=eH zWD8fpA7Khr3895$Y%|ReW`(Y^({cF+?Z%r9Q0N>v$LDkv7h*kEpk(&&D{oaRdT@+3 zvsz@TNMVj+9y4fD^GqCBj){hJdHSor&)&MP)8g;$3H%pGkxwo2+eYU5 z3n?uyPtqx-DB$>9OH)g*S1xB;$K(E)9MKwSA|{=p$^|`(D!DL3)C(Uo-z(qDq${|S zJT;*7%hzW0{`XeHRx1bsB!)HKa-ihsfNP}G5@Vjza7QEl=__85YP&gyCl7mGc(T}j zyl|ug8_T*Rl?hlKo3SKbTug6bOqMnO`bcx1-Fn=>2<%P%-V!vil6uuISb6^_aDUP}Pd5sH$ zs_Nc!(NOE}aU8wz`%&WGKgTUOI2xhUSV~sjI)KMx9}kssx$mOMn{pxd{giw8pr2&4 zVWh@KjUU3+LAp6A$zi!uO@3#XHw!C}Soo2Ky9kIS^*^5TN~T`7mPsr*hl8xW4Ic5C z7SU8&O?FS%x%b-5({Qx!BW~lRg^ST=m6zuA^d>!oi`h9f7U6SE((>LTzpMdQN2Fc+ zSUBT+3*1dlNNV2w2E+Taa>pGdiBjxwv9OPJ3lqQ3tM}_)X!wY0e|G+|Oh|!I!YEE| zup9!EVUVgN<*Fb1dDT?Zfr($0;d6Z#9$=Xf3cRo{wsF#DDkDo2sA{fp_4iv=4wjo> zci-wSr?&nEnAW>}Cr!aijv>ze#vk{KH-zHDT;~o?K8p5r`(WmFgTm_D(U?KZ?+Fn1 z=#3WgN6WBp(g4)gfhDD1HgdoTgK4D~k8&L+A0E#pKgh3DzdEcR|Jr18-<;Bt!3}CN z_CEOos_dBO!mmrdT+JJdHZ{We z^(6*1m%^`={nb5`kz6VBER4b0qP@tzAvvQi<_42+(%n2c}QseE3P6G-`VumLQS~yCRM=IVO?HFali0~Ix5}8|ruS@pq9pwx+o85M__`GGaHtvC& zVr9B}zQ#>eCtY8~=X?rcP!?~%CGEc)3E97N{_SLBtAnjy$sKedeDy->)ZptG&o8@K zCZ5VZD-Ui|ej~nr#Xe!erFyJKTX(f8SUn?x6u$u6Iu*pSq?#zKwOshu?|yOWaE|v6 zT(kY2&ek%$ck_DMpZYRODxVv+j)(}J_{^VG&-H%Uc?|q-F!Q!A<_m`{s@fr%-oO$5 zq!Q(>aM)GSyYP^ukEDDSH!xh%> zmeOvV_iv4qQIb)EJztvcD&I4!#K6X(y^#`86vfh!yu5ia&IPfVW5vL4RNt54{(0hO z!}9hmG(CNHc|H`0;f5%o$Q}9Y3wj)3Sz|5JWO_xdALP2yNKV%Z^eLJ6z?e?c;$OJa z*QW+lmQ=&_SMyN=%kAt7b?DUmnl_WXD~+6sPY)` z=`M9Bky%Oyupi4B=lf|*!tvaa>lx)n%7L8Dlnfb~{-_|I zQ9y(5xqnFfOUQ%ij`QpW$h(c3X;ClrH?D^!FhT*zO@RM7f#=ec1mpI>P*dVX-sL5~ zlvQgw3gsVNoczm9zN&drR+3ZO#FKzVL`BNSQQDDZq1P3ojZmwos?rqA-dc(24}&B+ z$H5`bEsViwgM7ZY$QQ}r7g-Nn7DQ(rtC$H#a~EXECW2xn2-gHqyXXBHoE(e{F%IodLuy-)Hqaz z{QN0xtt3*YhS`bg`)_oj4-0_CW11s>W7-h#JQ$KG`B|jQr{Izfdh4GWm{*19WO@5- zlqs!d;ssBX~C>YkO-o)IGw6JewMj}xo zf_QY=Mc@~SAUHQ$tye#XCcRK-|JEN;#FU??H(tI%paVc|rzaq)^8%KtQp)(ug=L)`a3d@Q4x?PcL0?FW(a zWcM<2p!k(r)erQ4-7jW-x9mXgZjQLp-dQ#kU3ePftew(O+6{RwNd(E-!VgrEhqe19 zZD9c_>+-0k2+8Sd+-;-X6+4BHi0>~odEgP+ie91fQw;2Y5Rna36huQPHev~qm=S&t z>q}>28s>rSAramr>f*X^0*lL{lM)tDPhw^O%5Ot zDWt?t*9&maD&Asvw01!ZXi73}ZhW83%LKI&r1Ck}LBo{Cy2Fz++$c#Mj@_*Q; z_;F9-1Hh;jaMxw@x;`A)+A;!s9@kLR{kubU7Aji^vkQB-2Y6EzSca|!dOKc zqBEx3k0B{xrE#JKudsSoo3EMw`Ggg@Uu@f$Wf}i0Sn`>Y zzm_zn^VNpuw@I}YNha4hCUyyP^} zJsDH+Dhnt4UZmlGmeGV<`Hk8Rc<=O;){WRoc4Do9D5I|(5OAU#Q7j~cLdT(i*v`Ck zRG$oJBq>nG0TYu4KmUcjv!`g}UT$1uZciEG_jHd9Ao(^9OS(k3;@!ps>}eSa$--JO zy@h;aO@I$D>F9A%5Ft+2EvTD^^!-gM6YfbLhyd58T`=%7itM^Yq(c`xL#1F2azEJ%|J1m*ny z*kVq$l-34X8!;2&OJ-y>_&mG#V;YM8-NZid-VVSr5txy5Ld*^Z6C~W3($Y|QUHxvi zu%zS5Je7{`_HH!cJR=kKx0Vihrpd_{&t?yS6QpW%S@dh+3QYNIhN2Nqc(-{$gZN+Q zNMv$kUNT1lz=8xRQMRy?=^+VU2k(g*?3@ndehEF`Uf>Wfp)BXssZ}IxX|eZ=JuUr? zn?aZQ{RYz7b=6xXLa&9#RNp6NUhTMXc@7)W@kRL8Nn6fu7V}(f)N4qokdzrG;`kqw z(q>zlQW%$B$8P|XEJUgiz}dZ!bTeM7nxb_|+?k{OSqeC&XavzYjes zg?p%8!Xn2wkE&-JnxqnYo`$+R#C!jGXi+2X;@@W(<)Pr3(Nm3j=$cl5?yn?g)#>Nf z1P+Xnb38@NF;pYeBugUg)wTWiF-?|UuJm0ox*{OEu=;!*>tXTS-Ac*71jpnuoC^>^ z?8#PQo{|NsKk0US31fK;pa(Jf+8|Ro>6}dr`caP&MjkjL-Cv#`l?4H38F`_)@e#tD zenMKe8%7pF-Tc9&=6K{D#a{&&CbGI|>o8$XB#m@y^Km+=16(>M`$_lNA4 zj3(e4B${i?Sw%UBK7U1mlFc=wtmFGmqV9J~#>C>{ zUUV~u8IKjApB5d5{3>KKuUd`3rzv^Si={60rGa~a-dnf2L|hkPGkBG`vO zryRbxww3~E;@?{Hmwif}yet14Cb9(DF}@&uJI|A+|Q_Z*{l1m zO58*`Ih}>&wxQ4GH>99HXGmu(Fy8t?00Kxn46slTWxm7*DY%L&77a#KCC4`{FtXfy zw~d*qr$qqQzz1>5s8cpiTyC5o?VVRjX%&mr@XIf@LidxZQTkbOWnnj%&ky8X39G8U zSfV($YnuOgDv1@)sj?_!Ng4pOhi(?Z7Dtyc3TA%1R>ktW_a(nu@`RY#1!x?}>{UWt zz)eflFCu>q(7+ivBXIA0sYz{CQn1aQ=h$MO1x9;swXxnchuOQ4-%47gP^B-G`rs{` z^EG)N_E;z?t#*ve->%%P{OVg)#IfeK%GtU@Qk7pF_GsHbP*|%iP`>=GD_(W-+BsspzKTUxwA(&nm5|GY>RN+^$P57q%2+c~t!Xz!KKzd%rP?9lc*L+EZ zET2E+0Y+DIYosomOF|0Hj^GI){#`TdvR^1RwOJ0_a7n(QLq3-^uNCjl)*w|b9w1;wW3_8+D233F8@N9N z>{}%vd9YI!m&JyDmlClkVT9@g(-pUtYWsfQnJrgE5Dwt4U3jsIMrZj$v%i!+{&Twr zsFyhNs(hh0A5g1~6WQt8xodND$_TBeCjy7)kjuM;T{_^r`QH;1;*a!E?O7Cox|QdNM9?Yro9%eUa)W{UO+rurU}e}p`WW|q%tT)q1T0etUDya(|P z2Mg<74Gio9AZ5iK;N<6}^2W}NA0&;o$=As^s9F;Zhb9b8Txpk2BKL2Tg5Gl z(5J%&P%oA<^kXJ~3OYk_BtbE}MX@F)*wqaQwY^9_cMUMY_8LZ)t(HLl8`K+pnp^z{ z(r7p#4YAOjgi8@W0zqi3D@Put?T=jLUiGb9&<6ymr>e&_zBBzCcotS~ZSo(Ldgje) z_z=rgY7pP1FqB|7+^2`hOd_Zl;TS3JPuE9jtcYG>SUf$U6uz2CK;`+)g4ZIpkEdvR z-1D37V_!Bs%X%8KYj-F?r}Nyn)}7_FE0dGkS(X%<3_$hR8!Yu=f59htFaJ11TC*EP z{;Nym*biXN zt!C~d5du%JX-=RaDWl3do@>`iX~;@cK?q*LyS*ed0i+oLCmuJ{=)zWuWlK@|kHhkD zQho7N2~+Wg{tqCbF!1us32MyVeKyxShH{Q{&=jvT^7nudniy|5Q6 z!2y(tj!;X_VR^oa!-I;;ZzT11VG%GEO|*+5$UtYUQt=lI+J+DK>Qyc~fvVvIuUWFG0pz zY5|fS0ev8}z(P!+b4(p`lc=*kAIBsC4`Qvs%r#|iBhCsv;(ZG z>WeUuW?vk9q=zsyhanyY_g8p+zx#5<&2POHpVtm+gmLW0MZX`&Zih8dOz=;0}`I$*VRfT zK$i7KMVWpo`bnK3Ae-c>BTal?JL~urarKIjvXDqV)+H*z#iQc4-jl|7;7341H&0ST z^3D-Mr_ny+3T#kuQwI6*%`G`D$**3-==Ac93lggQnA)*0B3ogu7u+e5;`-yYNQ>q6 z{~m{~q!?6uT|KW**(LH0WvwT);vBM;AT3)3K4o8%Fka!fVI`eOW`l~4Z!0yNhVWnG zhgJUJ7k&P$pogI$u%~Y=4UcSU3~!wUAx#9UdRb-QmQ3V?h*|lISVN5#Rlqeh1d!ap zjRwP|{Mk19EBA#T4_I!Ks*LGw&^;(hE~sqeW?z1r>JTRxu2M+|7`wyW@9Fe&Z^HB4 zj30k-3yy-ff5gH#kXUN7cX`9X>8JQs(P*c|6baS2dXL@rB2&URW2hY_vmO3itnaql z6q{KOt!lY?b>Lx_N^W&1#s2#Cvn)b&_vOh0Q?s<5uQN&Zdnz91WbII)QB@JZWMvP* zRan}GZ{6a(?16bYeQ>v5UmZ>%uB)F@k~DM$GkWr1V82rBGsL1fMXV}o`ef1MK)we6 z!Ws94K^kcb-zaT->@!p1pHjO~UtY|2!YgmJuD{38AQYx8-C&U)1v;iEz^XRpNr!`fq&ZddcbLCey84uw=6WK?R@jQW2Qv> zjXfyfgI|yt6=WOx|CrT1%5z22v<7?8Ci5&$^3BQ0oH+Sw%2%{BWrJXA{%e;i4Fu64 zv-PnnMLoCma-VJP*@%Qk&RDAO=^qF$v)}Hr2C1VBW!MDP=>vI1>S|kpV-Zc;;r1_g za@317MLMJ_O5Dv?wftrCjGuZe+7Lg^b(c?m|Lzj^BZWW^g+5_7!~^yv8m7r~O_zYB z;W$qSE22Pu;_Xtq=Mcr44>>2}N_cZ!MnrBiPN3_fzcmwR@bZ@SIULs*BgGHC1ozz! zKbiQ36ip?rdSpk&s4n4D7j+j3A5$w+mUQ;E^?|U14j~Wq!rtOVQi)H$>g2BAABO{r zg*Z&5N{$Y!!)r45Esi)1&}`uxGF$*CP+vQQQOs%RbfIyhPb4RG^ANqu~gG zWx-E1%@mfGfCu@JPtOTCO@qNZDxad0LJ@{x-Yy|S!CXIWgQb#a-+8|1ochSY(Yi>6 z+#aK9IA8#$dVyEgJ>2RtiZ4hSQ9lipKlXr5s&bSYUIK%fM?WIHUD>#jq$i83t;A(h z4YD9^KEmC2OxmD^xL-f^p7@2&nm0P|3~`Wx)#u)@Woc>#PpdS%SL(m7ET~blsI8jG z_`TxbLK5zAxIK5%d~V}3PYzdVC(=JFm^yC4I(2htLq&0H)pdJFCUbES&<@8%p}~lx z*^UiDb~K3G3F`lIk|qTc6Mr5tdk8)lIF~5bfAnm4^6!t;TpxaQn|O#CdqE=Xu;bMA zFpj;CRLKwzI9~2Cx2~XCsvwBW(gX~UGr~F9B7CQyaY${^+=c2S9I~=VtUWaR(n^;| zBhFi@YtA;yd1e;!xbEt~t4Xnmdz)w#K2@PazkiPJ=!Y_ExH<;vdU*Qs>|m@zXg==v z)6)p{AWd3$Vf$Fvh==FqC#pL>;`N^3b)5aW6$jI0zk#C>v>S(j+#!7EM8o1S0%rW5 zZrttShew{r#;XmszCaS6dk1=WYP(UN>EEvnw7qpKSLx%xpmpEW$j9Dx*vL&`h1B zJW=ZENt$?EQ=y^SE)8eL{e_))ul3x}K)h?`V?+XV$kjj#_HusWM=M7MR!m*8t6DTp{POBPKQquMqk2VF@0bo z64x|%cj#do$ut}l!iR|~FW>(kCaaMNjz_~0BLIsu@u`N`87iExg!AI152KAmY|~xB zo1?4`3L9KInOaU=KeXWH$Q4ahcO$cB^;&KPbdl7f69d?nVL#fZH64F5;=HsxwH;+} zPx`pf>o=31cNc5iikl4-?qP^IJO0=)6JS6e?#j zcnS*Mv|?c{sD3>W-o4?=d&T7dE#Wos?3u+8P<1(SZ0IsU#?xK7W=Ss(m6{B0lZB@& z!xpm}AA5EB;%|z=S1Wd@PQ|gzVH|a*hKI@x5S9KqncA`hB>QZ{Z@KbJkf&O@#@aZfOm1Lr5& z_AXD2HikFLd+x*Osz(AZB&{?C4XJMs>HFtiF1Z+09RXMbuTPWrT*We%t#9>1b<6b#{cUK5u+qTCfqJ*5$XW@(rwguM10~ zCH9~%Y;JC8=J8wLx%c$Tr1CNGvm&Ze45@@n@7rs--iX*UiKRM_s6oSu`r`FAwb+0z zp6-|l`NcyplH(j+s4~nuiz32Vdax-uZ*a-gpVUZvO*Z><$WTf@v=Pt_0@Nrtu4^<6 zp+cX=0Yq34mg-huwL-Pz3QV1(RE-fAHRkVpH?gb7%^V7+dmq*eock+OY9A~X=Me@| z<@(uoDfZtGqWB?rWPwMS(Rt8+=#3wIB7SJ+7;N+P*Y^*7Jx(Q=$1tL=h^;>Hou+Gy z?^O?L3K=Snu2k7y=^9b}@7VI3p8U^BzM-h~{Ksm`>~Y;p@mQh30OxFd2W%Ywq1)V& zia_AnmkvWEPIX);g40h`{n7R&7}yFZj%&9o)9+zn=8=v!hmVon!9~zz13#3k z5;UG5bJH#^Xc!|i+t8uI!56`4rSK~>lHwGP3C{Jp%jSQ7)YxUCrWEw{N zkBt7&R!_&x+b&v$g=OK0SEz};%P-(}>yCxFm|)Cf-5Z7pxuur~@ltpK5(beG{aZNI zadxjL__YeB=Mo}1q|QQWJh4Zj#V$d5@RBW+;BgALjMvZv+x>}8C|ysJMqH{rC;362 zoCC(IVo2&5)aBbHooUaeQ(J>iSSVf^nlu!yjZqUJcXUySm3qyN2Se)4j8drr54t+% z#5YYxr`mI?RUd-|80BOoitj}L{-Zg=dF1uxM6fH;wl=oJa48 z!_$y($WcgjNu_^E08cA(_B@~wi`oM5;8HEsy@CMCj(Vn_6Ar3TfvQvi03z5EhG|9IQunw}K)CoLBL)}N{D>=T(o#_*J@V@a>r`WZeqY6fyW zy!}sbL|81`9Md}$li(6n$3}19CTtD*y!0doab6bTH2uq})2rZcAjQssMzmL5c5vIN zb)F4qf*&G&+?6?43P}Vn{UDEa8GdVN@4|(-^EFuVyG5`)zN;$paVpdd1jP~l=~oW7 z>!8@rLuv`}u`lcGckGEo@F(SLHSJ{B{xp~vTe%Mg>A=e2(q6cHelsNmcX_>7fAASlL>ZNk$Ovq^ugRZEfny|x29sO1-5#o=DuNd>=nb!a*<Tyb%~ z)+zA&9gc{uU11$|*sstOn-rPW>BG1Br}KrUbr=O%#o!tbZ8loX`5~LtTaWliBprI4 z6g-@&k#AzD`ulR(%7pJ)2!I!&K2}NPKIEvWtVw4to9peueQGgXc3tavv$*G&f6W4{ zdwrhuX$SE19gkK{A4`Oxc0eXiISYepMi)}2J_HyLQhKzh77rt>8)BCd#Df3c^E7@? z{*7pWK?|)}J5?t?KG^*~{ps#1y) z?tlKEi?J{08?5>G!ScR&Jrx)G%q!0p@?(xo%=5#aMASiAs!^?$iO$sxkDG@|*#E?o zGTv6}w!yynNa1>J-0S%c|9)yEWKwVleSE)u2KK#`uB!0IjAg|53sH6x39GZNjBC-f z{i2oC-ud?y5dZ(yd42EW{v`%2Lg62Rx9iOP{0TD8CoT`1F#0<@SL3w%f%5Q(yy=t4 z%3&{#(3SdSu3b-r^_j86W}T)RVxV)mVNc@u1b{|S2Zb_h>-VjS$^hUwJNz{kppFIv ze-GnWSSfQDNT)z-SB-x)QXk;DBOI>&&=(Wp(pN|P#D&0Ya1M3qG5`H3%h0t$3#%wG z41&(V$}2qlnnnjsa;*N{fCJCyfXl+ipEwY1&->@ayVWg0+lfUQlwI0NnWU87-oi== z0YM+kDXt{ZU+Fdw`@~oC|1a0>!}m8|*2lJm5ioNXjw3+~0Ycy2z{|FNp9OzHL2UT`2AEy__fI$K z{RF5hOgZAk+{z|`^9#6I@j($-gddeaC0Qd?M02kHj3dbY>J%8qD9HrjorQ$US}BVY zCd(8>P%WZtIj!!S4h1yx$_j$D4$t0(U;moMnyGi0M<6?}UwcPX6i^_wP`a;Ln9gZrfOQ*bDz=mR#S z#}FqEZ|4dI+)~#|@e%#&plV#l_L(|VMRP?ye?7fTe**W{%bqjH$7rPjH zr&&Ckn6qC$4#op$G#O+|+mqH57R^a-NH8OJM$(gPEK}>E=J+W_6o)9M`r#=g65>nF zr(EW*vxY}qW45MsMo#Ooo&zG`f)g&OKk2FzjI$7K`1%C>Frd1WiZcjV;@Y`35z=4& zuyO_f4ng$PWkx9hb(Cl0nlaT=vs7Ns4E4*X(<WXTRDyF7a?WN&(7=J!LtHUKK(9t z&nMJBf8bYWnwS+4@%d3Ba2{Hl&sbVjRDV!_Pp3*hq2lKV!ha4-UL)Wo4MHD*$7C{Ia#Mu?|H*_#I z8fF6-;27_h+4Gq-;FxLMYgM5$H2nn4o_TAR%ts)Lgi)IO(>VM@8Wf@BJZ{WwDHz#O z%1Vz{H{Rm+E5Hkc=eCO*rmVcSkT8}%n!P(H#gB~wA*0^A8>?`&=#7wJrx23_%WTQd z<*tV8{GrVQaun>ADVzV{?o^T#uy?Al-&Bq9pBOQP1lw;#*?^kw z*QW{6=IQ}kt?_@#RgAA28}^0E9w{jtf!#FACggdUGE^m+Go^=Vy z_U{O&)O8SY6)T}{15o~?^T5Qdsw`>{GZM7(N#>OJA#w{-i_9kIL_oG1teMvYc={_B z79NNKN29NfKG`WFQ`A#2|N)`-2*SPAf;23J3 zP)pNAncRR`0m8=flaTgCT2=VVgFLJlXe7@W=1nTWOVjb*nlPDwe{iASjw?z_*-@;U z;5-O>c~#2VB?Q=8R0?JaSYSVBNm=b|ooCe*2|o@{tbf`~NtQT+xq~;CDovlBp9dgn zgGZY?L|V)Qiu8R9)=Ts3usTBgzw60YNxvVNjN8gKNVr9rIrR=9GZ|wpZ5jdnnmwOo zIFp9XXB<;Y$~p7`=C8ZU79QH6N7N{%$N}LH>wHCG4Tmhgr-ug0*{}Q=j{B-|s|#_9 zt!zI$@&niO@^tZy%YTj0Z-a}ndG!ZO?hra_vSXhLWS`@=DFR{mNzTyhE-#}KKeJe zqkuO1jKpi??Xv2hw#P|{#r<98NS=`pt4jt3xdyoONcx1UUoH9M?;uUuR&ijTzF$f} zaMGhZmV-TQ|3>)>}f-Sl(V!Y(WtCTG)eFw(QO92I2a!rTP9mN$WQ zafbNx_pAF(Pvfn(>_QbJ0RkCmqkG9WU#BX{z2>!eX$vtE_sed^Rec+Kk6AP~z1%M8g@I4=dS`{~G1nn50ANbn zHvPISen46pAYqJ5ulSTQSLqxPTT_j_Meee=|9X7038BwQE~@@H!=c*a|A|YNjz}|7 z%)4$%ki+*zpEv-x&Wi{g-caYoqP4qwzO&_TyQx0HPKgjhb}60v1Pj)9x36QixD2|_ zP{&prxs#-??yw&*UE4_be8~Pr#KggCc5=s$)k$Js$J5}pME7mERs|n1nUZ@p40b42 z8hF0G!wso&X`5?kUUISm&dY+XXD{BouAW=A3&y3`qhZj6ZcM*TQB%>xo2Tp7NDtdhzW2O%9#sAGIQ^!`7<*i{tv6eFMsQYgETjLsc7iPAO| z0g!w8o$Je1tmR)eN3sjh$&BPAHFPo%$1bpVgLX?Sm=}NnV(no&SY#z0H^MVRbOuk zNPWJ2m!3j-$)VIK@@A%a>b^ssjSv%)h>U~zv;WRpMRiwIK z-nFrq`K@NnwXstsf6cF4SP0e7S-{Rgv8OKXe`}S-ym}?ANFWsC-DCbeCn}uzFeF(x z@|v`;hJuABB(mGCLJKNy6$_RqaCZaj9}{$aw5A^do6$R{!x18>v?7&W9=)X z^M&ywjJZJ9wpZ&>T`8v;N-I=WzKHEoHYp&VVN|CTafFFc{b&b&W#K~XWJ4}57P+2= zY8QM%rEF3xD&zQ!=@fyR@BvK-l8%t*6j3>aI6s0Y(ykMur#o(A@-WW%tm_3^MYpFX zuT4o`19unH#Fk9?qI!%KCWIKI(+ppEE%M4;;d2*9dbO!~a_d_b!MdswoI2x*TRI1{ zm^s#tZq6K@QH%tJw0xfV2sN6bX)jf3Wryl_5lz0qjNESVJ;)4t`GlXuASIwIubRut zgUPZIlg!HNvgX2pJ^WYrvf0in;_|LsYE+Mc#oFxvlcKnc21%tN%FA}uJyH~;rRdGN z&+mYkqud&C)X1NQpEqQpP4hoH*ZXHSP?MQDoh^h6vi4)#nQPo;YOGEd0flziU z%}iQMG4A`&9Hq!}eiya~g^ow*-MO^g2SmFlc!OK@O0BtA zHOHcA&t48WUp%>{)YoVnm1vpw`eHl7Hn^*TYtl#=L6e2b*)JK(X;ST6jmRgLjmjSj zJJ#_Rinks*One^t;UIC(K-&0#SBHN);m5ocvarlgeK%PahnFoIzkt;I6SS{i<# zCr#YEGh2-28I$)EUMx!!-bqhX-C8|&-k%Pj(|}S@5U4|q8Ka;@Yam-?&c0&0O)41; zO`JouCp?(o*!DdUt8u8XAj*tlWEJQa^G$o!+*y&0b;9~&i>5*>ti(0Bs`M=o8JSys z{E$zXCSM#{Hor%H##~3*`S>%le?9p>iq8F?$^MVy*R{<~PMcG6nmNyTBq22CIp$QM z!##&sk&xt6E{AN+=W;gZV;Z@Ojw3N8A(aky_Z$-vI;qtC-S;2Z54#SJ>+^oUUe9M4 z(14Ctc6l*c?pV8gN$U|;1Grs!svIa20XV|{&zPE?M)Jaowj%|1ND4_D+7^Xou+mYf zO}C1xO)CL1n*64MN%?ONuH){ci~VFk_IA=<9#)x+krI@-`c3b0FJ32~%lN8a{-{s5 z?G)-3axD1U6(=zO5W+mJ0Ulgrj^;57H&w_BD37yDHH}OFCVEw(Ti8?ST#dN4w!oJ{ zxP#`{X5%WmP?>0j#CHbZK0vGFHXR{)r?$Y-lJHr5NX`LbVSsA! zYajQsel9Z~O_#I{_>eA0a*)!r%S>)7_KEP&=BTjQH@#KleM#XVe>yrfFZ*qdlV zrbEwUxD3`$!8f&r2bZCu0KZ@ptuuJCzYxRQ^tro(7v9fJ{%`sm^MSN#VqXrUOPQXP zQNTbJM2r8@$Rl4!;mCo-dd3g$L7vfAEzaNjC;;JccFrLjJzdMkO}1XUyl*7esRZZe zA`-P+O&{E4GpF5t=+RxITKF+K5ObaUSX8zl8$eI?Vkf z-<>H}l^dwuICW4_cfzj{=Th-XorD^;WlI&h5q^w$R!5dtx(7tL7AZ^m&F-$?{*m>| z-E|~3Q{l42)@>%YBCG5r?udg3`lX8JWeA4^rtpv0XR{<@Yw?Z+vlhD;J>qSZPA0gg zy!(5#zWHo-kv|rfJ5^cE8DH@W*D{@_JXRLzyIPXVm0SHRntL{@TOvo|yGz-U^L%tc z`JbAw+&wCGIm>xLnY*vDlZB0O(oR-#t*Cv}FU(XD^pG`&kGwp<%D$r@LWxI`=txWu zL=}d%@fLmP;xlHc>&tuPx6eQoHU)aS?Q0zFTesa(;`?7d|U*!&MT(wJkqE#Yp z=VnqtGuWm68ZCp)XgWpio)~R;V=+6#IDi|KBq!eaWx*`^F;r4c&2bSdJRyvb>C7Jq z2!3-=qTkvf@0D}@)lDmI2b0y3HIo39tZ+Bbns3&nTuW7He;dZT%0$LV)x}A-)1fG- zy5(A?LjW)%3Oo{4C}vcG|5nhZ3Ztc!$}!naU-sHHu_rS*yg{`DdO;b8kx2HMNPhaF zVWM+~?Id*5j03sLpGkjwAJwXT2K zNT{APg?v${>pw8<)6eBDG$h_qJ)^tpmB}@4##KN2ELo$LSDOcP-bwLtlx#GfFTM~d zWJdGhTK(~R$@ewkf_~YrO!)QORGfsp@ty=n9&1VOM?|4ky5Tu%N%I3$#S#6aCmiQL zWELXpvw%8$j>(8;GKPR{Y+Zr`%KwkVHWEX~e^)Vah4Haa3oYXM3{c#^Z}QsZ()0P1$8DOc6(SY2c=p@HKkH-Bm-ChzI(Rrc15xj zI#z34R(S)v4v{}H?}%Z&ql#=P)0F4gZ|+9Y<1->dGwS^N=XanDkx{efeTX`|)-LfN zrS`>7I>Pi!LJ>OY?>fRYDc69fRzFH;*B?$|vUsUQa?e=OXzE1F*f3L)JjDE|zs{T2 zraikN(aw*&7d?9l<^Q)Z`2uwHZmva^OWA$)59f~GDQ1BV1wYaWFOQlP{84ZaRbpM* zpeLbVm-Dt^DFnQZDVLRY25s{AcRjI zQ7Yt8q=a27?)^LcI_!%8YHIQ(4?qj3u6R_H{$8DJv@jwqwRCTv1p#sK*{o-)%b%|p z!1~|wt-+DvN`OOc5uwBm_>TiY5LI!{Z@Y{8xpWFYk}86PA9HVU$sL*#6y$RqD&23O zB{6p56()bFilpANmgPcfgw2GzFp!is%ioNT`U@hLFmNb@17y(B@qFPI2#2M-5#AAm zQ190oIPS~rMJ&Ju1HS*-T>G7PN1Gb%>L}P+-lrPy^{pOU;=xkbQ5!`>X5kzH;F^E= zq=cG*)lu5}ce=H%u@P{HuG2GEcj`8f1u^@-U1+6}B;Y9&*@Yd5nX(Yy9lD`_O5tTq z=aNPyfGoH`B8&vJ8pIluv&u zOdSoOx|c6&jxkUeUB@}r1R~+$Mikm{Utuf>rs#D=`_Ob~o6-W(6rZ~lK%qUG| zY2-u8C#qGN_%zhv8Rp=ZWQaDW)~$Nb-hbys$JMaES{PnAN%pQBAlX}{Kq(3u$>hg@ zWjKOR%0c{gq=KV-A1bA-LhXI?bNfA>9<&Kyr_Je~+8kZo#KN3T$LXr>{n%0uz?Gfy zI-xc+kB0(AR>=7+0967}XZre@I~fo%x=4P1XRu}7Me?)pbX(i{rDJcJ^eYQXSSt=h4VQfyrBmZR8NHnCwWL0dy6Sn)`Vk9L4CWUnyd`|1K^SrLJM01M=m z+gx&OdPv|RV6P^nPc&wtuf*;_Wa2TAL0=lQ0W^Jt_mvd10f3057AkH{5nct;+G-r- z3TNnqA;A3E*A`69Hzgk77gT^ffgi-j56vDoda-6z$q+GGc}VLm5cA2JLHfow+N+Ursyj*i zpv3shk++%;CL7AOmLF%f?i~JTJWxm#8>f0M0IGK@R3uy7AMr7oW9sr{kqYAnasR~t zdR1j}%bx%4TRy01R=!WQr-iBlGM0Sqif10B6>NVahPG9LfCe1ms=KMp#OGa)f#Lf< z9l_ZjvM7)VN8K(ZZcLzd9Xk5hg^r0BCA#T&{y73f3ez8q%IF9C0Pfm_HEdHMz%0-b z)%p`bj}(T6ME0TxOT-7u7rTs_ZKV^NRMaTRr5u^7H0z8;A>RwTQaKNuQXGvU!mHJV zJY8L*#}gJ7;FQ=+d)gkVHWgP1hr_K_|QnX7Jz{?)31h*RHke^x}JLS5}?6NnOLmpFP$yU zymVso?jYGiYBwg)`(?I-_x&wR zwsGeQd%Cjik|7T{%VqX&;)7lo)Vk!s?)$cv@0uzevSv9+Mr$p$jZ57kSTLh5**e(! z4+w9MPTY=BnqSWAdu7^Dt9&qlZuGJ6(PoGT1(DtGH9@>rBm`iKsM;B~PBAaG)D3)3 zdT%kKRrfigVNE4Cyg%mXuxZbc6Nf2FG`3feh9j1b?Z`0AD!#$7!JW+%>}T?nB}*J9 zup}Q6=5YR8&gaSq#yN8OAY|s>3M9jU;IK$FX2^cM#UP=8Zi(_ zd7I0YP$g1>N=Yoz9S;5{UEdpN`s<-YNrs4?ZF7d`AL(kOhqR8HQ_H;)BZp|%Vf$^9 z_LE3;VZ%=8Ker+mSs6uKf3+H=aP z$jMEBEm>Dc+1`U>zf^p{OGw@D$G#{)DP6f!c)YCsu_I+cVUd0A^j(3kjVl;R&$&wl z7WiaEmuQBkOy0cR+~zd7U;^jY9gMX&_`L0aiZdo`EyJ~qs{2Mo&2e zVt_-@6Wk*f@7t(#+Q%A`a^k+*H~YfGeh?2cL01HngHu2R!h@pnOWGM12oxM+M0=aa z4;KYfkNbvYm1&WE!J8>t;Apw`^2!DD>K=OF3!{vK>av024NB#2Le#yFY=cni?UWJd zlUf6xdk5!?u@>=+oZsOo9a?MktQ!YV6ga79=+fBz%6>O5X{W&^!gCS)+g%?D>x{IF zb_#!3U*&FdIEZ_w30XKPFcm6%Va_yEBl2-q->_7&a?C}%n#d^(n{caYqheq}dy|rJ^FjUq4Z?5E=su&0h zc1jh47F2A6O&Y1#yYuy>g3Cv>G6e{S_y~o7LHSe};t&N$kDeMmexknfKFjBq7@$jo z9O3$Tr#1Esin)0B0G(>;9JHFF={Jom1K~9mTZxa#YIb3T_xI(Yp1oGa9f4*F)AD3BkOctQ4_9D;@B)AR$yZFhgYI2tocr4S#k& zZ6(ca8HH3FLX9AJ(EUPZTh^G_o&3Wa~>&yR&IAyW3Yl+PZYgA*s3*C2$9(-)^R26_`B{S@*?q&PFNar94SjKmsGT zRwT1p+j|BL_tv4`XxL_MfKsB z#=wpvU&?_*P^_DIQ2#|ILY7EgUe zNR=phEb?=%K{9%pXs>W=nD)Iv`;6lR1!m_A$T>LaUU_eqt>W`kb?GE?+*>$DM`$?q zs{UCG1#ex8`xxC54O5M1l>>PZL0lCE-832GDuT~oDO<;e@|1-ypHr(ce4s#m6k&!S z83{QPm0uH;m$_-q3xeEfgK1MB!KcwmEu~&|pvKP77)Bz)_!PL{ZeMt&I$W0FP_Fg# zj#s^)+YIwU4QbT<%x`o6)O1@vwAqn>f+m*6^+?0kpT|YMSO<$8MslVKGMsHSnxB?f zu*g9naz=Lg%k>FXb1KT}87HVXFi=e$0ZZEWmu&q}yy=wELkUo;Q*mG=AVUA}?ABf? z(T+>d6l;GRu%Y-7Fb&}EgVau_$*7KvZ@}u0d8b>Ysu3B6`*18UYTO?i7?HuhXFaYM z@UIhBUCJo~L^!yHG2S5teH!&O)yS9J^&g5%Tcl+X1ET{kX`g|SjDn542V*M%foNNM zjF0^pF!m{Z`0lb8qj_25Lk5f_Aj!RuANWICir@z4O-XVz)$)jgD660?qs60pTa66t z#6TQUX>bFmH-9p*MC7|7_@445GZxx;Zm0vgK7R{&j_>CZ$;b(#PvhjFD4)+XFNBQj?Ee0 zuPTE|!xDbBNdM*3M`{vAkt}W~mDKb)s!2cg;N@s|)s*d_RfO5G?)u&Vz5pt$qpD3| zV=cHU;DF$*HEraeu=Hu?SGrBWZdVnbz8fE$y}D&ij34yJs$EYNHVAeG)dq>YpJ!9a zwE3n3T{xJowC7x`Z@}6I5$$6iVhlft*tj7_)r}uDzoJm(k9Aooc!XQm=PAMW2@0mM z4l=F=NQ=Bg#&?*ZW0g-9HG8=pTtZ~n+wIJL%R3p0E>?*t3{eck#v?Pr9AdzFXX5To zitXh9L%PQGw zD%$mfmEs;prw^)*@HFO0e}QW%&b@XIjqQ+}es70G8&j^~j<(CgBoQ)wJ(Fxlnh5x! zy4>ZLZnL*XKO+0K%Ld+)Zv&fq9ZI{AupnwWciMf(_(s#k#D_-X&Jo8~ZM3y^PVlVa zpB{=i`|Vi$pjDgciC&qcPb!B)X)AMkaOxFt8ZjEFG}E*s7*#W6PabjZMq?o1E^?Q6 zqpM$Pj(4UnF?f*rwY_n!GbCl9tMk_5!Baz{&IgANM4zBn+9cUw!WHY@UXhp*q8~!M zKPkLO;R(^cXYsw-BmBm;rm{R@Z~W^JRCw&haW!&=-NQz=6A2Uq?1Y_uW7|dZjENU8 zi7?a+i`3|Vk9++>w7;Js6KyuW29|kJ#Z2IN&|WiTUUt)p|vx zPeuD--udRE-wxy%kc|x-nzd-{sx9s_te<8r87+S1`HhSiSUoWI#)ht~m@=hU*C`M7 zrmCs21iugY3Q=iCqgypk-X*7cDPYYL=x9NP56&_;eBOQ0IlrD{V#gLsQE|8WmZX^S znQTLF(lNTvJfqMmv%0q-k2hUx{as~XOKzY?zHALH;p*Ci8?cc{f4oup>T&SHaT|Ne zgW)};od1w;34?TvnB@fjx%!Hx8fIwf!39bgr#JXz0%dkVNmXFB)h!!%3zn}MpGh!- z2w~vL{k)#$_cU5+QczQs!J_#$A=Rb@?ZhFsh)WdU!I)AemT&#em8-INAl2|>c*ge@ zz{{enK}R~lPAT0XOSeG%K*|0n8MAO*@@ORS9LpBx@ULMU<$N{A`yzc!R@_K>-Xn*A8C%NAXQ(_p+5H%GszzjO+zF zotk%0o${%IR%-Wmu3d@I!@n5c`;HBl1&nrE2YucjC)w|0tVA}XdsakWduaS%U0EQj zc&u4c=OCp_`AXm0Jg*y<@Adx1w4nghIxv+v7u{eV@wx7;4;A+RXz9S1qVQE@b~*slv#v;3Qn7dO7g--Wo5rU)b~8B$_X$%=w8>V7UMicsaT z6nXRbQ%x2@F!fBOe$v{&Nnzk%ioyAY$)7tH!ISwf|IzmUlYD=G9=bu063Kf+{6rUZ z+W`Puz@X*XyVAq(Q~{k7{$cAE0%k3P`n4%2+TWc8P;Y+vBX90MV=%H!B8c4r8w?z; zKmVX9babHbd>KsQ`-R6804IHeih$XY4$ILMkVx=u%^4@2QJGMw1?0teuxbZ?dYVdi z{sSQ4NmhSRal+qXF@Vpz@2KC-1Q>iIj^y~sp#9fe^uI564PUemdJ4qlzkJSD^hc&{ zT|57{|J|o%dheOXCRz5Xuv4f1$=Mo4S?ZmfyIy;ef}X7vjzp$`5yE+Q>LBee3n1NW zJIP{&hV8H8dr^|0t6NeRTIuElm|0l=R$?a|ztd#THI+eubPpK;qqFcutingR3>Yxd zZoFLA@~bBu&_PSV`dke83AI3h8d`BAWl10pN{Wex&!R1`sq}=%`kI_mXd#fwAfanR z2bP+Y1b~ccOGtL-Le+b-N3aefh6rfQ$9#*gexLmlgxH4LEj6dZ>yu!`5-oOD8Eal+ zyFVy@Yf+{G$Q%8q33z+pso7_O5@*dfN$oTm*>>xL@_Lew<}bUV`v8EwXj)`x^^Uvl zUvgIoHSkTyJy!~M^P!W}65JZqzg~C~Qmwf$42Xi%zkRSJ*Jqy5WCres|M&^2guWTR z-={TrRu&q+;Cr#DqcSIXW@PHd2afBHuOc;?Dg5N?o05ctnsDWx?^4jE9=9h*^5|r! zuh=0|-^twCdNL1wv`>sX<$>a5`Nn@K!x8S_%cS@!Nu&eVEt3I;-d4W;d>> zjD1uxHzgs-np(W*`p`KdqEmSCcb_-&AD6a0Zd*kywSIv`b+O^t+l8BhA>nSjuSo4r=d6)-~En)5~`Fas14oX!y86s}y75N_1c zR`->7NO&MB`z+>Cx=?fXpZNUj17tes@3N^s15Tj#p#|ffU4=jGM<#U-N3zCDi{2i0 zF1qQd-Pf4k(Cj#FD0{Fm3tO~%C<_9^Kr;Pvsruze-hj3$7l&fYJQf`#{ig_TJ=YYl zfPyyU?b8;U^QOioUiXs_{3=`nUCf6Iu7b8nkz)8erYJKagRLvnzhQ)=w(f$_O-IBp zKbl6{P6Vxx?5Z2@{I>I!fx8n57|xyBb* z1;WRVIp}ssC^M&)gWjKsA4okg0aq=2kMbv>PGQiA;;i~s)W%mOb(T;HTkyZrkpPyO z4D>Z;Kkk=sKXKuRTC|PViR;P6v{V`Lknet69|D}3j!WT?VR>;vN_2F6zTtGITl*i= zMJ;PW(0CCm%!`$^R*ajnIXspwN^g3?XqDjqHEvF28%nENztpv4_WcH$lIo=c2|4OL zd;_hioc>mKTVecDv*za!kbT03lE4ykhq_m{yl=&G={Oi2!hu`-j-Y65?O;O>8Isu1 zk+=^EqifN|9ttc-VtC&QV*~e~_tq2Gl2+QL|E>(}Vwe7x+ToFHfZ;bl{Oyx6A>TpU z6FresiC|qS;)OU#AIY692Gjb^iAAk(MVC?gE^!lOigRLev)l~OUh+Dzx<7R&@G=qK zK|;VE?`MU>r4ICT>nSvwb_CycMf8;vpnVM)gnW3K)(~0ee2C^71KB|`4UOs#+!*=65@Q`}V_#w|FrvWvg zjG(6H1Eo2Z1l+nVRkZF&{k@Okaw$F6hl=;vn%C&Xe^dHfhU@EPi`Or)Fn_H3QT&-i z@S}jJ!;MELXfc(n6MhNw#XK?I`5M~FqHVy5zjs~9iTMF2M;=7titC~^d@($XciNYn zdTE$balcxOfH_t$^=`t&=&Rb^Uo?v^FW?1@*9A$SIoUf)M6WZ#L$Z-v*D?e=L*q&KzTBpKqDD*&u%cL%Oe!31n741Ft zuaMQuX~wNIHY=Zw4YhsIKL1gS_GALkA(`_GX5M(XXGTD_9e$vE>al98u@?>>D?&{^UT|ROqz1H?sy{U^)Tpd`aWQ%^8to z|B^oOHiBh8AVca2!FvU~+lR7|B;Jyihn~#!j&wwVMMv-2`1*e+i7MRd?^0Ky^1jL! z*uKydOXD#giN*COZ!e@jNg1GkR~D9M&@_u&mT}Jo;3UD-m6p9PC6jIqv(Y|Auk-9^hR zD3~dUjNg}CoX6#}`m<0QJBs^ya=3R5@ODkDg9-(&^R9Q~$<^08RqQ=ge+~b$g7k&} zTT!&Wns-#Og>nlh;xj#BP)^k-&ZHDPKl}FKl3(Zw@}gKj2Owu>`l*(9fWniP(G_mp z9_;J0BDManu;_mQQXDGsT-S0IlnLC@66qPh>(^oAOi^XLcsn`=@IXPuiYQzpa`_Hw z1DWIe5N!?59mU!Ps2j6>GvmnvJmE&T3hKH!%5<943a4N}F)M6(x2g0MDy6I;C}G1rK<{bxgde=8iCL;d0^W?JLxk*FXj5bIIhHnW%zkQG*o9)(qDGNGBu3DBV3j37r^JNsxT8|e<0JVGGN-O4 zSc+7NGTBMYcIl2RPTv-!wlATno0=7wtP-UK#aE#CrG})@vVt7c057{dT6}`f@*1c% zEoe?%QN-JukG83|S;#1#WOiT8e)K5oLyR2vCN?ffDyZT9_BGBc$!x+Uqal_snsd3M zIVUo%#OOA_D7j5@7V@>4-`r+7*73=1x4V#k`m6%Qu8!E|1!xvd&1Nv7!^VtEQeg z_g7$G*A2FB@XXw?{a35`8LgZ|w5^HlMlZ{Dz)4muACHk%vCaAM0xRo}x+Qp(XGqBN zIwGG^!pF0CNO8(V{epx#Tz+BvKbaH+xd)kTm`Sjxlg#8b4SeEAB=7cnp)|v6l9kaV zJdnXosDIXPA~!z4{gY=HBbs^Ss?(87!yp2b>@d-z&d5~cKL;q4>R?z-nUEAE-n<|Q zD8m-9(NJA_PG5?!RHqIpbL1@U%I=Uoff}L`gV~()yL~q$v!0q5mP-qCNxMOH_ES6# zymlnsGE;=wS&I#hbc?$TV6oTmA9S@kbLXz3w+plIn7n5-EYG9&2X^JCxC2y{3oo9D zi(=Y&>zwric)|iDF;pIey7in@kc<-Kam%`xt-r(=nR#vfDF`|gc|ZGuI@)_jHF6@W z;6gqtzR9x@@C#Q)BW0aNW&Bf(q>eG;&MP`Smh$3Z<(t*s%CRL@?s4)Tv$Ho0C zMQ>{LDBishUuI@juj1SO%eao3JV6Bk|I1>1!y>OVM7b*^P6PFsowCs?3KCB;M=_W2bVrTHjRX47N(BftTt$xYEhm28zBW-^DC0`&6TtKi^Nx=+w3_WA)gGk*kt3Ms zvrI}f3gZNn`~^*{R+k?uK};VwYvP#FE*^DYl*DdH<1442b#i{Azq(F7n8VZW;S+9( zKC@OeJeOyD-aRu10^5LXfiWk@Ek08x>nNeH6BTz3<)o((S9fzazB+QJ&gPKjHXI5p zMh&@J52WUpd1<%5&@nX2mfE{t;$~j=W(m4Dult$oOd{lgRw+XPsg?(wsLYeM%BK;` zorL~Y1kFjVu))~ub~DycxylbORe-(8+UzJx#6QY-#C<0&Cx4*aw+H{oaWdQoWzq|4Ek^n~v zZ3vGgatYIX{30r$v-P~t z4Av=OHX@}@9?aqcY3Q7!oa?NW4%4xNdI~PeLiumfI0DYJ77eb;NAg!y!)@@qh+ zt|IlQxGeA1-O8-E#2(++Y_^a>XMKklCewTwkI%;ba5pwA&EB|<_d4UnV2N5kEd(ZS zW-FGirer0^pk7_fYt4AnpOlqwa2MqgajNeXbnWh_lro+%sIJOh-h9$_MO*S?R@5`r zrsQmm-sC{(Jxn-8zOU?vMs@=6A*StsH{_=nYYOQQcD7xPn036VCP$=Ab=ksJ_fk zOlkU=FqFQVlML1PHufROC+WAg8wZO6vtqn;bd+RTca--2iDcu6{X|DcS{k^QKgfm@TR;@k87^SlMQ`htCW$^k2nT$Hp-IfJohC;O$z7^v*q7bWiq+&iC9 z>|4TD%d&!>;z{+pmf`q-k2pU(`R^L^n(O34*NLk7=}}%YAyJTzM9Hh5$|OJ%9y3Z6 zjxw&NWuoeotE0r_o${UVPy7@@~cIRE*_6Y0)0q85NHmNgp%T!gea7xq4IU1yv|zXG}S%#f{f{f zPy!c2hu`x>iFA+DN!E*Ou7Nah;7JU!?+g=%ReSUifKCgtZt{X=$DsI4p zivsVNi?9OI7NtveSphFCUS*5(Zszy6W0dKH8rdw5e8755aWqa>U(P-3CluCI4?eB; zG|ddhO^ybM>~>e{$6?)*#f8mW&sAOl)~#UOm82Urfij=YGEs|2pxUnbtY5a5mD&KY^C)juj)olg{@hA zz?A%OqviUByoNbYFGGFy=RuFi4oJ!pRdBD&8dXG9gzKyWF-b|Prd9E-pjLPzOdzr*(B0tDIthCi7 zgyVi1FJDr=ykOpUhsAyJDi77X(UQ660p97b=w`TBc1Jbk;saBRk8iBp$+}?=5tYas z=Ix!(_NU68J@p`|l=NKr4Sta&f`$+qC%+co+9f~$Y5AG1`VneOny7pZzFhexnRSJ3VA^@B?~c+r+iq`~ z9_!z~xoFkj%0rBE5`-j02su%alaJthYwsc$RBQect?m2KdA*@Rq0{p9nNZ4@;l%xX znC44a5QsQ z%BbA16s^Ew`@DWp>&f;-;3KV(bS<|PKzXM6pBNU4OJGLEU~$P&4CHiTM}CZiVOJm^ zv?j}LJ-7DpByg;fpYjP`snCH|&{` zw^^rripOFkBrwspY%8c>kO-wSEsrOczak)FiU-SV?MEU2kZ=U>&-R7=e;r`XNFo0N zL2dy@_`|pV5MV8rM8F9dCy)R2^!u`um=HQ0CiXsTwDra5R1Fmp|KQS3nCk#={@3Wv z&IN!zz@7Bf=h zos0La0hbF$rNl4+z|+u%hi})<584FK*&d)=)&2Q6x>`75^Zewo@zD*%we1A{U&RGN zJx?_+-d|!L{wMGeM#!u7Ola{ECNmjkO**{#&s`{_glm_?5Ia zpbQjH6+}SjuK^tE;M))9l8$m9hKIHc3O*=ju`RTH;btcq2||t^wvrS=F@m}&y-W+W zN7DnlC@{XDW2+sFjwaRe=438FB#F6UOFatWwXP!v1{##Gtm_?nEi*3&7FuM|EV`s{jf|8o2WT!RxwQKM8qG{9#vD(L(@jpvapnZS-t_@w5)~<5I^Uhg`&F-A7)}-6u z;3=lA_4fKk_yq~gqk~w z%&T5T%1ugMZJQQLoEWi5NBIHaQ3}nQ!hIJ35$hfA5(G~f)%@8xp6(49l_U~JI*@RX z?kkr~bY zgFx9-tkDUnTQx5M!q0n4Kt>&bdW+qzH;r{LFU!;B%z0ae79P$M&{T$ zypg$L4t7px{kZ{Pc8hh?oe@slm*RGdn)t-i6eg6yJsy}q+5M&!264^9_UMJKgoBNm zix(7>J{z&~bh*~wIs{ye*vfFalvq+j=uSc+n=WkM4sy&^Ex6&@76~;iRY-&%Z~{*4 z)-%bNR6RX@!Pw4}kEqmGP3(Vq|2kbJLrH6Nd$QI^jQ<6q?@pbx?JD_noBRH?ao>>M z8WnUTXss1OudbyP`E`r9moHuW@v{$-yrU!bRr6nysRNr8bfFY0BZnl-$Q6^DP%KmP zS%drSnCrb!uY;~pvX@EKwf=o#h?KTzRavhz8siz&krFT6DCW%t5Ar2^;ToYbH)=pcGY!Y=r%AA38?Q>xVRIua(6 z_D);#w|EDg=75zMAsSCSz`OLGb6o&_eLt|<9wwA?_HHTVoG12nvS@B; z*OaXW&nA4&30#7BfdYa%MgdW+7gDKYkO_Sz29?B!O=uv1lWIyq(~0@17lA2(1#|dI zVL$i{dNif0H?)nAn4_kQ-xdb-XOdH>#H(C8y>ld2Bvkmwe3r6F3{_5on9f6x>;Uj= zQeT|+)5_fgMg*qKJRU_zf11#nc23Bt;ed2zu(EZx|6A225ex1%Cb#19?!;~HH) zg-luppH%0}YOI+nxE(nSU;yu6+`?K|1|-V{i|5uW+a1z(3hKMUd)ESP8a zs5ctApPDMWDqY zm4aUYTZA~hfLfNI|4qh@FGEMCN za>gVxT3*TF?Z=|@M6`<0{1p-%4b9{L?9I18+9bnaFzyfzHkEqj$F;)6j4gp0$I@Y; zs%X9_`cnm|mBsHgk&8G~e9xK!-!3(>;Y2k0jr({dCu>N&3c-7mY4Oa}pVcB=kO5$ky(HY=|==KBPs2A_>#WszQ=REl$ zZ*lbJ#|bA}J02anuy3@p$uEO8^{>TVEA(V0%dGCH3I0zc;GIO|J+Uks?wL9CE!Plz zA#+yIoKfE9JlWCPNwSA}&&12Od%b;KRPxEu{glP|3@5QquWQaN??mN^r_WPJxD@rT z<^F>Gb(80eIm%|12q~`}4Z-{5VBM&fYBKuf2sKU=Flv!g3k69G9{900bv358diIMs zlkp{iNDq04{4fR|%-in5fM#|cff^xxj6A-O}Amxas+}LuM=b%>R zXOG^f_%8&|vDV02Z8iG}*=+j1)42Ky-X2THoAEkru~-qE@5L@gaXx{3otoXeCWI;r z0c}yw~{Uf6GJGatSJs7ZLS`Iu9DWU zjY=t7j&)-KLHTQ{6&y0w4C#pvj!ao5tET#BYwY;*bzM=W)OrU`a6+(ahf`Gw$bD%c zIHy^@t@8M>tDMAUW8%_rhmXko9ce{pC~#;)3h>6oCwPuJ-{N z1m|o)e*S@yY#1T6m2~2?D>a=Po}U+Iw|+MDXt-vho`#(|BGRVGSd*MOGS@S$5P zIh>NO>yxj0EeJmm-CzP99t@(wuUYs#hz^1ex-u{Sw@D~IVIHNtaF!Vna&22v?VVEE z7&v=RL77_*z7+zT5p+3=+2y0CQfcA0YES>c+L!`jdBhVUiX;;_U7N<1xEDy*vR@IX z;*& z9^=Hic?^CDhL{00aXa;#i-SVq zu({)F;~Ebq9HI+>R*g87K+wQ0zjJ+t<8XN7=M6NGns$m27I{9yC*^}NFdRq>Qlp+vPzCxf||bKSHgJ6-oRFPQzKfY~i#qnIW6PhoV#8Rt`a zLZ+=e%JGGF)39@r8Sm;yqUNKp!iJd~t>YIb?e?YnCZFwLrL_kM^+35XjF3|=rdkbQ zr8umY2kMDlklkK~jAqrCJ}yj`D+Z$rvZRt?i-S=xfj`wl5FNX&yetpil3)9QSe}b` zHf82$9<18h*^+f$MdrkNlZBx_N|77(L4@EmH@$|Mb80s65Rw$INexW}oV|#uU4Y>d z7)iB#zhoBKW*v0gX>o`Wv<7RT)qDIhNi{PWKBf7E_E24)_~fxz26h4FdQJJ9yENtn?{E zMRl5(0l@hb*qk<4w{R4^BLD!;2@XqxdO83RNLe>V&-u7dHw$sE!eo@1hBL6K{(wHn zmw`1r@vQrH+hhMdoc)yRuBHn`=s@0P79q5B_A5Hay_1A~<*^Wo324{ieo5J8tFXNV6sRmn)4m zBeHR$!(T!&i=ti|yIPjg~{5Uw&15e=zf~wb*S7~ew z7~lAbrcWs(p)kNxV3Fcf%+-Xf9&mg$KA4+fUK5{i=nfMLE=J>aHm!IMOWTk=9O@a( zRA6&usNRd(9Ib>guJk|<8zQvl8SyaxmrYhm5$01oI&gKwk8c6z(@ZwDiRg7;m7_RF zA$FDggDLk6$}w-HY79F3WHvhj6mWjnx$a-t(WQ2nyXvJ!iE0Nti~krZZ(odrP3RaA zZRX619wkp3X)N>ilAoWz2ERz1d+(?eXk%hVl`@uMC?Wh3u5AxGV1KR-Qio$MX7uGY zRL9qQD6Q6jS7Fy(*ISu^#_*lQ=8Tq*Y}fG1H?<-zPQ}pcryLf0^x$+QE%(X)QFJE$ zO#crY|LkA~W{%{Xxi?10vE-QhtVS17-#IEr-$IeQ&k%Fpx0oa5s74Y(bL1vhh5D9| zD;4sUq`trX{)O$a&$jpb`FcJR4R65qhw`RXj{b2^y2a?pSILmHzKOmt$%^hah(95m zz1`O7X+wJG7O+588NQ|xtC!3oxx+1#$1KP*XEif(ljW%nJiL%}Qo>55k>dL;B=U6d z!vb~JH1}2MvH=-D$5!bp#KPF2Yd3Mtj67oJLDI604U`jWzW9(&ItJzAzGSt0>8!H1 zhh3@R_s`@U=$vy&47~bI@7A=Ga9L^V;Fh27EGj(aaLWsw6F| z!Mv_2kYR|na?^Q>Pqz(EXyj{W%jIL{Y{Kd?bFY;hSY&RdOw(G0#651qZ(Gbk9)3-G zl1j61(|Hix(Nk!EbUtgH98`Yp-owCT)&j6{I_UF?%{(u(fe8f_p_vwxPrQ)sPC`M1 zbj7?2fHP$(le_-CzJ7}frWx|QzotN8+{pZ!hpc?%z)$(T13zslgyQ01epxgfs;Z~@ z1)80z7biSUd-%`->HFr5)eZSDzq^&QixOrl9nrd-Q+*?lg(oEpWm)(4QVUIxzLU_Q zKQgQSIQzI$pFWtXlfysd>BSQzDq>jOy$b5PLGCb`CNi4Qa#mwm{D)d0uU|UH$2E zeG<|e$mu?;!x6@HE#oYP7{_pGW+PyRPR_UNimOi6fd_il6Ir}UVbib&eb1z>pk8-GKu#0XGPh#LV1Oj+u!EY2b~z0lM3F+UNp4i$405K>#(hw$dk$cc{p5nxkpi= z6zKO^W0G-YGdRdPjGJ^M>W|xC^9}ABk$qiRPY-b8b?GHt`t;R? zbw5~mV@%=M4Y~L4Zi*YiLzES)3qf(i1vlKsC7F+_Q1h=(lOD?aY+ zgkJr^PrOlef)!Lj&w){8#Yps&)H=%UTwS zI!}LWEG3$5xK~VS`@A(#Yw|oyQ93-m>vz<#+R1K^ny(t5aHZwLaaY_GqL{U@0j$}G zz;{lp>EstEjy^~4>%{|`$G7GXkWLPbN`dooO`YJWH;Z5Pe@B94TUR&5B;hdVrAK)j zf-sWT_MdNv2+KVR>Lc8i0uD8yWWL!sia-$R~tl>u3^tJ}BQ?wwkvit}Ls00NHR z9NqX8(OH_&zwr+G`@TJxwwLvF;6K1h9-wOC+W$m#mQvHz)-6S%=n%l)hz0xyy!t?? z`KR@lMJT-s@Ke}4obm+n;M?udFy#Y?%i27atjG_Go0X*jNOV37m@VDC`ej!o>p7(2 z4O?Nw`wztAJCllsLwCZBnkNL7d<}ULUdt9f`UrsEXi9OTElAC8)sbgq z+RyrbX;c9#1@j@eTXi9TQT6O{ct1Em;Ng-Wa}gvCR2q6J=;lWCOrX)3NMOiIY;S;K zyY?3a^Y-h3zHMNBvVI1c=g?CJ`ky-*xnb9duS~W3WFEM6LC$o>sprf2Bcq=_g<6uf#dn%Uh4(krCr;n0lLO4i$w2TkE%Mx1 z$K5;6f-?^utG}KUuF^RhxKOo!dIo*Ue?Y)OCHF>>9&IoGP9zMsAR(khw`qHt!q?43uCC%?X@RrmOi zAYAOMsPyk8=YM=pwtc&PWNdJ@j4-wpiINKg_3JkLUGTcBsnm)Jt`&F0QOugY>HY#x|vhPh^_6PITV+RL+7 zur>2Wa3h{FuJ|C;K<#L6=(Mo#>h;r)?EpW21Rao%NOBi7^L$s%frivx43(E3V09EL z&>%?GZwt!_o+C#&_0LCbQ`xWtC9;88k#3{M;}8L5elL+%t{i zHq?G9&a29TJ4oZV&OdQ&^G``hIgw)4ZUZ_7;np9OA-*K66q8RqYvurFx5Eo^aEZexyNev5 zFsEjwO+5QR(NZ+@3H_k-!c8yIYQt?!sQh0pG0M8$v5%F?l}_N=>gCpMEmb!g-?dwK z7mZ|gg37$cfUTnG0I^T9sdv(dVS6&+* znhnLjI+%Vk*9T>+Zo4C#BT7X|E&JL3Q7uBrCBp5e3eJaoMme~0}I(X zH$Q=;$`bidBD3K^HAx$)6yPH4KE1+HTLAbFxvw?9W+4v%$8 z_(-t7x38&^xeAD=F$@dKJ8(47OgdE=UdZ?_LV=B;Gu5uev;L8eVTwd!jho}eS7ff> zVcgSjcw(2otinHK82~Z_KZ^H0L5TzBrD3xgfV1t)4?!Qd<1+%fsy(}k8F%B{1nVxy zD}^fRIBi2!67+$*ShSqu&KAOl>mMc~PEq-j;xkOhjvE}MC5I*fJ;nAbGyAW4N&*3) z>v5Q4guH|?14n_fG0vpyVT!DERM4vE*9;ZsT& zXg=k;uldhCh@K@(hTeUisQ5@y_!&%Sw(IW|%Ge9-dK1uwA7Ysvo@=H^NA>vR+$M!S zxjpWBa<)#Mr;S&NVuj%R`wi~&`>(31&131&M7?EYa(NsjlIp7LCeUcEx{UrqyGNkT ztG`K|9veb>q*yE$Hfb|1SJa1q988m)JB!w9m@HvU_GXrc$#KLp1W)&w{P5;$7|&JC(D4ltu*Oqjw!=WC z+R%CGs*FP6pR}gfTEH=^t+G>nEAX<~b>g?#9CWAnC^979{_mjste+n|QGlF>FHUK7 zAN&3alpLTcGu1l^W^8s5LIsU_mc9XtEJ(jExt^xvS1(V#H2l_}w(6#x9y`ry>b0f5h?$`IwW{N?mp4x@IwgejLM zGx+!Wg+~7>YKmWLmV?i*2oo}JhIM_?zy;CspxSOHq_#D>5QQ!Lc`=oU$s*LT*mZ0Q zGD)ajkR47GIHLD6H1_Lim$RtjW_avSvnwG*n3_QW$}UKyfD9!0 zhcpGI??mzX3$M`yq8TAVR^{Q>B(Fj$Biqz7%E;r`TO!I=*FZ zCh~Ji0P=oKA%8Weq42mT(kVNQ4M%>j0fcnoSx*{-kiz6haGW3LE_*&s1-9y; zS)Wtq?k0)U6|Q!G+CBx?k=}x30y`49xdRG~1KC1?t@N^iF>!BXhD{U#eX^9M8tz(RoTo|J?`0Bwpy3qx%6>bLL~n(3thC{&HFp!<{fViis!J9h@& z5E3JZkLVMh;G6g;so7>E^*zI8ve1AB6;N%6efvZ*sEf0H*vtjI(D68ZOOO+Zqd@A! z;h4!+h#CXdWJMZnBrn4td0;rlAC@rl8PV#Ow3V+mFop?rNu5n0G8spw;`P0GOe7>R zVFy5ZL&9cAQQ|U-+FaN}FI#u_JE?+`w zVn`xiOS}+r&PIHSe=#=E@s}iDNB^)ZV;-8#4u0yV!PojWk?I#WemyxoO2%cM4=)12 zW98}|mX(3b-ZrFvGIIXo-s4~`wFsB>UEr}w^rR>XzDoVvugX2TBGdB5h zMJ_*g6)C(>fzld6v|dV1k3f+TT>MhXyF+cF8SxAb-n3`2BLMF%BmeyP9!~)mg4QM@ zNlQwyVWXH3$;-JGx4DB-xD7%crg|d{xt`i_KCnnVEwoQ0LA1myES;4|cy_rU^bkWL z)Y{RE@3C^)cO;@L`X09z%m`s=HV{qk6*w2OfoY>#3^`^h$1zbVz&pu_m>?X6_S6zC zza$`WyJBVqvrzs#LqvqNSSI%U!9}4#k3H>>A-}U4XPd%~B|NK3wxOpJ=ET@d zQudcq7UeQO9xA5r5Es$}W`@MKCDYt99OXz!0j>;i9iTL%Ma=SlmleYfcg?IL1G042 z@&ROvRh#Oef#w3f1d+O>hnyDlCNM~bkZrm%o2q0o^6f~1lE>EovmB-uCpSGF-EHiY z{{%s~t>hiql@CK~A_1pb=>e#?3;_r53UVdE>Cy0(XOPGA8C+AHa zl|tUsD>OPvo>~+1y_W=bWDusote0#gkVwAOm0y)2J}$ZX7)17hHeU~W2(jl32*`(t zTfGwAFA=qUau+)A1&WDh(pAe*a%H~Q%Ya$Px^EWv z`x@Ti2uA4tEB3H2{Gl;?M~^5-BF(_WvT~!^pKGcC>)2yLnr?@Z<&Y^KbEhH@>Z~c2 z%S2{bYCf^7ls!`rkivX${uyeBcjg8H%Z;jsLa3s25i{W8MFr+2pCc=^T?;%0#hCII z>`fG6e+ku2r$La8u99K}1G*CE`$cA1Z%dTeHNXYsjM?M-HJMBT8$k`~^vwn5G2pku0e zI^hft)?T1>guj*i+ItSc35uuQWNwFbW{d;Zz9YhmbFn7AlK&WCb2~mW zDv6M6m2q8&pGP7LOlKzQ`@@jMt1kjwo)e8Sj?QMvU(n7tnN@eWc`uD0Y!vn&b*@*S!$O+(guy*Q z`lb|}<-tq69OvxA%a)?2iwkfij>rH>ey!pO{ghdkTI58Uc((w1=Wu{x-YPQL9LPA~ zhe$jZUlxMuSU+4`cJA*JK>F3W=`jRLiasNiK9rLi=$0DZ5byFNo+$us3fjLYLb%`7 z;&!UfFeL1{3mK0TW^YwZ|CI+e|5GClMtgRzRgAO#X~+)&>A7^g5JWO0{^W79yG*e7 zEa-iemlKf23u4vjjEK6`_hzc*p)@{l+q_&YGIex2V2ZZLd4sb$4!hH(r??3~m= zd*tMtHXp+N1e^u9K0od*O+uKJMGi{a{)3GjF&#{3#{cLi=jlGs5+{8WWe44FJOC3? z8j5cqLnc3zKdRq^KAy~^;5!qUVYzn`>xyFe-g)q8=Bkz{%V$85{*cDOW>WsEXH(ex zf0I%p%F{j4y6?{A&fm>&2_+9P8F!roggqW^w2gtQH`i5!(kxeY-I0A;u4D4`gGyysd5EP*HGdc}!NdiKM6)%B(#|2!!dlj5@J zuNcq7%Ed9ewh0-$e0^Ryj&5~(QMS%CK3H<5Id+5I zYieEmClfv@^h~*KftyYkN(s@7zGBD`2;CE@YDoCZ{dC( zji(kMCMwmgqkU9S*-WHn4^ z?xnO%EQ=k+o+;5~?-ue5N{{^(QPaY^ob`JD90&-L+e4+{?`UX-mUB6EpXd6jI+ink zXWWW!C|;CJK_kA0$&f>tRJaiV(;Y2UQWhovj3nD$;oEp`I#E{` z>z-4i$Ox5bm=j)}PdaoKm#m36V$t#TdG>9 z#}r0{Oh&6DIik3HM#_GoY_2^!f!VyTY9lww=Tnsb;DeB@sc_O8^mZHL!q=ldDTPDn z$buEqkk=Pn9Ytz3kXvF!7X*?l{Y0pPT=g{q=Ee1=g4^ffiz2`r8#7;&52|WR_ zn}`#R{q=UCQ~B=gGfBBRnNy*`oDOM1_&nPuhZ+SLkb-0!yyz}L>`WFDB4m*v1uQ{u zo*$&`9F?8B#^yji0wO4wnEtTT7mRB#6W72fqt5FwLnEjnw|)jb%5Xm#B1K_ zkUZd8cH*)A@yDj(>)==N;lSG|d8j`Sg31MMC%del?Q}?wWyoWCw7?Mk_|)Qz5tntk1Z^*lDw4~4Xn(V@3Y!%{Dv5JrC#39IQ!-GxcG z-};-=z*pvtFACAlX7JDM$Y)*(6FrT8KuAjt`up)40rxb^Ggicv7$Mpy=o%EyYVMF! z%v>XhsuqY<9Dg&;IM>i!&~P#@28e%7O2G3Vz>s)muqzqE^=c=X+9T*B+0*z`g9m({ zgI8w-(v+sFIiH;pdXbvdcGNAU22*mtVpa_|@l&FxRf7ua7?(4XY$cqHDJa})Lkt>Z z9r@($uARCvB`V!67jX6>azwawsgTb{fX#Lhn5(heW58zDf54-=+-d2S@4tr|eK^Hr zJ18R)O=Mq=BjIou1Soy^6ZZ3f2L>tmre9PxFwgDRH;gO%(E-wd(s_X2AIS?H`S2)j zfIF{;SXF#m9pKqHh%)h*4+D9<_G(XZm>h2k?|*lUaE}ZweC4uyC+@!{|2hyw^SmfM zoushcdN{*o1q_p(2ev{D-+oyUw^7FO#hEe5^ZXFpLu1(^Osb-UY?bksZ}WiIU7I_n z|C+aXFK=`>$%aEazxZXB=d}|cnYXz1BR>h`a3m_Hv}CwF>Uo-xUh$t-zTi{`8TA>~ z1~COFHh9dJ+jeeW$NhE0gpkqiG*pZr+sYz{l>+=n(UK{$nUInr)-jwc*YiV#$)!vJKesnu=oK01p`6x5K(>vEE+7-f#AEP)u^P`PAPKFo-;4@n-`Tu~>6s z_2za#&>d&5m+hCQ;fN%FAXRWy{Xfyj%K-(ezr6%bKvzDb)pt5zP(1VxN3Omq(&GV+ zmtej|T+;aUa$nXh^!S%w67#1!1lw-8uA##HLGnPPeBS`bx3--M4*By(;Hn$*n_Jel z!H=>Jh8hz&~&YG?M>&!Z0Nn}zl_BUL#BQTT(;S}S}*^E5?t^wq@a zTg5A63N~gfUHV>Wb?E!x(UmZ_FhVs8hm1Z-#lnGViGiCCz?&oh18UoY?)3+9!suMh zL6kPT&fv~{#OyYYf|}}NNQou`$z^$m_@TJ!*3}RPiZdE+I$--1u8SWhp(m}|vG+hN zpWToyt*!(3%bPRE1!JGdbap>2@YZ`B?qz0Vsr7K+@8?`QW4HpKM7T4F*pGu~KVqVc zff}FHP?gWB{1K&y9ycVER*8m=W)!T!ahv|4JPOm%Nst;&M35LR5cQM4`}T|&v&7kV z6+-t5v-=M~39U1$IZ{U=7V$hK+4AXiveLM3P)-&-)CRkuG3Z9F0-9%lp=x_Ew}fiz zPh(+iH^R`<&%L8CQDule%}RT~tP|)*OqTg`eE@~I=1C7~fB}`Qy@{uq345q$X7iOO zoc?h(Pc6|Hv!=NpHUw*5UtE6tpk|YRj^4=U|0uVnbGXn^<-}YB@nKkDmF=jn1M}F` z4ga)$K27u0k`Ny4JnkfVH?{A==-CuxX?rHv+O$Seu$T2?!@2aYzdVAzUa<4Xd2seW2L1f8 zrBr|k%5#kqE)#quwdS!^wwZy^CA#Vz$$eLne|NM1lf4+D_y$#7#q4&X`%W`|!2$RF zp8Kl^3Fo8>DuLLWn1*>f>rJF;-&tg?0`o2fg~Z*T&3j-iZR|R$8Ugax3pQy`-9k^O zVbhb0Xt+OOj6EkzZ`6Hg_XnHucX}%{9^tL^qWE-vd<_kH&vd`fUSdSH4&W`=+Psgm zCFv<_GR0mu*~?4{=_~v`3ufV5(%!ntUSR-294_6c%7O4u!!Yhc$0%$m&GD9SgJvga zf7Y4`h5x0@6lew7RpAE7St36?obZDZ$CM+ox|sYI>>)0Le;0U`YSzWoRQCaqsBssNtF*v)Y*m z-Lk#iV%9hLD`6@*=@`3Nf7pdMIx_R7x0MR;pRD;b{IEC42%w2TX{PHnio!;JQCERM zH&(e91B&R4v{6{21Fx@nv!L%a#vVqdrQ={A{q)6*ozFQQZ`-_jbT z%vfp?U}o%`F!RTVC*n?Hv!@70NbExT>OJkn-K(R}%t}NzAXw01eMp`pWq!?H6{~@u ztV&uV`TGkbfk;P)tgOllbe{K|^X&1X+TYYa2>VF-&K58&`gGDVgO;ae8a>(Dii=*2|H2vb1e3tR;O(mm5{QF6)avW*1XLz3%h0Z2AVp;O8{b>UV@Bih`GSvI-@FaI;l^8sCmoBo z`79aZ{5QnDDkjk%#)D56GPc<_;@BPzVI6$U){gK`di>A{dn-ryW{^jrtEsFfBOo=1 zYFO^EbKe=b8l23&MX`8QwiE^~TWE2CqTI$>fqa?TdJZF-Hf zmX?e2JW*!i`ARn-(_@LsCm;?~g+!FHbn4J_ByOcm1N##L*ahtdytE`7;{NFxLXYe9 zHo8a?rP9#>mw~LMk<8&mU4gTkreA97gaf5x<{}yuM{W8a>6K3*8uKa0fCCAbfIm`;*5XaE^}`ip_DXd- z@Bl3m9%0x{4npl7*Mec08IS`8^`H^2qrlD8W+oN0C0!`v3c_QjTXaTtYCfA)yX4p9 zkd{X1PO=KW8#}OoF+-EbnxgJ4V<&Opi%&@=+K%k%kmEc$N_1I0K+$QM&GFkeWRgOl znY`qH!OPT3*Lyz|7A?3?)!rAKYKN@LeL35h;qtEGn6&8QF28|*!@ySq7xSMXR)X)| z$<`>gWR`>XTP|z@Odg5l?%a}pwN}a5_x&YYW=by8KFBDHGC)lYc(ykmR6u9_kdwC4 zc45`a;cK@rrY|s0Y{f6e-nS9eRiqB94POZseP%8^bVk}X;5Ci+Y9(Y7Dol`q;lqRk z<=!7h+xK=>g+3@&7|jiIJeMAi&1pih*mh>=K9zT9H(`<{LR$TkPsePEw{vYz9;>lq zmunEshr;Vs50NbY@qVA{Vg7?Y>|mjPTi!=H?TtqJics;ytDg7%{2|bQ9d}-VhGz10 zaB~qT7J*9a=3HV4;Jgz1)3DkIO7CZ=VxxUF%)=y%XGg?Up^z{56YGUkxyEV#)gy~F`cCO6Uj=)PDo5_ynd3V@h3)!_a`LOB zMk#NUXAbO^Wce^ceFoI9Co50t zyWH)HyajkNxY(UpELpK^p*2qQI3C;Yn_E@^%9u{es4V$>ju=xY8 zWn-0flSEa_F%2*eUoT~SLQBUIPAl5jy6iV^{TbS5q29ctW7&orJc?Zr3*``?6kncs zR}iuxY08%3=AStZ(yR^Xt{E9tZ%~g}s3oBzF1l0x%!`3JQjJYYw3oGacEiV4fT#R5 zfS}AZi`L=vhXwpYEV(bCgQEix+hfQy^G<{6EYw$2=1Lsho z00G87H{-s8GebjS{(z`L9b_A12y>Z+<+{#fRH-nEHq2@scy!LebO~2kt5SXmN5P%C zd&NP~>%4iUb&oOW{<%2MGnInVV=JlVpke;hT~c>%RDH5^kcF_pJmwP-Z*cb=@owf9`9CtrLqkIb_5cQVl~fMk zpnxKz7IOr$`Tu}4(dHCQIEmk2#jEyX+5W{Ca&viH;Fb9tns~=@n5T*|&{LHbElH`~ z(0*Wn^IOR4CIQ@+SLq!AZp$0Je!~nTEyt=Q*gQA?2rK(jHRzxcbB6oPWUg=##^ZK* z#8`>nSI2t)Ain*Db+H*Cn!MZ&P~@T9$%o>@Wb}}^T0V}j4=PwAD1edKInt73pU^TxxaTe|HYiFqB4;}fO1GQiuf&_ag{F{;X-2y*l3vrQp(aU zPQ@1oo&Il?67%5QB5W2=vJ1M5H$;v(dlesbD!eo?uRj(X6QiuUpm79!P32mBU!PM2 zm9h*w2=tE%=yn=hkOuoMg%Ab+Q1UO2mRPe?`B?7P=}+PnWvykMvU7{i-s(&a!|ej6x=KEfn=eANSrj-53fGNg&4-(-!Zle&+w8 zAbxpWTK{CL2obMPN!A$7$N7lMc1PjwOFQ#Q;>_>!-*4_9NE`AzyyEG-VL4zo?t7$) zgd5e)u?SMOvG`yqj1$-aP3IzQq_-daAuTB9ndf2B9{v?GuS;}>SW*>j9CZNsk1>=p zU8|=PDzBpp<+^?&3wa`l zF+62KMh?lV}4nVA(|_HRG?J)MKR5pz@(S;$Dfd^>8`QHZuM6_ zNB1^)nBjcuvy$&&yQZJHH#sszVLWKpv|X54Hj%9foYcJ<-Ang>O&W=FUf$ESP`Tpi zG2_tR<_wjljZ?V!j-*`4{?w2+Dxv^X;tReG<9nDWSPWin=V|!(c7gVy<0c$8vq1H zrjQa-`t`{rBBJTNuqzam>?+@;$O3TRcj7%pZup4?csQH#CKF%}6}T7lc%+ux0=aS% zYNw;r_31>w24G%N(G!@wn1IRMzu7l0v)E_S8y033r%=gusw^IhRrOVg_8VHA9zs5P7cwy|>ioCbHGOSVGB<776uX_Yx}9}=hXDCS zKJ(`qKNeTyfCh}7l5O0zUGG7*${b3K?ClX@}7CUahT8o5frfBI8zDD2M`vr zi!DIFn5?(_++<<6ZxPOOpJcHM@gLAZ$H^*z5Q}^*xlbNV=IZsIRF>{s)$UeBra$mpUQPQ8+7b`*(HysKW&m{NAkO$cJ z+5EBP9Fy*qz-Wi_EgM=F++*9WdkDgMN zhr}t5de)l`+At9BSQW9_U;SmR#tJMnE`7QNIh+3-N!C!n_%Yt%t|_ZR&3WVIQ_qlf zwVzk7XfBo9*T{s-Pz_xHlznOWPp=Al#^UrIP83~ zj@(S7HP~2rLamG{YO2x6{iH)vi7@545r@v6Kv#?yao{)t#6oRnWU7Ym)?=Y#y^ zq{`NHklAM~q~*TqJoJvf-D@l#b1@o5x#U~#WI<64lh(22T)g{tWH&$5Vzcxzi6*dP zpxQ+AvXO-!NdIW`;9ejPjFFeivOHGF;$FL-DhsUShX4Tqsy5Mcy4yo2Tcg znp@p*vhk0`n6B%Ym1wl&UA~Rv=(z|6Cs-%@UNDf-o4XJr87me!BwEG0^IPQ| zLvz50_oyU&y|u9E#uDY*)HbDRztWafNdJ8@h9ygU4VjVA`MAJcrWC|#6UpZw^}^6I zohncX>q_Y^4^5!S@Ec#0&Q-DbZv#3o4PParysBFL#fNzo>tV>KS>NNG@=lj;8s}V9 ztl~1ia=rKFsXUakl}J@ho^EX#nio&w`F0K$5GCEyhXV}Otui6iBf8OvINzah1;dRR zw6ZC26uKvKBXM_dN%KftoDC;ht=*SWCxj%+esno4j_b|ODhuGT`9nsGLPiW@q9&6hMX^HaQ% z`aG!G>rQ=M(e>pT3cWG5$!_#(#yv}wFGhDNdAgtcL@Q+RLSuvaE(fY#rpm-f_GuB{ z^eU)sl9~p3(I19mnE!*%MMPqQKZYGb^FunJnWB^ zcl&y1R15^-2CpcjyQ?Dgv>TU76?eH3E~uRh4t_+iYt>+9zf{`y<8ryo$CVJsZsy(s zt|E=X;jctf0oHhC~s@k)E!bc;J*7J(5{Nt$2_hog;b~xZ7ho4 zGcOyHflO!SS7{~RxX2Xn01TM(calafZGN9}?w_bzY0f zl+{Yfb;9cgpf4X*y)2PkxstqGGN5=B6Xj&LaYYUq@t}8)QhO~a(IPuOOby_7l>5gX zulK=i9jBO|z#Vqb$AP890@CZM)OwSmSLtzHSG=Ms#FtFV!LuRdM>P4B;@UP?!Me*9 zrr}kJY-s;U{}&byZC>D2eo^GQJM~X{412#l-l#(;TLtfD8ji16ms^zj1}8@=@c>Qp(C$H`iLBt$ zxBnjOMwoO1n-pmbZ8xtmu~2@#kovw45Ufr-Ib$;53R0H09eQStr!zJ zbKK$b0R#egd|R1TZG%_Ze3(}g{rWE%xKx%`bn}n--*@QXc^|)hFD{(xm$7LfvG+6P zIR}qe$_;^a*i>dCMrYtWP{`J|Fs9@sUa0fEll`7GufN_kfkLn$R7IiZAe{m_eBAyK z{(8d&ceR2OI?oqd!Vs@+JGxp zAfTTrRj=(of2<~|nJUZQu+J)aaNO-4SD!k`B{JCrG?Y6jLqRl<*o2^0Ab?sA zbIO%ThXAh>%~GcAcyN)Bd6sH51Vj80E5%pJYW_gcJbNiPne7^4&o~7vchk`+P47?Ok zwmkOcA$_;lkTLv>M6=%4h#sIg+5BLkYWC>hy3}J4cJkJL(z1wvcOk7bGWS5a)qM*K zPV=)NYqb=fYS|qSU08}Ii&a4oU*tn-=AC$x6j_cxPN>zC-^!|Tb3cHq0RuXMXHibq zi-|}Dr|^Mo)1?rcK-tWQ1x09|$ID3!xvgGfCJxBcjvN!N&~c+c&yk`$gB4a83f8k% zYgTlC2G5yRFoy*4^wyk1knl;xBO|ht*JZ?1K|`}=rwTd+*5&eC_ImH@W7NGYW%dN3 zm~%IeMa*2A0pcPZ-WF9q^2gj9tO=C${FwRxz@7rITQWUeI>6B-Tf{bpHn=8SwxewW zLZs}y(x-rc*Dhx_WneT~qMBl%+1XHqi#0l74S* zapGMdM+Nr#Q~BjoHm`x<2X1 z$sIZtkB-YR8vrhghh@7jH})4N;g}W-`Z$@FLp&rGvk@jJw{epOQP)7%kJ$27+49YL z935YMnzp2UHF?kmSpA1060jWb##;yym;J`bl2iST@t;rsKv`P1GBjZ@Ro3D}w}|6c z^9(2+!pqK9{J1@8Bjjc`m`cey*9ig7bP!&w_6}#WpV%I=)$MaX2M8-qj6@7*_{edx zx8{!b(<3ggvLla7+nMzH`EXDDu;8X7EMBWge}g{~WQ)TPT~ZexF<3Pg9q27wZPtgCFY?J@ECle;3+1KGb5$I4oc-Xpt=a6hUO%%hXaDR+X#6=A=8Z=7i9vtg`@WF$ z!P`DF5?k56zB*^4t<0_4BZ#6j-n0v6MTDgPG1&B4J!Y=idChhi*H7F!rN26pSW8iT zK#ojpl2sBGvUR@J9@^$v*d{v;SRBzT1vz3+hhG=72wmO~-N$;?_sc6$Uo3N%4LmND znJXpnLvs~yR7Z1>;6C>g=Xd-jF_;Hz622(3F`6gzU(`tnr3_z(NUq`$a_(~&4$ydXmUGBT(Rs(# zOEd~xD84$;@^9e0s^*D|udWndzYLrCsd9PCghBb$BeBhTdFAPC`I6T(<3tbyB@5rA z1{9!>9*_$4{sIWKLVu$Wh2MX^{=lp8qSuLYnYsWM!L8}OP<&I z3S*7Itt#ph0Z)G$ZwFAT=c5}nGY+u3Ic1#D^b$BG-~h_heFb{Wn4E!}Hd1s{6)dQK<1pr8@%!wo)#T;lJL@tk zmIsZTuKAAxOj#J~6wIL2s-|>m-KDN@M#Ae-KUUr^rY#8FEY{XlnRZE8aimqST*AfH z5q$#GgaO0Y*W;fLIm{CiCz@)F^Xr%=eupjoJ_fhq(CrN_lwGcbEkWYI3CS^TZHB3F zn&Yyq5o+{-E6O7nJk9a6Z5hZ)3ez&4v`%isq&hF>N=fDBFS1&yD{YbrGRfJLVP5vN zxcPv1!YzpZAv#$A9N_2G^osK_g=h*xpu)hgd-BYkOz-fjRp^7yJtBU@Lt6TEmK4BL56`FYp?Wl;ImXh6*rx}H|Gr`rV=8s6L^4{D(+v}J@8s>4bxUPsaPhA`04&Iy+3|@EC-*8Bxk0s z3991xax}w?7-7PGM>46yiuq4vvG63D7{rD{2je!L&fpv11sSMJkwG!)?WYA4MC%7} zy1ndpaekAf$#`D!_(C!&^k@jQ>@&N<^|si7aS=W%M{Y@y{hFz2tjNgbqyNbOa#86q ztN~srVU+TSkvZx^s%Ci7>~Ue&{lgNv#R!wp8hq}@mz)YZfa3->03N@03t&U$zTS{{gly< zW~78ZLe?(bAJjw4$0Jx#-2SwP^N;xapmu|Ugaih^T|n}{zXOs#k<+HaoUsat5CG2) z&I>jH@XGmzNbJu9>LSij2jLxxmMYV&Aa z34{ow=1Y;cHu(V}888mgB_ru$2_L83zTKS9KLp_&!s?O5+ufE~P>?{5w$aL@9^)yk zp@^Xaz<-ZFfP<6>&NIsyrG~_3h@&#H1=_9`F}dTxpi)$>LV|$S_c%8G-VhU_0;k^F zJbf4IP#4gbL0&`o*=2ns3D6P`x5UIxg~rYtCjt{@{>}a=Aklgz%Lyrjii%Hk$Z9yvKO6%< zQ!?Bv#6^P=&Uj*mP={X5@(Q_N6yG*_zhzJBiQXYwhvP%KW;;ikYxwX^ZVYM! zW0MD9@!N@a^S<&x1cJp0@({8JUG91USNH*NqsyNjP{Zz#Z}Sb>C9>-(e3LZhpMv7` zfUgZ+0fNYUCE_|DM0|G)`RquzE9zr~zWlX>x+;F##1wfyc~z&ry*^S4J9P#Qy7wm9 zUKR8^I?R5|pk;ADxX9^xF%Wh#=_&FUxuDDuv3MEqt2Tg>+HBx?nP;k2Q`&|fpk`ov zHoW}K!-&U6K$nT^#1o(g19Q4Exu7}I0 z1E^l{gx86)e+fZj#2G_s*E|izZ?i4fXlzlTuPI>$kutbLLB{IZ^of%zCD#OS&Z!FQ zI)KR!RD{M;IQi_gg#4YPB;`Mjp{i^rwDlMWeCXh02*76=o^Q z@wel_k;5%KNX^BhdshLoBbpP*@!#Ju)B6!iZXk_~;Bvvf5`aGv@P95%osD;Lcv4mY z%=3YvB~~`UrWGRTgB}Ue<%cehVI+RDX2)^wJ~L{b>*RNf+VdctgO$u$5DoB(@%AEr zWXe2BykXsZa2#vHJC>Xuf3r#mU`wXECl-Cqo=}kstsrYr5H)}CXI!>} z2oDkp7{pXT?>)ZF7t+i;HJ=w5TJ$Fkp_1cB0wbOuoT|WHk6ZnlZ?Oz$5u%F=XCJ#N zdt!nqKUyFd51rn`mSgZy}tYKS-l3ZmN0`68@OF)PX|}|0M2Oq=V}@w{N6qeM4yh&|46F2 zhg=v@7zsxjaLT=>3TS=*D~ld%2SZ$jc~!DE*O zv#+gqcVW<**jZkjO5HF2q~m#yW72EZg|zlK&3+`|ipkWW;Vg1>>rkzNvlp`FG+MNw zViSm*OQ7}3RCWH%Pu?M9Bmz;9R`!Q5Kc1GMj~N=30 z$EMeXzI3&p?sY3l*R~E%x*&VUWPR*>HGC~=(+?v1<90CN`+%slmXm3#0^qPJG>4ix zeYd`Pkf3vQ^Zbv2C#n`sm7BTLYup`$wzpM0SFt@16!JuW-xGP1P)#t2YPs7qaZ1WI zBE34U_sb}bDLanr;kU?3p+7ywGhwW1;A~u}g%jE~MJs0VF@P2MhNNIM=e1H*tlkF&SAV5X!wyo(Hx_DXXi1Et} zc2UzDT97O_q%EikHE5LJFZP>F^s1eX(JuX~$}VeylX$$PBrEo-H*dcx`!?YFQiA>2 z{IvPf_U6nM?xp^MLvtJGpS-yoK*i?Y3tKj}H5ts#>ucpnh|sM}KWD1c64czBllOgO zxeSx|TrN_B)*h`QwQG*y2-oc8&}ZM2x5?eb-)-+}o2xFTgg{$GIXYjrG72kfB2n$1 z8o(>McYhVw4wh`KF?2rFHn1JNcg(bL=~|Iy=Z^(tj(HtoLchWVJ3VhBs`e1>6 z>=me*G%Rmx6&^5GP&a&r#fjh(qFM)cHOaLrU@sZl-5~EZLtj&SxSULY&Oe@Le}z8( zRHv!teB5xvDuLo70(qweAT-)sg?k{<9WeAcZ=tKIj-FtEHS<#uMJ z+DjSNPAiMhPsF6wkGWHnKo5(EOI3fk&D zrprxH1O0|mF5qI{%PPT>R!0O#`eh|}iJVu2loK&Q9I-2j!tWZiqJ%8SnxF5%HLYbhgl^j>B= zseL0XltX74P@8hEdPe7+= zE*2a`tyg!m9;)i>&Fuex{BophLfqB=H@|4EXb3I8(A`=VotwhFns_R6n!MxrE#c6K zwEplHW~o~~ov>c^;%|aN8`971h_7Om+5>BT#6I$n{Qc{jk4#7}R~R4EOp^gh z=^KZ6&AO^$^TLiyI9YD8H*c6#wdMX+b$z-8tIL~#d`;OiZ!$2~UU~G-hfcjp#=jya zWcQ?47LMw7$P8>syl?0*&d z&mhgu$cg{wXXdi-pia=Ph{fxiYX0)s-*5iXu1!O!$lDEdmuKZOGVRNFCj{`Gg)dSC zfDke#V`X6wux&l+-?bm-cZ&c|hWy$_;={jl#blI>9Kr#}KlbUz`oH~ zL1^N_{dcqfB|#8}iNj;jNxQ2~oxAc9hfD(jW9`LSkXq$XrC54#^7B?0AQlcqZ2t!? z1VPR{nh*SV@o?3tasVa*WnkQGzU>GAkcHW>kUuwgu!;xoJ&>h%lq>?aG}Jf!@A}fY z4$6e~H$dZ}5IDMRa~c3cz~@;L2d)fE?@r-$DmSi0?*BK7E0tw(%$31Tk8QCA6~E+h zodAo2eZ1w1YSNqOn|g<{r~U|vSEM;#0PabI0L49Jg@g}MgEXn zmOLuCA@}>uck_K0{xWp_W9eG$HaRv-ui^DZVh5Rew3ta&{`OIXDMbjh^O(5YsuMn# zga+MZ*?I=c93MyIx9TT>!Vncj5*ml<0UQUf6QG>V-?zH@hHwaw;e*QQnO75KS2?bm zDyATn9!FPv^qNvi77Hxoc!H*1Q5Ah^y>ZP=cm_=K*xN`zPl(4ZxL!GwQvc8;{o4;~ zm-2d;=Euq9qN;|0g}Yjx?J!kCZN z6KY2EMi4CqKQ`hk`);cCZhJ#(NH!X1+FphEufgAmI~e2Imhcn?}LhVqIii% zJ#-2rvMfyJT9Rfy3=gk)wk8$;gE9(J^s{saH`p1GRw6YhHKTrANk0#4+jQHbKI(=G&rIp1&WENK%@67dh! zdjKIHhdk&84CQZEFNa@l149QE&$p1({fiGSRW+YCpCC2Lt|9%F;9ei4?Jby8tr7=q z*K;hZb#xv&GewxwF{&n8?kUjpIG9i9a*6vRpJa<@JTK)rkC*qOL)e{{D{x=5uG7=h+Yk!wq!z-n-Hn}QA17f#;g^x6nlmiwDrjXg2XhPau-UJheMdnQamPd4UfL;m6E8tWo zf8{)Q!u3p!jl^|JI>!2Qf}nX1^-R#Rv*9&{l)W)#x6K*tm1J%TfMV9#j z@Z#d*CLxS^y~1R(d2OIL_h!!65I53IU>Tz);lafHc#!|qL$OsA=6ESgBcLO;)gBK! zbZ}EkR|^`N;n_R$GE%#1&+q!+Fg7sxhH09gU2;qLlo-5iSF4I|yj{|bv&%@fkEyis z-=l}({?@LC9la@?N%TQWM8l5zK+TRlpHwixGOe40spq?0l_$dO4Tk8- zD3{7A+;MSc5%4gM{WGQ6@k`j^laA&VnpMpXY+(Na-s@zj^QevLMaN3Fm83 zNr>Lkms^9*z<6X^*(s$4O6@m4#dJ)CV8GDhW41`;i@;5ZYrhNK-Ef2E4}Na8+^sot zI>+Xz?5!4jqEW=za=Q~3#JJa6Yj{U_kT+Vx7Ns@AffHBOuKIZ2^!vaB^Syps_T{aq zX}TWgMYy9nQABu`xND4ty<2aLtL*Mix(F#Bdj5pT;1H`#6$pW4|f zy~gb59YwTwcwVci2d!4Pi3MvIWPspG0!nr3`Q;bPFZ)py71b#IJ^+2w>vSF}-|Kq^ z-!f81jLoo|fIsYHlHfI+DhfBocZu7TVeo{goN~>E?4Otc=Y{V!a>}0RKRR}z2X}}J z9y?y~*`Tb|-m9+FKRSa@_|tAWCMSY)3>nQ+uPKdUFwM|hGF3R-Lsjr7n~IYJ}rUDvGBo8r=aJE*N4v~L=DE_JNgSh6=+_wap^Oq(jMC7LCW#{ zL>V@H1`LWYa?B%9W{Cc%II;4@dDkexe&W=%h0djMz!*+u+I7x()%KR!8`BIKM2@-? zQoJ~!phKBre8lTW7Mg4KQ@f~4j|2~gHqa>wn4D$VKHbZXJdhf*AI=VwNpOYZ%|qyE z_M=)6DHXMJhwdeqlysyrZXlk(sq|!za*BVep3~)hqI$Yx$Brq(JgT}R7ZcSpx-*$( zLYp}S^YpjPFtWWz5u^Z;%6fPR!}k53nzuo%w1*8sDw5!X+W#VD&6tVT;o0(FM@`_g zCqfniu+^}cCAqI^2wmW*X5S>sQV*4ss=UbS=xFlZ2+RqUNUx4@JKgba+APp><55av zKtQvJj>O+K@P0q4Nw6fhlyWJOB_Y7XR2a;aJ-G~L8NzDn0UOEF z$uW}uZ`}Y)aDy(1JNr$%2|=c7;vyH_v80ByW0P~i61vZ$q6~>~F#H4BvBh68;l;FS zsmr=Oq*^$sB#5-NLMi1nbhkWNRXmNaFos z2gW&2-fK*bYWl6i$aGjJ`8anuEZH3p6Qzz*GjNtjd9OKboFVyU)jg#NP_wS3*+eK1 zwJbGHy!=$X29nib?2xCtTKxtX6WRQ6nmQ{P)C3oZOVMUs%wJf9l~#rujBO0VUJ!9e zk7g+>T&c}MiF4t0iN0;KwZ$oAQ+^(?7a(Dci~N={#P~hnKL#cuxIeQjZH#NwWuW~A0QO=F)}xkej$8w?PL!hC zprBoUNt>)dl)QI9jOf%TXmtN7{O5h6?TH#&wv%LW`*fw|hls-dqw$L3%5HPG^fbr@ zU9t9FA3d3qZ%nl<107p($apXpYbEhK%u#3ej8J;^l6bwdE$03;ZTw}_E}X-j>4XQ} zQ~d)n7Ic>O^H@B>k~oVO?xUIa*&tM?S}G^JsBK0DwmWFvzPz=415RhiL?>|KSd9a4 z(-T%7rvXk$xtv=w4*WG;-Q>@zXlp)gO%rc>+)+iQMcS#xfi41#8cvsNj#op7>s5}f zUH>*m^?h39@SstR>Jjx`KVN@ifA~Y&f%ctgy;{k&4-qqf?M*KS+Sxt&fD{1~s-^(y zhgOBF$C}*`GFyUzfA~L;>8rGJSlghg8c#o`rl`#~NS(?h%4M8Z~30{ zgzG5MK^i6+|oB7swhQ6g4Xph11GRu|y# z2w|Cyp|-J@f$viT>6hnH(%`^5=eCRfd#!CvHK!kDba(IhEWCh8@pFGk9|#|v&H=Lc za-vGo(gjlLg;`f-3>?(`eA!-!6I$b@0G4Dg*B*Y z8|QI*Q&G#Zu^>x@LOnwjXhqT~07l>MAAfnFfSmx+4{J29em>>Xj!bneb`D+PqY-zC$nudX`mLS0?|6zUiA4z; zp>?R?I#TC;T+?uIcx@<<4D~bi}*$ot1cM$>m{omko>a0lHnNnS$_(* z8`z|9%oaR#^iLh%kpR^Lj?McKKT+4bEuw5=AbRBHv|XVJT9e=IMp-5^=#MqscO(mD zdvwRVb1bJC3++6$wS&v+FkmPhM!D^rnsE4OnE%ZfyUxY7*;2nL956VaM5C5^HN%2O zj}^Qp+ANxcxaxIJq(1cq_+vT)%08V_#3(Avc%8r%Y%zKZE^Z*E!a*|QPI{cdGKL&b zk-GMDn=RuHu+8>S*msrHGUohW|1Ar{MbAd6r4mnhC^@_m=7I@v) zEsGZqtC;Nk?cbn$^YcjyUX<0d6OSd&ZC|Que~BiI#qAP7I^ho60!=x+*!6lps$ynb zEn*v18JJLw>XQ$IWp1Xa8RZ4<=rwDx%`hDee-k3RbJ3TtrEJ#qusVvU%Q&wqAm=#9 z0(&I4^!zo^myPL4x&6|{pJt#%j4`$RoYpbRfL12@@3?#B2PDIHxW6<`#_a8!(VRM( zDps#MWc?>~|ITw8{EwcG9vhE1XCH1F)|Fk`@p|Q?ZSRUCVRut<4c``IX-aI~6SH0h z)eEA@q|<&Md?y#e_Z_@y`V?rn*B7W8i@=-mqvSv4c}`i{oJriwI8u6U^|97O&rM5W zK%PPPSw0m)kd39f<~t|%79B$oDRXs{=h2f(M9T95F>qIGZZbLH$}xmZn2nr1u?;Qk zYQ7c=PuxD+8=(yw`(BdT6*J$^++q0gXBQgi^CbPzBF&Qg!sLL_ueatLSA`jyIotZ&u#=Nv4DaSjUfdhdp7M{^||7s z0aWQROCX(0DLVFc8_R6zaSDtwI#oTSJ~^Nv*6s(49!$PMro<)Rxg18NE}z3{g{XsU zEMR1zVN113f4E(8!kGI$#pZj}4}JS^pZ(yB>D|MLj(PWMEz5XEKOS#!AR~wcrJM!@ z%YJOU>dyojx`%UBy<5fzbg%Q1>SyO*%Y|V-Kwzlp- z-BhhJwxR207&>uJFKN9NhB>U~y|8a40q8nhRKK^z+%f5ji0nj|?3si)|40(*eANmGvLewR)EJ zmtQcMlerc3K~ZHrGO+9l)K?6zy7mm_n$1MMRhbY>7k!k z=wwP)!MM>r_Z9ZMVusUA0_@rVdJSwcG^G|;3py9qfa4=^7iyYJ+7hdTTh>5uB9De_fG~7X zmE+{-*-KYbY!fQQ5!iTo_VJu1hQc!TIi&p#38%ZLK`&~b)r$Y3ILFVMec1pmo2IY9fw?>dIPt5=9Y?)W5%}vy{C0IDnAMGyN)$a+U(}&(=6=>8ABV|o z7sK|(k3e=Iyz2Qe<%?C!Evw_CHsg()D+cq$!w4mvpRr0wprx7tdE}x9~Ce`DvJ}_DA zGL<~%7z?tU8l!097SvUX%T$(28hD8x`sNSfJRqI2dcIkV?+Rha%5XVh#KbP`UiEp_ z8tmJ5VtlIO8yDhl?;@PA;XVC3-FwuLBPN%j0OSZDR)w{74nGHmIut!XRWvPW3U zmRKVm^?9I&|Lebn;cd?+rQaG`g|{D*Ht~aGARwc6nDc-g3Y=4 zGoJXV`n#vb1o30jOkCx$tFq^Ng}Xx@40%4OMLuv`#v~Eb<9^ps;wQhey&;plYUeny zLG{4ZLyuUM+SOCh8prn9z%B7IxDMURG~)y@Is`msZ$-V|8**|J^SdmoLP^nU$y#=7 zQvGQQVpE{tiGtm_7GQAb&IeQB(7b`3n87P3*?*qJAi~M6ajL`Z=8n6n;i-#&qRpJu zNcwM+#;;3T8`Z3#xEpHIhfn5Ey3IQ$cFIn~NXMK`2m3;nGi1+PQ5x|->#8f+c4F`2 z%Dv3Jp6JqT@D&%+Rpq8jgP1)*jdK@j+XPsZ33l`29^&NkIq}{d6ldJ|T$@=dj4yK6 z2Si8N3)wP2=?=Abs3@1W-%iX?1XGtYgj3#@)1OY0QrbY3+lsQ4=@~%4+e8D{a<8+6 zmIeLre?<+;ak;qv=rt2@dJ$Oorkgk-nTY~b9)h0aHTLvVdEK6a3h3o!V*d;PwP31{ z3kR&x7$v6y=|F;kW_>)Il-mb5Tu=$z9u*4*Y>9DzlTvoTT&zL?%i8@0nFKFB$C9uD zfLI9(Vk2{^$99!8Zh->_9}PxX`)5SiStA(9CeIs_`y?1zpzEyS**x3ln(NE%M=Zoj|m0WMZy0tJWObP>D6XKYL=?em}? zfrBSji&QPVUf}C@xgX8Pi(#<*raqGVx&$)Gru&T4Qd!v8T*5P{qzJQDn;BO|4wC~9 zo{`$Ie-cJ206uC-zpEt*l=@Zy?@uw)BZ@mb>Ejo_^7N-47yyCs^cQ4|GymUHxp}Ic z1D@*zT~Ez4RLJg6B)I&P*P3@`lw*(HVD8ph6jB^AVy>69f&UC$g1p|3Ugy!AOA-CL zIu6#?1&W>UyG;e)20|IVMDn&o9svJ2fUNe1>FVuixfHn>cy@_>mE6+N3_^1iQGRlYl5s)x{}k z;6vo41OIwe5ysv{@JsWqgWg;Z&LN*Nr1dfEPEW%4o~Nw!^9N8-Ibu`Ul}f$PxbBr) zi%7eHt#^(@xWN@s8%MoSNC2SaUWw4K9k3{;eI)Q9<#6k%0cXJ3bsV6T2<4uew5A=^ z>5!P)qpqC3C&V6StNeSC>vc|7J6~3*`x7Z^A>2L~QBSPJPbp#aZq4hb(2f{)34FJM z3i@eVHNUxH;~7Er6PM`|nx~b`9}?io+mj=L<(jx#_d(3Y!ZY@zu8$6vf8k{J`kR5_ zV)OxRVs{;{0v^u%>9oW1t6t|~Xr}%N7e>T%Adj`18EJcwF!9UmrmsUWM!kkl(JI;} zd-S6kVegBg0wC^v8-C!0ZqL7@Jbv8BsaB0`Gchp50m85srG+$)Lbl&nZMr!8;tj`A zw!^k41=;aIGxMP4pD|Xo`!-#0gjtq*>mEDCC58d0?|NU^pmLDxmt5$46H7rl zOICclK)7fPOLQOj9l{Jw8h{`(BrxB8z;1Hp(v4qM)uJMhWph^1-*!*NfVRdr^m@W4UY=81sY&*urRpwiD zPkXlATt>e32AHwA_b&oIn7XkTwY(3=iS>MndIRdK+;Sai5|_iuL`S3+DY|v58@H~eU z#6ui8P)Sy?B@T;Ts^q}=6X%Lm94t#0NQsCl2z0Ppb>!P4c$y(U`S(^!eGr;6IK|Uy+3gMFA(^aL+mb60QVBRR?sxBe zZu;Bpki|>6KpMnB0O&LzBrosLH?$ZuTo7cN3#p}l6@7A(hYe@k^J)|dH;t-o!pR_| zBC@Sp`FlKpkZ69yxf?!6DYOSt9gzLfV)|Jp@wqDu9JHxhy#ggL7}p@`taj}rPze*${wVcz|B(y+R;#c6CVnZ%{#scl9kI-RKnv6GNwz=4jEof zRh$Qp{9RF0A5`A+-ShiZ{q{JQp36R-SsIau6ed_36`^7siV#OLs+q0axmy3N${8oK z8M&KUWFDaNYKPfUM=LUtc{d;-V=Z1CCF~n%&F}yHEc7o$&oZ1#wQ)oeda_6b^-lHj zo($9WPLY1zs##9sN;l69-NLhh>J8`MNE3CST?+SPVuar}DXo-fexv7|d%PSh8xjiQ zi-7L23uC7>B26`Eo^|st&TD}QODpBudr*>!+ENjDxwBVL*F1kn4~owi z_QkZvUE!HMP;)n8HuZ))Kvsj|wTt=W|5!1_>PnbCmlRj&Z+k?!Tu5wwa2r% zkg0g|4==!J2KmPG#+ltF=Dp7AiN%d@x@UvF+_d+42eRwrrYi!`#_%1~cO@UVF&8d8 z$&mXwtLCdG^v^&;?}{JMX~SubE!m{W#;rn>{1!$ARD=W7n+NqC%)M&$zfr^K*+hnC z1>z`mcw}ullJ>nGCu;zu=lduS)F7bsb7p(P9Y0xAzWk8Io$`f3mie6O&xBeH*d}Vb zZR@3M{LBN!(;7eZ?80`G5gL8ceh{W3<_*#(9!rexqGMhb_`n5vZ%9LxdCO%a7YB2Y zy=(9gew>*Lb#+FdZUiYn;@-~Db=`>={bhvJVKj6kh~IdwK42BO9JA>|{PogY9iOT6 zz3n;atrD=%MY?_#8IjHE%ToTF(R%tt$oYZ0O#UZNfRl)$J?F=VH1uOZG?LFd#`mkv zRl1qK(Vq|TYy_nce&_Y%?sVr6dB*kHtfjWnnGC^W;2>O)k%#;;4H#iBuau*K-%vjW z$PcWYPymMHO+CZX=1vJ$f_lv3>ROfLAuwmd1P8lRgSubHlDTmv31ZgBj;3pkp*OY5 zAdAlC+(?G(S-R^fkmeWrh=!c%cLy5B1)RL>WH39FsIEd+sL9O9U)p`6E<1vEQRTm! z7l!;g>A~2Gyaj)|6U!gV0W|PVkDo(dKKlv_v%X~BVVvQUBQZ1h2LmCMEiYP9j@+1& zshEh7a_v9_MumAiZT&QT8M%p?2*hW05KzpE~mQ1lJFugftJm9R{dmJpE2=h z-a{_roV*dpui&@eEmm9DdrKhHVqPp7N>*lEs9V@mFs`>X8(z-**l#1Vg(-PV;Irnn z%6%&{d}IL*66JNLXYLkq?q9s1>NVc5PF&e;=|o)!}#+rGk$QRR9k0%2bK8--Rr zN&LK;3?DcU0wN1HA9kt^FtC*q%Vr6FG=x1f%QrxIhnwuu#_n4e=#>zhPh_jOQ3`n& z%@h5aQME&Z$e1QbG-W>Y57s6*XB|QFS*g{(nrGhWSNhj=6jJ-a_d2EDS$pm&bE`*r zq8#@1fd_x&dEM_U+$dmW6FuYp;NU<&ac}!i{s=DJJT2GjwYT!%Hg0tWZ=^2LQ*OAF zA9H6~dT|rTAeYfV=!!6OtVl4F{%!M>B7Dx!+OEQBjJyevbHFNZxkzdKFzyD{oton+0qYq$^k8MMSAmP?@4-zx@O@t z{1U<3J5%AMC8qtI&fysq6o7F*uj8!jv@3lR`T5Z4?i?px&0)<7++5CG=8We9;*GyF zPw1mj370+5fDi-Rl~d}^8(mIA+x`XU?1D6Ov8*|M=C?x{@sG+Mc@uzQN<+a5?OP$K zSs`(T0mJ`qjvZib-MKqrS<|;xUDvf>*iCs@!Iscid3uwopfWuo`x2)-%Rgs!EM@zd zd-4$(YBA$^WwfU&Z0e0|*UGP#DcsPr?G@}#5Ov(f-6+JXE94pdK*k)C6@*>yM}cu~ z3>Q4_&sE=sgd?$=O5nq#^W*r5hFekXa?NJMt{`2;{Y+y1qvtgtIe%SJ&#|Ar_Gx?3 zV=vpz3i*wk;`}8YA4F|B<1fZpWkUu8p!8P$E6QoY51-bi<77FP#>O*_HvMr7QQ!YNcuaDU`TKQQ>iEX!^L&E5 zPagB~A96Qd0%wY${kQSX)N6azu?(Izxs=}W@k6Yf+^;Kt*wA;1zmlupZ9%i~t=jxr zOW7Z4bt^~rFRO7IH!~xUNF&w!kZ7~@>YNCi)G(ZbLKXsi`NpIduTyX54SCPSBW=v- z^6dot*p%`~!Rcu%t5SySfhg8P9Wkatv42xcATD1c^N$y&-=TRa_>^sLzp9s8_L`-? zJp2!2eTl9(@AlA-aCYp%-wS?eQpj@NhTo6pvQ&su#~U=xV-Ft9_W8ZV>CtOcbpaW7H@NH=us!+^LWho_(4{PEEF~( zOaO%h?%{K3PQkLprf&i)f&6=g%*lhDn;sa%*ROi<2mH4F=qA3|3?%JzGe5U~)e7&q zU^Ve^m#!8g_yPl#?`Zx5@-18k{pT2U^v{bY7?Ej9j4%@^%rMig>n7R-4 zzD5m&%9b8aYdIl1P6LH_sjPeRMLLI2r;o8lW@F0U=oR~=eGk}~ZKIa?X(Xqt8ZvIP zpnTk~`QP%@wyZ8=Z0w`!6+FVgYxC$n7+Lw|k2!r3!# zhhWpJQZf4ZA1twDWkCIOX5dbC=BiGipBA+DeI*Fbt2%|r6HAMS+j2nnUz^#+huA<~ zCM#z5{C8w^A|J-kdgSS}jC*?8O>rFp0nUyquNQwNT0<-;{0W1@qzco#Ll545Mk6Fl ze%Fh+Z+z+46Ov}x<&qw7goGG%91>(zJ^MKQb@gW&BnHSTOSu2apvhG+;>Eg5EkIgB z{`|V}^E@;UL^#nyekMr%%)PTtkW+#|O{XRhZ3?nw&qL2%c)n51N@7FbBJ5V*g6DTj zvohucLscwT>#;fc?q`jJ2k%>$dasv$0HD;>$g!E2J^A#yH&do07REjH=hu5541R8} z3k+I)5@;Qp9`E+2kmE$<1|>ZU{rnF>Ve6l8Z?Wn{y;UE0Cs;Xj;Q245@OY_W)~X+) z{Iiq2g)iPICY<#9j7|MX^l&Wvv5`a*>q+YC zLpZRys)->QGKIBn879rvFE&4zAP{B22BoKGcar5Y;n3WcwFHv({BMBR9K%F&CsF3| zB-8>X9>#*GCog{7vQW&87q^TL`!67!=(c)o6ewUti%cy}(H3+bl({ny8-(puno(_-BY z#@2~a%EIf__r^L(YYCMNMvo(5ETMiC=~&rJtd8?k5r#(&0iIV1T9B zXnj8#cg*^QN0>jzMJrb%?%EqCy56xqKkotT(Tz0)wFhr1SKVePDUv=O96DRkU^6Or z91xI^S`)g#BZ0X;W)r#Fq!IgoqLrD%17e(#R~30{drQ^x%I$e>o)$&GtFWnKEXH`s z;4_oUx_5N$WxHIGKog$$vcHw@V4jh~YaHr!^lMmN2L`?<_g#B^nasbXYo?B@X`f$< zXL@8m8*Ez5I6V3=AwpR?1}&Anpwsv1?|Y=ruNT&V7l$lw&|lq;$%nGH{EDe_j=;54 zi{&QnwfzIhnR>9O*q)|uQSKl6S{CLD;!yVwh*O^2^Wd|C8j`?Z# z-R?f$q_sjBVzTlfYO~o0cPEgj$iHVG`#NrV2X8Tti-n~iHHcb&-%Z0=!Ab%?d1%rCQ@DYs2(esHN# z%2vMIzO^s1ic{fMfle^#xaJceiL->_xWws2Fjr|61bpDc?xN2C zwWFxuV)cRfvAA5yH<-9x9sbM}-0n4=0U>S-)l=qo!(F!#;yWKoG~zx6Fq=x0FMJ5`ISfQfDCq|*A55|_pp zbcSpt@`+0IVq*5DgI8U`&x>xJmYPBBZ=xx9%65ohCx@;g+m)VC2#MQ8Yf;i^{(Yzl z>-|k^QJ`UW_=LRpu$+wp02}a0C{zy%eSLZ^Qs-W#G6xI$r>i*h;PNz1^Pm}JOHC=e zI9PQSJM4iCpw;*s&u%r`CH|_|(bby|t{s)By&bLZw*0PYwRE~}bUZl7UCkhj-Oq~K z>@x8B?advvzAi={Wo|LTO*8$+{EFr&S@%3!41$YBgm8l!ErOXqOZUP2Sc-e-e+DC} zdp?Qcd|ZU*DG{ocPmi*qADJiSZrZV4eqxh)?UQ zd)Rrf@eh~X!f*ENcmgb|*m-)3JyF~_38Oxnz2z|`&S)yjJ~i99s`dE#l8vO$xWp>W<;G8&UB zJSTd~f_bv18fmsi-K&@CYQ}+66McaTsqViU5Fo4y-HwGZ;OUfwqQ@=)*D=5Me^Ma37Pe==_`@(#!QAK*S zGewkN#9keQJ=62a43hbkQ&!5!(MN`_#LEoE~jXOB0A1J!eHVXMJHEI2_f(2p+DYZcgf`ni9U+19&S z&uQwFXz}P^$iw&46d=3--n|CEud!QZek6BP*q1j>U5*jOSlNx3A9qTeP5|VVh!fV^ zmSWU8JGOqjqv#y&5;}klA?P`avqhy=@TZKf1Yn5?GY}KyFhtv!Y5sah1Nn4#)-BO( zn){eupLeON!u8n<0Gv&(bw3wk7$R42BG}!o$CE^V32L>@BLrIDFRRJlX4U_x2ZW3I z5bfX-_P2jRe*97lFBU_A} z)p8^+^lQ%Z*mHP_5Oz*B%|fW)yQE%Q!wwDj#rUV(u4_CQM!c)SOoY#1cGRx*Jy(ANfIRxtDxJY~U2+Ut=AtqkN zlU?YPH0@(o8H)h>-$ZJUn$`t5mA7n(8eOM_^`w6X z8FozTG5wnFpB%MU?5teH0^-^k7Y@dOvP`o>ShY0jAJgSH1lI@Rq9BDKL>SC)uBoWP zh~3!V)OJO&avy(m4UU+@NVK~w^#gqL;ob~|S(43D4a#U>kfjUwErlM*vQ}vcKC6CqjzvTFW;HBx#n^5=}#2ii@-lgKeN^kO* z5(d@J1r{l67bCiRJ9ZED-x^&p_xpXouTpC8jRbsTI4;j5(v@6OPlZd)D0*O~St_;Y zz8<-C?KlB_`MoY%XF5E6>Y!=R0ftN9;&Cixn27MV3 zN4+N3by>17Hog*2DNja>t;MqAC^+k|4_@tbxTkM}2(lue7)1dAY$pF~PcAsS_yEpL; z!5)V0UDa_KN-Z*D$WfT^$n38Aj9`vCM;)Td?3`QM<=}H^`yUo`ywg{Ng(&9CGVonV zKR4}LC~VQ%#nmRv#QSI-OOez ze@`E2_t~1VJ$4~Y_DuJ zbn@};aMXT|HM}Os((V_v^Zi}Fw=l8RAFk;#a767%*SDQhH^sZ+mL&dub8!pQwjNJk z5#g|AP6$ups&wLDFx8;0*~xRaHSZW=1+tFBL|(>jRXnN@-V6f!Wymftp+0OuUoU;k zDY^4pXbWdFFCT%ma`2E9ku5}GgT67{DJ9upj_HMmw0hG<-UZ7!0;zU9s0YMSW+UZs zCf5;e)LFNtvDec%zYl~*V&gVsI_N2Dz-=I2o@cIb$U|(iB z8FS#&ijm#8>$M8rQ1ENymhICLsfGHR&6GQb0DqO1xS#BxRZ-r90c>93=np*{8?X2I z_V{16Seo7Ce*P}y$1bG6KU()53m^}e_O`LK(<3hxn0eG#IZ7;uOUtuG7Tzc;Et|ol~ZJ7lalWuU!DMP%V3fF!OTLQ&6LsXUfoAW zU;{_*v@bmE52Up$gN*Y#!_9OdT%X*v@16!aQ;1oY7~Lxv;xX$Oo+~-Uo1WKS@MP79 zea@Q=pu2!iPJGy zqsM@2a=qrC{PHW)J=^ZEVmp6>6I2-8p~Pm%D(%m60pnWEzm7NEh;p?zGoIfR5M!1V zd?`%d^besP+cNIy*rmMk3q4P#r`hKIU+hjtRse7ewX}}T5z(4VPgX`;t6g_bF`XJW zkQ~8J5lo*pgRQVo@AYe^9Spmhi9J^o9S(!E%lf&QGXE5j0+z<%r$bZ2f(!#nf;UY4 zXHU*PbkM>CzRLX=xMLuT$nZi%@zLM~m9k2aKR zLN`g}QgTaf^`TV1eSiO+f6wLpe!tG+`FQRRJX^be-PrOFWxsuQ_Wsdy#{_@ASyiW- zpzPL2Brf@~tQ^!RB?;L>f}Ygnmb*1u_1V^b*S{$$n^!2UX{(rKe8|DwSIQ(MO@M~OrJ{sqj(?4FZk2$e_ z9bEPC9QLQFsW+uvKp9~zNVaSRH0GDa+HbyAoUQl|e8;THT*2cqU-J22cHwjV_uGko zLaT%v8P=B)ZGBT0;}i?ke91@2{>s*Y3J!tt=?lk`!?kA9y-qRqzfA~G5!dt^J35Uj zaS8niJ8!W|wc97*li;?w>@Q#bTApna<+n%DXKmK&sr-{aLKI)Y91^vM&>`eW<*hhg z2bfpQt|x$1JR@B8Hnx*fIk4(l0C{FB5uTVgcNstM!#rJUZlwu zZtO2kH}<$?X9W#uOym_p%ZY_cx#8mBERu?fR6B9aosBtr3a|6jQ%xu}5wa|F`GnmW z97vOTTJiqH_L4=P?19O8okn})a7tPYa^Rkl+QJ&TL}b(_AVAq;Tv#?&FpglBE< z@*2M;WNV7lWc5}sPx>G2_sh0n9i62gRqWqyi%GSF0RD*G9 zd70J!;;PWLrZ)-FI|^|Ok+14g5bJ(e;eUp$_-}fn`c)iX=(_*##i*Gn`H}oSs9n9w3 zmj8BgL5uUtv~@mv9E#HOeX7};RU$EXF^TG&5jQKs_Z6)kt+8loz#RBglHi@G6PPbY zd>~hy3L%)oC}ir=xWYUhGOy@ZVR{_3plDFh_xySdzeE020e$6~YDwG6kuz6R8isBb zf7zPuoBWW!>*f>K+cCSo5ul^l*m`CN>SEm*eDR1YSKkJZWnpXy000Pxzy&~1_rD9} z-J7vp{D8b62KXIs$t7SV&+PtA2;rztC0elpP zMf1mw-)bLy|MLrSV2%KP_kR7LfZ)gP($9z+n+Ox>J3~Gigc?gCQ2Z=En;obu4j%$ap9c($EqsS> zt~99To_e`*CCLleAJcBXg%VF9Y^Fzc(y$JIdm}Du0uX|&FQ+MR=~`zk$>9&ZOpJiUHUuo6 z?Sdd@N8*7Xwjwe?FNgL}6(J41Stfkvg1E!&1-NiEfg}ru^ffOrEVafbfkw^Q%p4{A zpI8Vd<<5CQ2*DFI4Is_5)^CdzEk)}Zl0~`{maTqf5FCj=YLy*i{@M`i*V%!^^J8rn zlX-<_#gZty+R&!HxfpI07l(QQ2(y01DcEmpb1MUWUG4-yO#)1lkr%Jz{+xh#L+zKm zcTIa~?2iyIEkVjULUa4;r~q$Xt7-!%D1ihTN3}sc;LcJsUc+|yc?IKl>42T{J71_r z!%qj5let3&RLgkMmZAwj3jQJvPMo?T&vwTN8GOBzUj^8E>^3WaFRDH(NeP0`2k@o9 zyehE?$t$I5m*V0GY^QYKo`Ex7=!{x%F8~3K%PYwV@g6*bP6}+Q_o~YxOXeE%4L`Z8 z>x)m|Z!@Q3%hXyY1a-G^EhqL3Nchz$P~0W|tfVgtHQ!;!X&Z7QD+?|9JgAe2)6ve0^YJq%&$ag9Z+X{e7aCvA8Di{0D%E zwXDA{n|Ay*Z+Y^{a1**i9Wm~H72h#>`q(FR}xxyyP!C_^-Pt0?6TQOmba`fST6FJgcR+46CdFji0(on=Lh2#2Pi> z;q*$iI|}$BnAY7VlE9M_e{)fPi2$M>V5A1v4`|pN9J9aKf`Pg56=Hgl2`qQu7($Gw ztS+eG}^& za0w=;KLj>umVJ41CO!+#_9_|r_fIBfzNnASeHlZyA9FGgxjrMlC&xvYP6j>|JqO%g z!`=s?Rp%C?S%H}cC1<<=^?jZ)wjJ-qkTF5Z%srfKA@ix!z5j5HpMx?_%^6W&<&%b? zZEERll=IHGp0+5Rm$VtcpaEi!xB_|)+ozL%3DQc$=%AKhA7T!dSQsf%wYJKb))fSs zSXsPu1EC-dfIYPr+M*0$0Q2%mDUic1AKmTw%g(@bu5!iF>x{aAv|g4^zC^eyIz8mv zw`@3_Kr*urTve+4x(c+}-A3LVG#YS*NkyetzPU8V6mo8m`mgJBx^PIWP}{X$@yWgn z!%l4%J&PP`3KcQ*#9j6N@#0*|Xi=HHA)%P}te4aiRSqffA~DzU-25#E0U^>f5e89S6YWJ-EpF{RQsb#N&4=6^- z6i{T=!p_6EDPkvj7GgxbFUMv$h?=-WJrtdHhh^z)Rr%bD`p6qMcbpcdvFjxhyrZBB z_3@-$+lb8ODNkMrT1e&=D=Hvmd(DPf_o zHQN~_09dIgR)L)Uvp?i=Tb(#g=&?<9mjqvlP2v>V$=( zITZkLV@LO8^g{<~(;JOfrSvm_!XtfJ@5Pgz*nj$Jc34O`u3tQv4OssjPvJSr7=*T@ znz|8^#?Fw`NBpwbTc>nRf2Tdz^-5Vq_(p@MYL3Y z7Zm%Txo)P4DU`5|J`m=-ZucN6@8698pnnWOsZ0;as3%Xzhj}xS+#cRe$Bk2m296ml zJ)*m;nD;Te@YUH#wfP}=m~v_A)9S$XPwW{Y=0vvAXw~yP)Tt9K%7-qTJqp~6vc{!; zP*JxMmQwBtu%8vP$)kDU&|L%6U~HzJ8OmmgaH*fXB?-Q1^FiPWxnOmcGIYEFYKaOFy!_ z{UPf##t1`ZTzp344y za#L}?)_?DUn*@U+P!H~!PpaOuuU1eZ2=34F4jhphe64AR`()GF>QEUG+VZxO+Zvc% zw8dVLujGy}19#vqso(@3cN3!%L{-BB6s>+T`ortU7_bdd#||l^z`@Y(1&D5-4Gp#i z@%2b>(j;STFCfEZK|U@-#-ep?*rX0!TCl~F+d~=k;RF=&ZiY~;bwAU zn6XVp?HNFZWT5e5Z|p|-j6Zt2@KIB$1o;NaYAa2qMR?)9^!7uu4OMJyiLPuS$R~|L z!+EW_0B5PuU62nGf{92BHjSh%!)Uiv@)>E7+t)BXZbO1g0l@!rqWO%DA7)KShE{25 z*d*+9HDhdv={f=ugl>krVz@us22QZM)jE0}E4$|qXG4qU+HWFY_d&iwHB@<9EE||i zwfa$zYR5$RmZw1;NoS@Z4G(gjm~B!pUf!haq_oiu+)#6xaU8sgDmf~&U;2s!WkU)n zpNfsmMGV5{0KnI1UvYo}_N9K&d(5KmW8?RYWP0}8lXSfjyep-{`bG~4nZ<7k$BGJZ zLy~v*Fd*AK&M4uIN(Obb9_Tp`Yy_NouN5^VZa^{FuqtYH$P@EHOT^iP!qfFN%qRK{ z*P`KsP=-1luu1@;9wWdE_@zNnL>!$g0g>^S6sv=`)7We{eC@-n>`23M8<{W}Q%)M` zmu?Qb#h~?KKCH78Dg$utFesPd;A8mWfvi9Q6j#8Kc|4t*%3%#N)=DalRRIqAvW2gh zkYLbjfss=HXO@T_szU#aE)kQ)EL;U!<EaIt*o_LsHbx47z`k4Ad?AR^LLI)=FT1wQ_td3BL zHr9>xA*rT!851xko<1=~o(%=8$0xDVh{EtD25S*M=7elVD>mC@T?jyYxq%qu{ zvGDwfsf>f1D(FI_${A~{Lr2RUa=CQ0^CRJuBFyA#wS6eXmLVll?sLvt=TX?b%}kJr zGy{T@n*u)ZWi1#6kVlw&{7$h|nU z7AxTlH%97=U9&Kat~A5I7uFaH(sXAD@Dn0g+D|A<9yAC7 zHRz*$S>Z>43LUc!e;Y(6F3(oi<4yLw~r zE)jCB0y~UmXKNOFAQq(+W%Ll#f)|QMnoirl9QSNFJ&NxRtyr{DzNFeEqs>wRjH0>@ z1-2ZZ<}=uvfal>ZYo;Qu4DAYN9WSVHaFifI(?M8Ue+&w8hp4wdmt2kBQMic^tR_rW zpMNO)a_cDdbN#}*yuksH4XD~!KcnSbDYv72>sEjEkodmpy>u%$w*=>MMKi40h_l=! zmdsge6{ZN>3iTIq_GchM;Rsm>N4k4zwS_x{kx^~AV425rKsXr4$!XpP-{@cPVz$eO zcm|V$464?O5nRB?HAl}}wx+uRZY~Wp?WG4wk4|I^wgO0EV#LT5fIV z^vn`jq<`9Z15wCQ;5>aNp~ob(v3CwhXx>JNox)RZC@titU^AXnFqsb4^{s|wceeH- zPhmhogYeIT|7IGar1G23sa`U|{S>unf|PHTGx%6`ZSY_Q9&J8$qwW3^%y#?f2^6bp zQmiE7!nU#_Nz6(o6Os)NwgPQ2qJaVob`<cfYUWF#sy{8l8att_eElBcgIZkM~(rsA}kn zQedjWxSncg%U1RegfgeBx5@cp8W`ZJ-6u6 z@#_1ul)+%__qihz4P+Vf$AxXfD-Y6k8j9Kk3b!*k=Z&#%S1Bo&J+BVs2bP;j_W}+a zIPDT#S?nleRFY^9=Oi@l>zSfVRjPLfP#;W+t5maZXs0`;Hwg%He;l)OofU{J2;|C8HwxHkuk@XmY8Xis2svPW(RqCd~7 z8|0qI6#y47V8aQZtp?uicb#-pp#CpyMg`ZOW-RM>YbTT?{eVgDaqsR$vO1Vmo_XnS z_8U*Q(!UpT@42S@xDjGopB>L2UxK@D0YOd&G<(4$u?d$|yRkQf=1m4SlHq*mVGCJ# znQG<^NQA~_d6yu?15^e~sLuVyyG;bSPnd)=eo=)sI#Wp2an7%Gczb_!(OfEW!S93@ zf*+8mUPdEBK}zGIn1(sGJ$+nWEVSwcY4`+dqb&VjF^|toE9r_cy|f@`2St#x^OI3+ z1R?|hE({DsGWstwBue(Yqu&B+)4e=FVgitX2aeNTHPjcK+jfJ$^eyr1IrQ5=sQv6)Wp7w<@3%n%i zAySri<9wnRA`wTpfx^Zy82WoQ`De}y)24h0>3E(J{0Zjo@6ZLd1p@ zh~$t~D$NO%R_kR0@ls6{+7;nlX|k-8>~=1!@ycAsO3{Fs-MhF?-i*H39a`#{LL~zhp)igxP81is(Op%?)=3G!a+Gg~;?=e?)us z$}1zBl;i(`Ks)ob#vf%UQFbXvP2O59_Dc3!8f!Yva7Q?Mqz-iIP>LvXET^I*FRVfr z!1mYqUJ4a!y`?EJ@UsS;h;7C#&3o3KPcy{B9E|pthe^d6Q`l9Gy@{DA&+ zIHi2!*37Slgj-`o^vJ0dmeSw)>?amB)nF6i7Nr6ab&Zjb0jNu+p&^G}%?b}5DRt1c zEsj5ks21rxRe^%~Ee5c_sGo23!IUC^8kRf}gd)X)FQGo88}fnmqL+RMe^0l=a+pPa zh_Ov(XS#asDd0l4B&~*^?bS(?ep9@ zdgbd;OhaqhtX$!L8A#=yxh4{}+1+W4?!}}o^eK;){#;oAwN!4(eE9&>oBLFI;;xsW zYv{}J4=H=R{B5&&N>@5E`yuL;8_dy&f6Db@^UUCzRrsLK3dXrIuOty*O2NRS5*d{O znB%@iTb#@KZ+RE`7XkvbX?L=v3>p9k00E17$?xnEwddwJsR%%MM+5G>|F9g%kGdQE z+J)#{hj_8E=$-9dC>^}GKt;fXH8hmA zrNN0imLHvqGVq~L*eF-(zs~^DIL`9iC9E(4_7Cvb>teysny5Q)vgVcj(D&)}XmFmJ zO_m+AhSIsy_Mi6;A_bx9d2jP{x_|TNU#HP&TX5%^11rxv0j_wWI!NB2Y+z6`>j<@bjvrLKdUv{nk#E zU$|~<#A=#7G_*$dtGU{`{`iRE(x|i$gslnAOZyYkLrc`KCnT>E`pM`6@JSs&ofCm5 z1BM`ft||m{y5<7RImLVLbqx}9xU9ipBJviStAT{DdR{Jb>OpL)!r{~YGb-@9Ca4*~)j!EG zI7OrcfVTpN?_B0uga`!Q+My z^`Thr5`|3SpIz-Qzp8F(z?)a%)Svg{UDFxs4XM}Zo0b)X=%okN7z2uRadqcIq0yy` z7pBnL@Za7WW#p}zTXxeFSt0rmWcQ0gkk!Iaz0;l_Tp z$wtS0nw;(LF}*ek(f1d+vksOYM?J^U)ykJ*WmJQzkO`DzUxd!>XV=~Q=-ddo#J9h# zivy2-KT-bB;KChQ5=FcT`Z9p^DF)Y<=z1-Y%@IC8UkchSx2$`0qVe&-sgbBszWkO{ z+p&u%DL1m6yJX;AgM)GosjqG5YaF`#ijG_!j9o}^4N#v=>B#%5z1SqMWh-LAX)FD* zfN22Nose<$Td|jc+uw9`AowP>fKcMGurI9;0J#FEgK`j1^`G9U29qNv%}dJcH%EWy zT%lk}T<{Xk!=OXPLi{LDWf>Ex79}K*KrkiweLBvVY9l4J-mpILZwh9u0-tuOBt+f4&qOcb8VU(WJ1Kbqz(V4OG|W1_bPfT`7r zT*1LCuC2hhUZUJwUZltiDcf@$;hy#{O-2|X`kbXe@*~&c5YQq{i zK+|54w`n%euNqG4v+nKX?3vxL7>4XuW@`zE66eh_%boct)$T|Bst4@H_h%O-InK19v!odg}@HHg44Y?87#_d7R$F_dP*dOT3eK-J@lX< zjxzZ%&1WQ`4Awt;WZ|fDnJGxcPx3BJ_iF4YVmb;cR2cB(jK(3(F9@QorkpQ8nwY(# zdYzmGn21C3`ak0m*#W}DdIls^TVOg^n4UXW#~jl)(&ejA@6jxQQCY>?Ge6Z7i{CL8 zPi5sk19g-DOG+reqIEDlXIh+fdZ)~EZsjgum<|QJpo(9Gv+iNbTdd)!sAnGg=zFFi zYFFFM{4cl1886<1D61ZY0x1~fZ^j{+5N>?o+al{sF`rzet=g1MRfWD(qr9k`yusQk zkL$zN>YFzXrZe3&?(uphO)M??INO(=G)HKECIw30k3Iclsa!H4zs|n)Q+Sf^)#jYB zz0Wt7HH94FJALvvT(6SDcXVW$yzife-zlv*3apmQtl5F2?|wBaw-gu__(QjTX$jXv zNYF6HgJNb}hJqn=GutjNUwq6;(t<*yd?90j3%Epf~l+O>|4Fl-$qpowsOi6)L60biv zA+3RM+R%-ql0didGQx^7V6}!pSpfvRuIZ`FC)2R>(M^0$f8F~RuRDg-Rg$WdRE_=Y zque|IHJ^0|&^uxbN6g(IM2XPz{RPwn(L7K?^xT%Y_n|iASeyk<{YiX)>5 z5<>~RDD0AL4yP@^2)@FSx442J8*2}c`V_5~j(T}Xk^Uoh=FlV^PX(!;yd2Wda-8Cn z*^jV*eTb{I_Oy`QD7#Rlm9)I=zPm^gd$b=HD~6RmGqiQ?06eEq!Oau0u(PZHniXPm zF2_9IC^PB(I-+qQsBUz<=$Q%*0gj45$Mvq9Q&DnLrb(zx>)ipkq+G8cyal|{?i_sK z=W*-Z10LHjUq=hcys+;E$aS}QdlP;ISEr5k`LDW$dGPwp!pe{CfN?f+Q2E%5r^t-^ z<-z*v+1(8DLX4{3q-|lA%O`U;K+L+PH!73&iuvL7kbckhRnd)o)3MFRO)eZqNtz@D zygoxv@U!xfvqgEXFKogutm;yx-+^B2ees7E8x4DB ze!ojsciQpQy(V@&ibnS8dZhGeP)AYs4WJZ%Mlk7%uesD&w`gh0-oBi?Nc8;PARFMW zCx%W|>t{&q#i!}qD2jZxx6AVzP~nW{eeg>ggdE%tR0l^9{~U*`_7bGkj>J4()d64? z-?)h5P)vqE@U4ZH3Z#kBps6LqNWY(WR(Epv*CvzC4~#MX6R^op?Q2SoQEvYcpBH(UF{sHUa+|N(-zl53x&D$vRGdwTliK8-f zwyd8ufO3NL;D97WXeC%?8g9l6k|-hCUY+t&)BPfEGZeVH9%#8&k;tSh4O@SieW|A7eP?n2+Vj^ZpgqBZ{l5 zY7L;m+)G1I!|aNPw7Sf$1Ye!cy=2Zk!5k{_BsN8E7d z{b1Qnn)KU+SN1FLUvyApX7LkI^oZG=E(>&Bx_3!tg+7%lso&^+QQ05=`2mm;IH({#e>uNY2(jOVT1$+0A!nYmiU)D5dO&n@0)u_RJ-zLk$mm zt>V4rKSN&2&wTg{n8QH*V5Pj1zHxZsAa1mt&&2eA{3?08$`dzLb&eo-TJWC_Fo*Nz zHb>>03k^R_dma+8ZaAUFMnw{5al}z~t2G5S6~;Hq(g=`hao>zT>eo%xAmcc%?ow|N zP3ysbyY)jWeD~|SsrvMDo;-;69!~Q~GItd}(_J+%r=R>ake7WvBkjXUKa}PtQ?>I> zP<|E^ewjMbNfg<3Wn|jgZ4f?to>pG9ATITaltPx8Ay$)_LRj5uOI;h1_QBqL-odIW z^@E8^@qWdM^XaTlre) zXeZE5!)NOAgjRn0ov2b3C)!-ou*P1fL=mlaPxu?(uShz`HHFbkYl2tTpqaxn^D6X_ zJVxe~>sl_}F%aec2mY2UC5}nLGNBTeJR70Fc&$Hzvw-UWbH{K{Zb$hqO6nw(Vh7`D zk-sJ2>bvj(Kgj+oian*TlmCRMOl3HUTQ0hqCse3gr_y@EkE{k7&T54vi|P2C=$owx zpT^i7AzeMXW2{WgKyenotZ);9i51sua8TNTRi zIPq*{W!gda`W#YSGbA{|rA2mrW}2^FgK@2ke7*B{)7=@aAIB%|i%fY$rb09q`VQ7# zo?G=xu=LA%d2VjWNHKh{`}M1U*Ty35mIo(76W&@OI`&CS=PsRq9JbsU+_n7VJo5SS z;oEjSj^ZiENovyr97-%d2Xh6AIvQ})F$ZbyIwGtTOL-xNJ>8m*sMcHuQ(7!!q)^b&YMRPWcK+;P}a&C0*hY-dlKYLN5^H zUiCxZ@v1%`fUvC0!~3)2{6-;4#U#k~=i{$+h7C23mOLW;{CP0lUT~JB=zqNDb=qgC z?EP!%4~QzZy*|nmU*7JARd(cTa^k^WG7U@Cu~ZPeBCA4#z@+dJ6K6y}nD;tc^sRUZ zY85IPW^4Ky!gUrel3jem&iV*FyAXcnf}$4e?{Q?Ura$(Y4`qxi**g%f^|=btCtXCJ zHMVgCzBFE5=2QJ2a8~2^jNSTP0bmpH^$1zPYZhPq10dMKD5_k2=&%n1V_ z(#%pnU+dzdxuWuf@G4m5>;P5C2CATSK5yknru|Q-_rIabapsJvOHbya7vr`T#m$df z5_Li@_k7zAP14erJ@*aJUXeKtty5V29j>`yxO(xZVug?Jk10W{=HV-bqC*6}Gp5%y zs{4_>_UX0?0)$Ck9j6`#46UJKB;q@xC4Vwp)q1SQ?b3(07oF`y2x{6q3#I-ppIytI zoO4j^iv`QT!ZZZ(62}(_(?{f)anN>@0KpK-d}JLVXo;9mZo-kEDf=~BjP5k4T}V|> zse)Wm)m{#KI$K!Gkh~87rsKw%fKb@8Vs&(vNd|X*we*#uZe$Qbue(##W$JPd$B|!V z(s!10CskK7R)47yBv=yT-K$jjqCXKVbS-}wvNhPbhgs?9|g1K6QgfVb*a91WID7$Q$d6bW3$e8)%!$f1z=Q9CLC_b z{4S_ZQ;Z8^$Xa;6oS;dRSg#VtRA-0Ib}0_~@Gk<&X94r~3kW&-FfMW2s1j7YZu@yK zU#O+XnK%BYeE5ynC8JCfWZw65`OhxiN@yL&sBaaAc-RTkW2k+jfTU*ph*V(+Xup#)s;(2^m%oY7)Zrs1<0s8apK6S zngfv!)u@lzk_aMASjhB`JaZ@r6&x5w5YKED`p4KYBm4+U|5; z)Va}7W5H1aXx&SSA{5k8&|GOCe!6czdj{&n?|<-lJ~r?<-$+RLV}d8X-*!NR>{RI* zbYAM1PrKx{-ZN-~NyPNn#SVkiAc*5jeEAE{z&a>J5%PtgCNzw<8kP5&s_?6Tc+|o2 zIRY7{`2isuZ-^CL0lj4i)t1t1Ts_0N1KkX%zJh*}(k#24n;EhO(*+oux2 zo;0%K33K|EeszZOlTka!(m_(r0o)(*^|-*_CWlrCweD*G6wSX)FrJ3|J3dz3& z6fXN3q#yzpCkMLU%Q?o%6zUB8*X5G4cE9nZu5Crv6KM$7*gsG_Qc+Zxi@=w^#_j*& zA8mTfZ!#=B&z!lpu)?2F@w3H&hfZw2NveD1-96Y-rCnio$zKt&c*5X;5@cqrtN)Y9 zl!o!VDoH}E;7G7-H~ZF(H-LKyt-d=W^bEi1uWgt9=0cm^$W>uB*2w?#7XSrqNdB|< zN#RB+P=BrTQ_ba}KU0!tDj5m!t(+xhhs+hGy$C&)h}ugJ*~2-wbgc^C^+$0eMCU@=EzX_bg!eF&jWmUIcx;g5SWjvKxQE znvShp{IL^%;3EiM6D%AFYQr6|LV%`vdsE9U4tzBkS-Jx221c)*`Sbhg<1c(K1r`7x zmi3^sw8#~22ykawW9X;{HaN>qHrlBiC~C5C2VinBn^n4Xueo->FrMe z7+s&@uz(S?1R!LZoaex=@~czJAo^B4+Vk2;h1G{19VI`}$XZF^Dzka%Dg>a2Knz$ZnERk((Dp}# zm9VuYP`Bt01RSFZm6WLkOSgRk!)eLbQ{gUf@PGMl3KjiFN#k7&|TLi7gLdsiF66E3%c4n@D^$^i3-%+A|I zU*wels??Kz!_Hq(F~9wG7p9YbD+X$L!5Mb0%svBvDcoj@K*|`eT+`^mpH5!`PcHtF z(A13Hjw`c&=GxS%HuH_v`fSzonhuDL7*c1e{F3OpB9VXB!XV+6^6iVKJ0JcJRBgLc z0KJt7{xcLcUzRZ{EM6A*DPI46i0oUHXD@EPj&Gt7#8>8O$F{GHkEM}5*xeqoj_0S= z_ntqUt92P>QhU>J*u3a;T(kmP@KTn7tJp>z{q~FenCdS})9|k}Z}Js9JTVy3&0x(& zb>B>VY-~DB!Hn0y@12D`KdBL5d3N0E&xn4eht#Xm`?-bJlDKOoXZH#rZ-|r;Q{2SI zQ#OX51Mv2RSgrL`L5Z@<&_4pLpon=%?V}Q({^g7{Ag);ob{7Q!1NWS`IOHD!JP%lQ z|7b^$lJ~&hZuuj~ra3Cc*s}>z@ORHXO*fkTcIk>$`qYuHxZsI)2>{rFdRez;p}F86 zMWtsS0k@^lS4}_lK{1ak5EpW&aEl81PAXQEbP4MfdM@7JRgV9J!O3$tU{9!l+brPl zv)1FV`}6MOD`$?mBpNVB9nf138ANPTNL7&ddC(>mGcWOFXPlS;BWK zbs7mRkOYBjw4LErV9EmA!T+si)67~mG55=vxqhKNwh@teYb)}Jobkez&YW}0W;&U{ zU-K2ccSiIQ?Q6*$T@g7R=md+CcBHua1pkVemSl$}r(sN^!2`d>4*eKgn_=7v&5Fnj{%Yz-`cy&XV`KZXpYc)$OyZItw#+dRo5P z^xkU$8`q~*O>qmFu||C5rV$^V}utVCF%>_BeAo$504;Zvec~Vv)>#BWJJ07l-T@a%MyI zo@U@{v&E0NuWjR-t(fWojpuKe@7H-!KcaB#^~L0 zwx_f&TIeNEC~!JWTVNT|+O+5gMaSY5$bQl%)N%@6?PHw^lAOL@zQOcE`YME+YM%_? zgi=$!Yp}IeK$kc609TIxqySp1rGERSpZHbn7!PPvfOrC1Ef5siXTSa0t8>35L+c@V z&Jh4jHz0_Kn6}8ZGyRJO3I(RF_#FS%FH^br4fX!g#PR>YOE^=9^!rtU!$HU7Vzdr5 z5X5HVj_&y#tu>UgncMu+3C{aRpN1(lGIc*N_Ok{5U!0(nTB#+2`$xgh*gG z7-;ozty8QYTaxo3mW=Fg@_kizY1ZAdo6Te=*!zP8`wA3}4c{p9eI}kYULWZ>^#s5F zzNgZo>;5-ys-9-u>lB-ejXXX4SL@)SK1h~404mFyJoUX+_G1^y